如何用PHP判断你的文章/网址是否被百度搜索引擎收录?
其实最简单的办法就是手动复制网址直接百度回车搜索,然后看搜索结果即可。不过这种方法仅仅适合于一次性的查看,如果需要检测大批量的网址是否被百度收录,这种方法真的会累死人。
但是我们可以用程序来解决这个重复的检测工作,刚好我今天就用PHP实现了这个功能点,所以就用这篇文章整理记录,顺便分享出来。
比如我们需要判断“网址1”和“网址2”和“网址3”这三个网址是否被百度搜索引擎收录,只需要逐一手动复制网址到百度搜索框,然后回车搜索即可。
网址1的搜索结果,从搜索结果我们可以看出,该网址已经被百度收录了。

网址2的搜索结果,从搜索结果我们可以看出,该网址还没有被百度收录,而且搜索结果中出现了“没有找到该URL”这个关键字。

网址3的搜索结果,从搜索结果我们可以看出,该网址也没有被百度收录,且搜索结果中出现了“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”等关键字。

判断原理已经有了,就是看搜索结果。如果搜索结果中有“没有找到该URL”,“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”这4个关键字中的一个,那么基本上就可以确定这个网址还没有被百度收录。
--------------------------
实现思路就是先通过分析百度搜索结果的链接地址得出需要采集的目标URL的地址结构,然后使用CURL去采集目标URL地址的结果,再通过strpos()这个函数来判断采集的结果中有没有包含上面提到的4个关键字,如果有的话,那就说明该网址还没有被收录,如果没有的话,就说明该网址已经被百度收录了。
<?php
function checkBaiduInclude($url){
$url = 'http:// www.baidu .com/s?wd='.$url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
if(strpos($result, '没有找到该URL')){
return 0;
}elseif(strpos($result, '抱歉没有找到')){
return 0;
}elseif(strpos($result, '请检查您的输入是否正确')){
return 0;
}elseif(strpos($result, '网页未收录')){
return 0;
}else{
return 1;
}
}
$url = "http:// www. 17147 .com";
if(checkBaiduInclude($url) == 1){
var_dump("该网页已经被百度收录了");
}else{
var_dump("该网页还没有被百度收录");
}
------------------------------------------------------
其他搜索引擎同理~!
猜你喜欢