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 MYSQL中插入当前时间
Apr 06 PHP
强烈声明: 不要使用(include/require)_once
Jun 06 PHP
php的一个简单加密解密代码
Jan 14 PHP
使用Discuz关键词服务器实现PHP中文分词
Mar 11 PHP
php实现天干地支计算器示例
Mar 14 PHP
php中常见的sql攻击正则表达式汇总
Nov 06 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
May 12 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
PHP运行模式汇总
Nov 06 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 PHP
php源码的安装方法和实例
Sep 26 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
2.PHP入门
2006/10/09 PHP
PHP 数字左侧自动补0
2008/03/31 PHP
PHP通用分页类page.php[仿google分页]
2008/08/31 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
详解PHP多个进程配合redis的有序集合实现大文件去重
2019/03/06 PHP
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
JS实现左右无缝轮播图代码
2016/05/01 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
JSON字符串操作移除空串更改key/value的介绍
2019/01/05 Javascript
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
使用Fabric自动化部署Django项目的实现
2019/09/27 Python
通过实例解析Python return运行原理
2020/03/04 Python
python录音并调用百度语音识别接口的示例
2020/12/01 Python
python Matplotlib基础--如何添加文本和标注
2021/01/26 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
CSS实现半透明边框与多重边框的场景分析
2019/11/13 HTML / CSS
详解如何获取localStorage最大存储大小的方法
2020/05/21 HTML / CSS
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
结构和类有什么异同
2012/07/16 面试题
XML文档面试题
2015/08/05 面试题
大学生个人自荐信
2014/02/24 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
党员承诺书内容
2014/03/26 职场文书
大学生感恩父母演讲稿
2014/08/28 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
西安兵马俑导游词
2015/02/02 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书