php百度监测文章收录返回Found的原因及解决办法!
今天用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;
}
}
修改后代码可以正常的返回查询结果进行监测!
?>