如果你(ni)是(shi)租用服務器或者有自己的(de)服務器來做網站的(de),那么要記(ji)(ji)錄(lu)蜘蛛訪問(wen)日(ri)志是(shi)很(hen)簡單(dan)和事,但是(shi)大部分(fen)站長購(gou)買自己的(de)服務器是(shi)不太可能的(de)。這里我教你(ni)一種方法,可以很(hen)輕(qing)松的(de)記(ji)(ji)錄(lu)蜘蛛訪問(wen)日(ri)志,從而分(fen)析日(ri)志,看百度(du)等搜(sou)索引(yin)擎是(shi)否喜歡(huan)你(ni)的(de)網站。
深度分析百度蜘蛛代碼,合理優化網站
研究百度蜘蛛的爬行規律對于網站優化意義重大,特別是對百度蜘蛛Baiduspider的研究。本文解釋一下百度蜘蛛爬行后返回代碼代表的具體含義:
2xx 成功
200 正常;請求已完成。
201 正常;緊接 POST 命令。
202 正常;已接受用于處理,但處理尚未完成。
203 正常;部分信息 — 返回的信息只是一部分。
204 正常;無響應 — 已接收請求,但不存在要回送的信息。
3xx 重定向
301 已移動 — 請求的數據具有新的位置且更改是永久的。
302 已找到 — 請求的數據臨時具有不同 URI。
303 請參閱其它 — 可在另一 URI 下找到對請求的響應,且應使用 GET 方法檢索此響應。
304 未修改 — 未按預期修改文檔。
305 使用代理 — 必須通過位置字段中提供的代理來訪問請求的資源。
306 未使用 — 不再使用;保留此代碼以便將來使用。
4xx 客戶機中出現的錯誤
400 錯誤請求 — 請求中有語法問題,或不能滿足請求。
401 未授權 — 未授權客戶機訪問數據。
402 需要付款 — 表示計費系統已有效。
403 禁止 — 即使有授權也不需要訪問。
404 找不到 — 服務器找不到給定的資源;文檔不存在。
407 代理認證請求 — 客戶機首先必須使用代理認證自身。
410 請求的網頁不存在(永久);
415 介質類型不受支持 — 服務器拒絕服務請求,因為不支持請求實體的格式。
5xx 服務器中出現的錯誤
500 內部錯誤 — 因為意外情況,服務器不能完成請求。
501 未執行 — 服務器不支持請求的工具。
502 錯誤網關 — 服務器接收到來自上游服務器的無效響應。
503 無法獲得服務 — 由于臨時過載或維護,服務器無法處理請求。
比如說:
2011-10-11 08:05:54 e3SVC1662187803 110.60.152.106 GET /index.php - 80 - 61.135.168.47 Baiduspider+(+http://www.baidu.com/search/spider.htm) 200 0 0
1、110.60.152.106這個就是你的網站的 IP。
2、61.135.168.47這個是爬行你網站的蜘蛛IP。
2、 Baiduspider代表代表百度蜘蛛,我們通常以此確定是哪個搜索引擎蜘蛛。
3、/index.php 就代表百度蜘蛛訪問的網頁
4、2011-10-11 08:05:54是百度蜘蛛爬行的日期與時間
5、代碼中的200就代表百度蜘蛛爬行后返回HTTP狀態代碼,代碼中可以了解蜘蛛爬行后的反映。
6、e3SVC1662187803這個我們不用管。
7、80代表WEB服務器的端口。
如果你的網站是下載香蕉視頻APP:http://xinyanyuan.com.cn這就意味著百度蜘蛛在2011-10-11 08:05:54 爬過http://xinyanyuan.com.cn/index.php這(zhe)一頁(ye),200代(dai)表(biao)了正(zheng)常;請求已完成。對于日志中的內容(rong),我(wo)們之需要關心(xin)的是3和5項,3代(dai)表(biao)的是網(wang)頁(ye),不(bu)需要在說明,下(xia)面重點說一下(xia)第五(wu)(wu)項,我(wo)們要根據第五(wu)(wu)項來即(ji)使調整網(wang)站。
通過下(xia)面(mian)(mian)的程序你(ni)就(jiu)可(ke)以記錄蜘蛛訪問日志,使用時你(ni)只要在你(ni)的php頁面(mian)(mian)里調用以下(xia)這個文(wen)件就(jiu)可(ke)以了
function get_naps_bot()
{
$useragent = strtolower($_SERVER[\\\'HTTP_USER_AGENT\\\']);
if (strpos($useragent, \\\'googlebot\\\') !== false){
return \\\'Googlebot\\\';
}
if (strpos($useragent, \\\'msnbot\\\') !== false){
return \\\'MSNbot\\\';
}
if (strpos($useragent, \\\'slurp\\\') !== false){
return \\\'Yahoobot\\\';
}
if (strpos($useragent, \\\'baiduspider\\\') !== false){
return \\\'Baiduspider\\\';
}
if (strpos($useragent, \\\'sohu-search\\\') !== false){
return \\\'Sohubot\\\';
}
if (strpos($useragent, \\\'lycos\\\') !== false){
return \\\'Lycos\\\';
}
if (strpos($useragent, \\\'robozilla\\\') !== false){
return \\\'Robozilla\\\';
}
return false;
}
function nowtime(){
$date=date("Y-m-d.G:i:s");
return $date;
}
$searchbot = get_naps_bot();
if ($searchbot) {
$tlc_thispage = addslashes($_SERVER[\\\'HTTP_USER_AGENT\\\']);
$url=$_SERVER[\\\'HTTP_REFERER\\\'];
$file="log";
$time=nowtime();
$data=fopen($file,"a");
fwrite($data,"Time:$time robot:$searchbot URL:$tlc_thispage\n");
fclose($data);
}
?>
返回的http狀態諸如200 0 64分析說明
在百度研究院的論壇里看到一位版主有這樣的一段解釋:
蜘蛛在IIS里的行為200 0 64 的解釋:
根據我前段時間到現在的(de)(de)觀察,雖然沒有(you)(you)足夠的(de)(de)證(zheng)據,但(dan)是(shi)基本上可以肯定在IIS中(zhong),如果蜘蛛后面的(de)(de)號碼出(chu)現200 0 64,那么(me)網站中(zhong)的(de)(de)這(zhe)個單(dan)頁(ye)(ye)面就會在搜索引擎中(zhong)消(xiao)失了(le).我被K的(de)(de)頁(ye)(ye)面后面都寫著(zhu)200 0 64 ,不(bu)知道大家是(shi)否(fou)認同,還有(you)(you)其(qi)他(ta)看法,當(dang)然,我說這(zhe)個不(bu)夠絕對,因為我也(ye)有(you)(you)一個頁(ye)(ye)面后面顯示(shi)著(zhu)200 0 64 但(dan)是(shi)在搜索引擎中(zhong)依舊可以找到.這(zhe)也(ye)說明(ming)著(zhu)問題(ti),但(dan)大多(duo)200 0 64行為的(de)(de)網頁(ye)(ye)就已經沒有(you)(you)了(le).
所以我覺得蜘蛛的200 0 64行為可以被解釋為清除數據。
這(zhe)個(ge)(ge)解釋(shi),目前看(kan) 上去(qu)還(huan)是(shi)(shi)有可(ke)信度(du)(du)的(de)。我認為,抓取(qu)狀態成(cheng)200 0 64是(shi)(shi)不正(zheng)(zheng)常(chang)(chang)的(de)抓取(qu),正(zheng)(zheng)常(chang)(chang)的(de)抓取(qu)是(shi)(shi)成(cheng)功(gong)標志(zhi)200 0 0,當變成(cheng)了(le)200 0 64的(de)狀態時說(shuo)明搜索(suo)引(yin)擎在抓取(qu)這(zhe)個(ge)(ge)頁面的(de)時候出(chu)現了(le)錯誤,沒(mei)有正(zheng)(zheng)常(chang)(chang)的(de)進(jin)行常(chang)(chang)規(gui)抓取(qu);對于百度(du)(du)來說(shuo),百度(du)(du)很(hen)可(ke)能(neng)是(shi)(shi)已(yi)經不再(zai)把這(zhe)些頁面抓進(jin)主索(suo)引(yin)庫(ku),而是(shi)(shi)放進(jin)了(le)“百度(du)(du)沙盒”里進(jin)行考(kao)(kao)察,考(kao)(kao)察多久,就看(kan)你(ni)如何改進(jin),也許,你(ni)看(kan)不到(dao)百度(du)(du)把這(zhe)些被K的(de)網站釋(shi)放出(chu)來的(de)時候,人(ren)是(shi)(shi)沒(mei)有規(gui)律的(de)。
對于已經被百度拔毛的網站來說,如果你還在乎百度,那就趕緊改正網站上的一切作弊的地方,消除過度優化,消除惡意鏈接,等待百度再次光臨,一般來說,這需要2-3個月的時間,認真做站,發現問題(ti),解決問題(ti),才是網(wang)站最終獲得成功的關鍵。
下面給出一個分析案例
http狀態碼 200
2011-05-14 15:52:03 W3SVC1 112.124.232.185 GET /category-8-b0-min1100-max2200.html - 80 - 220.181.7.74 Baiduspider+(+baidu/search/spider.htm) 200 0 0
分(fen)析下 200 0 0組成部分(fen) sc-status(協議狀態(tai)) sc-substatus(協議子狀態(tai)) sc-win32-status(Win32狀態(tai)碼)
sc-status(協議狀態): 200 連接成功
sc-substatus(協議子狀(zhuang)態(tai)) :0 成功
sc-win32-status(Win32狀態碼):0 代表抓取成功并帶回數據庫 ; 64 指定的網(wang)絡名不再可用
1: 在這個訪問記錄里面112.124.232.185是你服務器的IP地址,220.181.7.74 是bd蜘蛛的IP,/category-8-b0-min1100-max2200.html 為蜘蛛訪問你的頁面(mian) 80是端口 GET是打開方式 W3SVC1是記錄的文件夾,這里說明,bd蜘蛛已經訪問了你的category-8-b0-min1100-max2200.html 這個頁面,那么最重要的是最后面的這個參數200 0 0。
2、200 0 0 成功訪問該頁面,0代表抓取成功并帶回數據庫。這個時候你就放心了,這個頁面已經被bd收錄,但是還沒有釋放出來,bd更新時就可能釋放出來。
3:200 0 64 網絡上流傳著這么三種解釋第一:64為K站的前兆。第二64的出現只是64位操作系統。第三:網絡不可達,由于某種原因無法完全打開頁面,或者網絡不穩定這些原因,導致蜘蛛無法帶回頁面或者說不抓取該頁面,所以200 0 64的解釋也應該為:訪問了該頁面,但并沒有任何抓取也沒有帶回數據庫。這種原因多為空間不穩定(ding)、服務(wu)器不穩定(ding)。
4:304 0 0這個返回碼代(dai)表蜘蛛(zhu)訪問(wen)的(de)頁面(mian)沒(mei)有更新,和他(ta)之(zhi)前來(lai)的(de)時候是一樣的(de),所(suo)以看到這個不(bu)要擔心,蜘蛛(zhu)來(lai)過,只(zhi)不(bu)過你沒(mei)有更新,所(suo)以他(ta)也不(bu)愿意(yi)帶(dai)走這個頁面(mian)。
5:404 0 0這個是代表404頁面,但是有個很嚴重的問題,這個返回碼告訴我們,蜘蛛來到了404頁面并把他帶走了,崩潰~~~~,塞是這樣的話基本上你要倒霉了,塞你有太多的404,那么蜘蛛就會不斷是抓取,不斷的帶走,這樣會造成無數的重復頁面,最終導致K站或者降權,正確的返回罵是404 0 64 這就代表蜘(zhi)蛛沒有抓取你這個頁面。
6:500錯(cuo)(cuo)誤(wu)500錯(cuo)(cuo)誤(wu)是(shi)(shi)服務器內部錯(cuo)(cuo)誤(wu),是(shi)(shi)由程序的(de)錯(cuo)(cuo)誤(wu)造成的(de),我(wo)不懂(dong)程序,但是(shi)(shi)500錯(cuo)(cuo)誤(wu)是(shi)(shi)會給你減(jian)分的(de),這(zhe)點基本的(de)邏輯(ji)都(dou)可以(yi)想的(de)到,塞(sai)發現500錯(cuo)(cuo)誤(wu),馬上(shang)查看是(shi)(shi)哪個頁面的(de),然(ran)后去修正(zheng)以(yi)下錯(cuo)(cuo)誤(wu)吧!
7:302塞在日志中發(fa)現302的(de)(de)(de)返回碼也是(shi)需要注(zhu)意的(de)(de)(de),302為臨(lin)時(shi)重定向(xiang),塞(sai)(sai)你是(shi)長期(qi)的(de)(de)(de)將這個(ge)頁(ye)面重定向(xiang)到另一個(ge)頁(ye)面,麻(ma)煩(fan)你使用(yong)301永久重定向(xiang),塞(sai)(sai)是(shi)302的(de)(de)(de)話bd蜘蛛下(xia)次來還會訪問(wen)這個(ge)頁(ye)面,這樣又會造成復制大(da)量頁(ye)面的(de)(de)(de)問(wen)題,結果肯定是(shi)K,所以(yi),抽空(kong)檢查以(yi)下(xia)。