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 相关文章推荐
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
Mar 15 PHP
收集的PHP中与数组相关的函数
Mar 22 PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 PHP
php数据库抽象层 PDO
May 07 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
PHP中数据库单例模式的实现代码分享
Aug 21 PHP
php采用curl模仿登录人人网发布动态的方法
Nov 07 PHP
PHP和Mysql中转UTF8编码问题汇总
Oct 10 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
Nov 20 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
laravel 5.5 关闭token的3种实现方式
Oct 24 PHP
PHP array_reverse() 函数原理及实例解析
Jul 14 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 柱状图实现代码
2009/12/04 PHP
PHP中“简单工厂模式”实例代码讲解
2012/09/04 PHP
php多种形式发送邮件(mail qmail邮件系统 phpmailer类)
2014/01/22 PHP
php实现的简单美国商品税计算函数
2015/07/13 PHP
PHP使用mysqli操作MySQL数据库的简单方法
2017/02/04 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
Javascript学习笔记1 数据类型
2010/01/11 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
仿JQuery输写高效JSLite代码的一些技巧
2015/01/13 Javascript
JQuery实现防止退格键返回的方法
2015/02/12 Javascript
javascript制作sql转换为stringBuffer的小工具
2015/04/03 Javascript
JavaScript识别网页关键字并进行描红的方法
2015/11/09 Javascript
浅谈js中几种实用的跨域方法原理详解
2016/12/02 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
SVG动画vivus.js库使用小结(实例代码)
2017/09/14 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
react+antd 递归实现树状目录操作
2020/11/02 Javascript
JavaScript Html实现移动端红包雨功能页面
2021/01/10 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
python中enumerate函数遍历元素用法分析
2016/03/11 Python
dpn网络的pytorch实现方式
2020/01/14 Python
中国专业的综合网上购物商城:京东
2016/08/02 全球购物
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
应届生学校辅导员求职信
2013/11/07 职场文书
数控技术专业毕业自荐书范文
2014/02/05 职场文书
项目投资意向书
2014/04/01 职场文书
实验心得体会
2014/09/05 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
客房部经理岗位职责
2015/02/02 职场文书
质检员岗位职责范本
2015/04/07 职场文书
2015年幼儿园中班下学期工作总结
2015/05/22 职场文书
创新创业项目计划书该怎样写?
2019/08/13 职场文书
数据库连接池
2021/04/06 MySQL
Mysql中有关Datetime和Timestamp的使用总结
2021/12/06 MySQL