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 相关文章推荐
COM in PHP (winows only)
Oct 09 PHP
php摘要生成函数(无乱码)
Feb 04 PHP
php 强制下载文件实现代码
Oct 28 PHP
PHP图片裁剪函数(保持图像不变形)
May 04 PHP
ThinkPHP模板Switch标签用法示例
Jun 30 PHP
Yii框架表单模型和验证用法
May 20 PHP
php抛出异常与捕捉特定类型的异常详解
Oct 26 PHP
php变量与JS变量实现不通过跳转直接交互的方法
Aug 25 PHP
PHP abstract 抽象类定义与用法示例
May 29 PHP
php实现将数据做成json的格式给前端使用
Aug 21 PHP
ThinkPHP中获取指定日期后工作日的具体日期方法
Oct 14 PHP
Laravel-admin之修改操作日志的方法
Sep 30 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实现变色验证码实例
2014/01/06 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
JavaScript之引用类型介绍
2012/08/10 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
Java  Spring 事务回滚详解
2016/10/17 Javascript
JS原型与原型链的深入理解
2017/02/15 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
对angular4子路由&辅助路由详解
2018/10/09 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
vue多页面项目中路由使用history模式的方法
2019/09/23 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
Python Gitlab Api 使用方法
2019/08/28 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
瑞士首家网上药店折扣店:McDrogerie
2020/12/22 全球购物
和平主题的演讲稿
2014/01/12 职场文书
酒店个人求职信范文
2014/01/25 职场文书
拔河比赛口号
2014/06/10 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
2015年社区纪检工作总结
2015/04/21 职场文书
民事起诉状范文
2015/05/19 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
社会实践单位意见
2015/06/05 职场文书