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中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
使用PHP函数scandir排除特定目录
Jun 12 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
Aug 20 PHP
php中curl使用指南
Feb 05 PHP
php微信支付之APP支付方法
Mar 04 PHP
php eval函数一句话木马代码
May 21 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
Jun 10 PHP
WordPress中制作导航菜单的PHP核心方法讲解
Dec 11 PHP
PHPExcel笔记, mpdf导出
May 03 PHP
Thinkphp批量更新数据的方法汇总
Jun 29 PHP
thinkphp中的多表关联查询的实例详解
Oct 12 PHP
PDO实现学生管理系统
Mar 21 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
基于Zend的Captcha机制的应用
2013/05/02 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
改版了网上的一个js操作userdata
2007/04/27 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
Js控制弹窗实现在任意分辨率下居中显示
2013/08/01 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
21个JavaScript事件(Events)属性汇总
2014/12/02 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
关于Jquery中的事件绑定总结
2016/10/26 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
浅谈python图片处理Image和skimage的区别
2019/08/04 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
RentCars.com巴西:汽车租赁网站
2016/08/22 全球购物
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
教育英语专业毕业生的求职信
2014/03/13 职场文书
《开国大典》教学反思
2014/04/19 职场文书
员工年终自我评价
2014/09/14 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
2016年度继续教育学习心得体会
2016/01/19 职场文书
民事调解协议书
2016/03/21 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
mysql的单列多值存储实例详解
2022/04/05 MySQL
Python如何利用pandas读取csv数据并绘图
2022/07/07 Python