網(wǎng)站主要作用是有人訪問,而通過搜索引擎獲取流量是最常見的不需要直接花錢的方式,如果你是網(wǎng)站管理員或者站長,你可能需要天天發(fā)布原創(chuàng)文章,而且天天關(guān)注文章是否被收錄,如果網(wǎng)站自身的后臺系統(tǒng)可以實(shí)現(xiàn)自動檢測,是不是方便很多,以下方維網(wǎng)絡(luò)介紹如果通過PHP程序開發(fā)語言實(shí)現(xiàn)檢測文章是否被收錄。
其最終原理很簡單,直接搜索網(wǎng)址,用程序抓取返回的頁面HTML代碼,然后分析HTML代碼來判斷。
通過URL參數(shù)wd后面帶網(wǎng)址,一般出現(xiàn)以下兩種結(jié)果:
這是正常收錄的結(jié)果
這是沒有收錄的結(jié)果。
對比下,就可以知道,只要分析返回來的HTML代碼中包含“很抱歉,沒有找到”文字,就說明沒有被收錄。開始我是這樣做的,但是后來發(fā)覺有些頁面不準(zhǔn)確,主要是還有幾個情況:
一,被屏蔽,沒有返回任何值,也就是請求失敗,這時候應(yīng)該考慮,可以通過判斷返回的HTML是否包含“為你找到相關(guān)結(jié)果”
二、返回多個其他頁面結(jié)果,出現(xiàn)字樣“沒有找到相關(guān)URL”
所以我們的PHP程序可以這樣寫,準(zhǔn)確率100%,其中$url表示網(wǎng)址
/*
* 檢測網(wǎng)頁是否被收錄,返回1則表示收錄 返回0表示沒有收錄
* @ param string $url 待檢測的網(wǎng)址
*/
function checkBaiduInclude($url){
$url='網(wǎng)址?wd='.$url;
$curl=curl_init();
curl_setopt($curl,CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$rs=curl_exec($curl);
curl_close($curl);
if(strpos($rs,'為您找到相關(guān)結(jié)果約0個') > 0 || strpos($rs,'很抱歉,沒有找到') > 0 || strpos($rs,'沒有找到該URL') > 0 ){
return "2";
} elseif (!strpos($rs,'為您找到相關(guān)結(jié)果')) {
return "0";
} else {
return "1";
}
}
充分發(fā)揮程序代碼的作用,方便我們,節(jié)省時間。