如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?

懂一些SEO优化知识的亲们都知道,文章发布以后,只有被搜索引擎收录,才有可能通过搜索引擎带来一些自然流量。如果文章发布以后迟迟不被搜索引擎收录,那么很大概率是这篇文章内容的质量不达标,网页亦是如此。

一,那么如何才能判断你的文章或者一个网页是否被搜索引擎收录呢?

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

比如我们需要判断“网址1”和“网址2”和“网址3”这三个网址是否被百度搜索引擎收录,只需要逐一手动复制网址到百度搜索框,然后回车搜索即可。

网址1的搜索结果截图如下,从搜索结果我们可以看出,该网址已经被百度收录了。
如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?_第1张图片

网址2的搜索结果截图如下,从搜索结果我们可以看出,该网址还没有被百度收录,而且搜索结果中出现了“没有找到该URL”这个关键字。
如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?_第2张图片

网址3的搜索结果截图如下,从搜索结果我们可以看出,该网址也没有被百度收录,且搜索结果中出现了“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”等关键字。
如何用PHP判断一个网址是否被百度搜索引擎收录,判断的原理是什么?_第3张图片

二,判断网页/网址是否被收录的原理又是什么呢?

到这一步,其实我们的判断原理已经有了,就是看搜索结果。如果搜索结果中有“没有找到该URL”,“抱歉没有找到”,“请检查您的输入是否正确”,“网页未收录”这4个关键字中的一个,那么基本上就可以确定这个网址还没有被百度收录。

三,具体怎么实现这个功能?实现的思路是怎样的?

现在需求明确了,原理也清楚了,那一般这种情况我们该怎么实现呢?我本次采用的是PHP中的一项基础技术,也就是CURL采集功能。
我的实现思路就是先通过分析百度搜索结果的链接地址得出需要采集的目标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 = "https://www.hubaye.com";
if(checkBaiduInclude($url) == 1){
     
	var_dump("该网页已经被百度收录了");
}else{
     
	var_dump("该网页还没有被百度收录");
}

四,为什么只写了如何用PHP判断网址是否被百度收录,没有写如何判断网页是否被其它搜索引擎收录呢?

因为如今国内的搜索领域,百度依旧是搜索引擎领域的巨头。我们平时做国内SEO优化工作的时候,基本上也只做百度的优化。
所以我们这次也只写了如何用PHP判断网址是否被百度收录,但其实代码的原理是通用的,需要判断是否被其它搜索引擎收录的亲们,可以自行更改CURL采集的URL地址。

你可能感兴趣的:(PHP经验积累,php,搜索引擎,百度,seo)