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 压缩文件夹的类代码
Nov 05 PHP
php自动注册登录验证机制实现代码
Dec 20 PHP
PHP开发者常犯的10个MySQL错误更正剖析
Jan 30 PHP
php中设置index.php文件为只读的方法
Feb 06 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
Jun 26 PHP
zf框架的registry(注册表)使用示例
Mar 13 PHP
PHP中使用php5-ffmpeg撷取视频图片实例
Jan 07 PHP
php文件操作之小型留言本实例
Jun 20 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
Feb 08 PHP
php文件上传类的分享
Jul 06 PHP
yii2中关于加密解密的那些事儿
Jun 12 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 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原理之Session Gc的一个小概率Notice
2011/04/12 PHP
深入分析PHP引用(&)
2014/09/04 PHP
PHP生成各种常见验证码和Ajax验证过程
2016/01/10 PHP
PHP中命名空间的使用例子
2019/03/22 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
PHP大文件及断点续传下载实现代码
2020/08/18 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
2010/04/15 Javascript
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
jQuery EasyUI API 中文文档 - Form表单
2011/10/06 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
JSONP原理及简单实现
2016/06/08 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
js实现炫酷的左右轮播图
2017/01/18 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
Node.js搭建小程序后台服务
2018/01/03 Javascript
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
使用Python编写一个简单的tic-tac-toe游戏的教程
2015/04/16 Python
Python Series从0开始索引的方法
2018/11/06 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python基本类型的连接组合和互相转换方式(13种)
2019/12/16 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
python上传时包含boundary时的解决方法
2020/04/08 Python
python 等差数列末项计算方式
2020/05/03 Python
如何在scrapy中捕获并处理各种异常
2020/09/28 Python
HTML5+CSS3:3D展示商品信息示例
2017/01/03 HTML / CSS
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
三八活动策划方案
2014/08/17 职场文书
清洁员岗位职责
2015/02/15 职场文书
营业员岗位职责范本
2015/04/14 职场文书
起诉书格式范文
2015/05/20 职场文书
golang生成并解析JSON
2022/04/14 Golang