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 相关文章推荐
桌面中心(二)数据库写入
Oct 09 PHP
IIS6的PHP最佳配置方法
Mar 19 PHP
从MySQL数据库表中取出随机数据的代码
Sep 05 PHP
PHP 内存缓存加速功能memcached安装与用法
Sep 03 PHP
php设计模式  Command(命令模式)
Jun 17 PHP
常用PHP框架功能对照表
Oct 23 PHP
php中preg_match的isU代表什么意思
Oct 01 PHP
php集成动态口令认证
Jul 21 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
PHP中关键字interface和implements详解
Jun 14 PHP
PHP的PDO连接讲解
Jan 24 PHP
php实现文件上传基本验证
Mar 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
Session服务器配置指南与使用经验的深入解析
2013/06/17 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
2013/09/26 PHP
更改localhost为其他名字的方法
2014/02/10 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
使用js获取QueryString的方法小结
2010/02/28 Javascript
javascript 获取所有id中包含某关键字的控件的实现代码
2010/11/25 Javascript
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
2011/05/07 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
jQuery窗口、文档、网页各种高度的精确理解
2014/07/02 Javascript
Json按某个键的值进行排序
2016/12/22 Javascript
NodeJS测试框架mocha入门教程
2017/03/28 NodeJs
关于Layui Table隐藏列问题
2019/09/16 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
Python出现segfault错误解决方法
2016/04/16 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
python实现人机五子棋
2020/03/25 Python
Django Session和Cookie分别实现记住用户登录状态操作
2020/07/02 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
突袭HTML5之Javascript API扩展1—Web Worker异步执行及相关概述
2013/01/31 HTML / CSS
莱德杯高尔夫欧洲官方商店:Ryder Cup Shop
2019/08/14 全球购物
应届生程序员求职信
2013/11/05 职场文书
培训讲师岗位职责
2014/04/13 职场文书
统计学教授推荐信
2014/09/18 职场文书
新店开业策划方案怎么书写?
2019/07/05 职场文书
Python数据可视化之绘制柱状图和条形图
2021/05/25 Python