php下通过curl抓取yahoo boss 搜索结果的实现代码

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〈=tzh&region=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, "百度"));

时间: 2024-11-02 07:12:03

php下通过curl抓取yahoo boss 搜索结果的实现代码的相关文章

使用php方法curl抓取AJAX异步内容思路分析及代码分享_php实例

其实抓ajax异步内容的页面和抓普通的页面区别不大.ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可. 利用Firebug的网络工具                                                               如果抓去的是页面,则内容中没有显示的数据,是一堆JS代码. Code                                    

利用curl抓取远程页面内容的示例代码

利用curl抓取远程页面内容的一个小示例,需要的朋友可以过来参考下   最基本的操作如下 复制代码 代码如下: $curlPost = 'a=1&b=2';//模拟POST数据 $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-FORWARDED-FOR:0.0.0.0', 'CLIENT-IP:0.0.0.0'));  //构造IP curl_setopt($ch, CURLOPT_REFERER, "ht

php使用curl抓取qq空间的访客信息示例

 这篇文章主要介绍了php使用curl抓取qq空间的访客信息示例,需要的朋友可以参考下 config.php  代码如下: <?php define('APP_DIR', dirname(__FILE__)); define('COOKIE_FILE', APP_DIR . '/app.cookie.txt'); //会话记录文件 define('VISITOR_CAPTURE_INTERVAL', 3); //QQ采集间隔 define('VISITOR_DATA_UPLOAD_INTERVA

php+curl+302+淘宝-用curl抓取淘宝页面信息,本地可以,服务器却不行

问题描述 用curl抓取淘宝页面信息,本地可以,服务器却不行 看下面的代码,在本地appach服务器可以正常打印出页面内容,但是到服务器上却提示15s 的timeout错误: $htmlstr = get_html("http://detail.tmall.com/item.htm?id=41159437194"); echo $htmlstr; function get_html( $url ) { $ch = curl_init(); curl_setopt($ch, CURLOP

php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法_php实例

 php的curl可以用来实现抓取网页,分析网页数据用, 简洁易用, 这里介绍其函数等就不详细描述, 放上代码看看: 只保留了其中几个主要的函数. 实现模拟登陆, 其中可能涉及到session捕获, 然后前后页面涉及参数提供形式. libcurl主要功能就是用不同的协议连接和沟通不同的服务器~也就是相当封装了的sock PHP 支持libcurl(允许你用不同的协议连接和沟通不同的服务器)., libcurl当前支持http, https, ftp, gopher, telnet, dict,

php file_get_contents转curl抓取淘宝属性

问题描述 php file_get_contents转curl抓取淘宝属性 以下代码如何改为用 curl来抓取呢?并且以商品的IID保存 function get_shuxing($type,$iid){ if($type=='tmall'){ $text=file_get_contents("http://detail.tmall.com/item.htm?id=$iid"); preg_match('| (.*) |isU',$text, $match); }elseif ($ty

PHP curl 抓取AJAX异步内容示例_php技巧

其实抓ajax异步内容的页面和抓普通的页面区别不大.ajax只不过是做了一次异步的http请求,只要使用firebug类似的工具,找到请求的后端服务url和传值的参数,然后对该url传递参数进行抓取即可. 利用Firebug的网络工具 如果抓去的是页面,则内容中没有显示的数据,是一堆JS代码. Code $cookie_file=tempnam('./temp','cookie'); $ch = curl_init(); $url1 = "http://www.cdut.edu.cn/defau

linux-求助!!!curl抓取网页出现浏览器不支持嵌入式框架,该如何解决

问题描述 求助!!!curl抓取网页出现浏览器不支持嵌入式框架,该如何解决 各位大神,我用curl来抓取学校网页时出现这种情况应该如何解决呀! ![http://img.ask.csdn.net/upload/201604/01/1459483867_199566.jpg]() 解决方案 curl抓取网页内容,跟浏览器怎么查看没关系,或者你的请求被服务器检测出不符合

[20140212]linux下使用tcpdump抓取sql语句

[20140212]linu下使用tcpdump抓取sql语句.txt 我们生产系统问题多多,经常要跟踪用户执行的sql语句,当出现问题时要跟踪比较麻烦,我需要一个快捷的方式"看到"用户执行的sql语 句,想到了tcpdump抓包软件. 我测试建立shell脚本如下: #! /bin/bash /usr/sbin/tcpdump -l -i eth0 -s 16384 -A -nn src host $1 and dst port 1521 --说明: -- -l     Make s