欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

使用php的curl依据关键词爬取百度搜索结果页

程序员文章站 2024-02-05 14:46:52
...
使用php的curl根据关键词爬取百度搜索结果页
我想实现的是每次根据给出的关键词搜索百度结果页,比如百度搜索结果是这样的,百度推广内容加正文:使用php的curl依据关键词爬取百度搜索结果页

而我使用curl爬取结果是这样的:使用php的curl依据关键词爬取百度搜索结果页

也就是说每次爬取结果都是无法爬取到百度推广的内容。请问哪位大师能指导一下,鄙人刚入门,望各位不吝指导。先谢过了。
其中php抓取代码如下:

$url = "http://www.baidu.com/s?wd=生命动力";
// 构造包头,模拟浏览器请求
$header = array (
"Host:www.baidu.com",
"Content-Type:application/x-www-form-urlencoded",//post请求
"Connection: keep-alive",
'Referer:http://www.baidu.com',
'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; BIDUBrowser 2.6)'
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
// 执行
$content = curl_exec ( $ch );
if ($content == FALSE) {
echo "error:" . curl_error ( $ch );
}
// 关闭
curl_close ( $ch );

//输出结果
echo $content;
?>

------解决思路----------------------
你的user-agent没有模拟好,所以不行。
其实根本不需要用post,直接用get就可以了。
修改如下:

$url = "http://www.baidu.com/s?wd=生命动力";

$header = array (
'User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.146 Safari/537.36'
);
$ch = curl_init ();
curl_setopt ( $ch, CURLOPT_URL, $url );
curl_setopt ( $ch, CURLOPT_HTTPHEADER, $header );
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 );
// 执行
$content = curl_exec ( $ch );
if ($content == FALSE) {
echo "error:" . curl_error ( $ch );
}
// 关闭
curl_close ( $ch );

//输出结果
echo $content;


使用php的curl依据关键词爬取百度搜索结果页
使用php的curl依据关键词爬取百度搜索结果页

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频