使用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;

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:使用php的curl根据关键词爬取百度搜索结果页-创新互联
文章位置:http://azwzsj.com/article/cojeic.html