php下通过curl抓取yahoo boss 搜索结果的实现代码


Posted in PHP onJune 10, 2011

1.编写curl类,进行网页内容抓取

class CurlUtil 
{ 
private $curl; 
private $timeout = 10; 
/** 
* 初始化curl对象 
*/ 
public function __construct() 
{ 
$this->curl = curl_init(); 
curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 
curl_setopt($this->curl, CURLOPT_HEADER, false); //设定是否显示头信息 
curl_setopt($this->curl, CURLOPT_NOBODY, false); //设定是否输出页面内容 
curl_setopt($this->curl, CURLOPT_CONNECTTIMEOUT, $this->timeout); 
curl_setopt($this->curl, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($this->curl, CURLOPT_AUTOREFERER, true); 
} 
/** 
* 注销函数 关闭curl对象 
*/ 
public function __destruct() 
{ 
curl_close($this->curl); 
} 
/** 
* 获取网页的内容 
*/ 
public function getWebPageContent($url) 
{ 
curl_setopt($this->curl, CURLOPT_URL, $url); 
return curl_exec($this->curl); 
} 
}

2.创建curl对象

$CurlUtil = new CurlUtil();

3.抓取yahoo搜索结果
function getYahooSearch(CurlUtil $curl, $key) 
{ 
$key = urlencode($key); 
$searchUrl = "http://boss.yahooapis.com/ysearch/web/v1/$key?appid=你的雅虎appid&lang=tzh®ion=hk&abstract=long&count=20&format=json&start=0&count=10"; 
$josnStr = $curl->getWebPageContent($searchUrl); 
$searchDataInfo = json_decode($josnStr, true); 
$searchData = $searchDataInfo['ysearchresponse']['resultset_web']; 
$returnArray = array(); 
if (!empty($searchData)) { 
foreach ($searchData as $data) { 
$returnArray[] = array("url" => $data['url'], "date" => $data['date'], 'title' => strip_tags($data['title']), 'description' => strip_tags($data['abstract'])); 
} 
} 
return $returnArray; 
}

4.测试结果
var_dump(getYahooSearch($CurlUtil, "百度"));
PHP 相关文章推荐
php生成EXCEL的东东
Oct 09 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
完美解决PHP中的Cannot modify header information 问题
Aug 12 PHP
PHP中ltrim与rtrim去除左右空格及特殊字符实例
Jan 07 PHP
php用户密码加密算法分析【Discuz加密算法】
Oct 12 PHP
PHP基于新浪IP库获取IP详细地址的方法
May 04 PHP
微信接口生成带参数的二维码
Jul 31 PHP
laravel5.4生成验证码的实例讲解
Aug 05 PHP
Yii Framework框架使用PHPExcel组件的方法示例
Jul 24 PHP
Swoole源码中如何查询Websocket的连接问题详解
Aug 30 PHP
XAMPP升级PHP版本实现步骤解析
Sep 04 PHP
PHP缩略图等比例无损压缩,可填充空白区域补充色
Jun 10 #PHP
PHP网站备份程序代码分享
Jun 10 #PHP
php在页面中调用fckeditor编辑器的方法
Jun 10 #PHP
PHP中遍历stdclass object的实现代码
Jun 09 #PHP
IIS7.X配置PHP运行环境小结
Jun 09 #PHP
php基础学习之变量的使用
Jun 09 #PHP
php学习之数据类型之间的转换介绍
Jun 09 #PHP
You might like
PHP extract 将数组拆分成多个变量的函数
2010/06/30 PHP
zend Framework中的Layout(模块化得布局)详解
2013/06/28 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
使用php从身份证号中获取一系列线索(星座、生肖、生日等)
2016/05/11 PHP
php实现的证件照换底色功能示例【人像抠图/换背景图】
2020/05/29 PHP
Prototype Object对象 学习
2009/07/12 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
jQuery表单验证功能实例
2015/08/28 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
js原生实现移动端手指滑动轮播图效果的示例
2018/01/02 Javascript
vue组件从开发到发布的实现步骤
2018/11/11 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
Python中max函数用于二维列表的实例
2018/04/03 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
2019/06/17 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
PyQt5 控件字体样式等设置的实现
2020/05/13 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
雅诗兰黛旗下专业男士保养领导品牌:Lab Series
2017/05/15 全球购物
请描述一下”is a”关系和”has a”关系
2015/02/03 面试题
阿尔卡特(中国)的面试题目
2014/08/20 面试题
简述数据库的设计过程
2015/06/22 面试题
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
公司合作协议书范本
2014/04/18 职场文书
国际贸易专业求职信
2014/06/04 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
“三支一扶”支教教师思想汇报
2014/09/13 职场文书
天堂的孩子观后感
2015/06/11 职场文书
2015教师节通讯稿
2015/07/20 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技