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 8小时时间差的解决方法小结
Dec 22 PHP
ueditor 1.2.6 使用方法说明
Jul 24 PHP
php简单实现快速排序的方法
Apr 04 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
如何正确配置Nginx + PHP
Jul 15 PHP
Yii2单元测试用法示例
Nov 12 PHP
mac os快速切换多个PHP版本的方法
Mar 07 PHP
Laravel中如何增加自定义全局函数详解
May 09 PHP
PHP简单实现解析xml为数组的方法
May 02 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
php策略模式简单示例分析【区别于工厂模式】
Sep 25 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 计划任务 检测用户连接状态
2012/03/29 PHP
php遍历文件夹下的所有文件和子文件夹示例
2014/03/20 PHP
php与Mysql的一些简单的操作
2015/02/26 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
jquery中push()的用法(数组添加元素)
2014/11/25 Javascript
JSON相关知识汇总
2015/07/03 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
python实现自动更换ip的方法
2015/05/05 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
解决django的template中如果无法引用MEDIA_URL问题
2020/04/07 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
计算机专业大学生的自我评价
2013/11/14 职场文书
五年级语文教学反思
2014/01/30 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
社区网格化管理实施方案
2014/03/21 职场文书
销售员岗位职责
2015/02/10 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
【2·13】一图读懂中国无线电发展
2022/02/18 无线电
Pillow图像处理库安装及使用
2022/04/12 Python
Nginx 常用配置
2022/05/15 Servers
数据设计之权限的实现
2022/08/05 MySQL