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 图片上添加透明度渐变的效果
Jun 29 PHP
PHP教程 基本语法
Oct 23 PHP
利用php+mysql来做一个功能强大的在线计算器
Oct 12 PHP
PHP中获取文件扩展名的N种方法小结
Feb 27 PHP
PHP实现下载功能的代码
Sep 29 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 PHP
PHP中isset()和unset()函数的用法小结
Mar 11 PHP
PHP递归实现层级树状展开
Apr 01 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 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冒泡算法详解(递归实现)
2014/11/10 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
JQuery的html(data)方法与<script>脚本块的解决方法
2010/03/09 Javascript
js纯数字逐一停止显示效果的实现代码
2016/03/16 Javascript
jQuery中fadein与fadeout方法用法示例
2016/09/16 Javascript
使用Ajax与服务器(JSON)通信实例
2016/11/04 Javascript
JS出现失效的情况总结
2017/01/20 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
详解webpack介绍&安装&常用命令
2017/06/29 Javascript
node前端模板引擎Jade之标签的基本写法
2018/05/11 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
Vue el-autocomplete远程搜索下拉框并实现自动填充功能(推荐)
2019/10/25 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
jQuery 选择器用法实例分析【prev + next】
2020/05/22 jQuery
[42:06]2019国际邀请赛全明星赛 8.23
2019/09/05 DOTA
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python中random模块生成随机数详解
2016/03/10 Python
python对象及面向对象技术详解
2016/07/19 Python
Python代码解决RenderView窗口not found问题
2016/08/28 Python
python一键升级所有pip package的方法
2017/01/16 Python
python中requests库session对象的妙用详解
2017/10/30 Python
python中pika模块问题的深入探究
2018/10/13 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
2019/08/19 Python
python3的数据类型及数据类型转换实例详解
2019/08/20 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
基于ccs3的timeline时间线实现方法
2020/04/30 HTML / CSS
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
2014学雷锋活动总结
2014/03/09 职场文书
学校就业推荐信范文
2014/05/19 职场文书
中韩经贸翻译专业大学生职业生涯规划范文
2014/09/18 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
保洁员岗位职责
2015/02/04 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
Python使用pyecharts控件绘制图表
2022/06/05 Python