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入门学习的几个不错的实例代码
Jul 13 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
php无限分类且支持输出树状图的详细介绍
Jun 19 PHP
php实现保存submit内容之后禁止刷新
Mar 19 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
php使用gettimeofday函数返回当前时间并存放在关联数组里
Mar 19 PHP
orm获取关联表里的属性值
Apr 17 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
php版微信公众号接口实现发红包的方法
Oct 14 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
Oct 12 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
Jun 12 PHP
Laravel 微信小程序后端实现用户登录的示例代码
Nov 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
有关php运算符的知识大全
2011/11/03 PHP
PHP 7.0.2 正式版发布
2016/01/08 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
node.js中格式化数字增加千位符的几种方法
2015/07/03 Javascript
深究AngularJS中$sce的使用
2017/06/12 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
jQuery实现简单QQ聊天框
2020/08/27 jQuery
[02:32]DOTA2完美大师赛场馆静安体育中心观赛全攻略
2017/11/08 DOTA
[01:02:55]CHAOS vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python的print用法示例
2014/02/11 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
python抽象基类用法实例分析
2015/06/04 Python
Python实现读取邮箱中的邮件功能示例【含文本及附件】
2017/08/05 Python
Java分治归并排序算法实例详解
2017/12/12 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
python设置随机种子实例讲解
2019/09/12 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
html5 Canvas画图教程(6)—canvas里画曲线之arcTo方法
2013/01/09 HTML / CSS
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
html如何对span设置宽度
2019/10/30 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
精细化工应届生求职信
2013/11/17 职场文书
仓库保管员岗位职责
2013/12/20 职场文书
推普周活动总结
2014/08/28 职场文书
模范教师事迹材料
2014/12/16 职场文书
单位推荐信范文
2015/03/27 职场文书
导师工作推荐信
2015/03/27 职场文书
python爬虫--selenium模块
2021/03/31 Python
Vue的过滤器你真了解吗
2022/02/24 Vue.js
SpringBoot Http远程调用的方法
2022/08/14 Java/Android