今天用php參照網上的資料寫了一個百度文章監測收錄的功能,但是用起來發現返回結果全是收錄的,這就不對了,明明很多都沒收錄,就檢查返回結果發現爲
點擊Found鏈接打開是個驗證框,這到底是啥意思,百度能監測到機器查詢的嗎?懵逼了!
找原因找了一下午,最後找到原因了
現在百度這邊已經開啓了https,所有的查詢都是通過https這邊才能正常的查詢
function baidu($url) {
//僞造頭部信息
$header = array (
"Host:www.baidu.com",
"Content-Type:application/x-www-form-urlencoded",//post請求
"Connection: keep-alive",
'Referer:https://www.baidu.com',
'User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; BIDUBrowser 2.6)'
);
$url = 'https://www.baidu.com/s?ie=UTF-8&wd='.urlencode($url);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_HTTPHEADER, $header );
curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($curl);
//var_dump($data);
//exit();
curl_close($curl);
if(strpos($data, '沒有找到該URL') || strpos($data, '很抱歉')) {
return 0;
} else {
return 1;
}
}
修改後代碼可以正常的返回查詢結果進行監測!
?>