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;
  }
}

修改后代码可以正常的返回查询结果进行监测!

?>

发布了114 篇原创文章 · 获赞 31 · 访问量 39万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章