您好,登錄后才能下訂單哦!
我想實現的是每次根據給出的關鍵詞搜索百度結果頁
其中php抓取代碼如下:
<?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;
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。