一、搜索引擎蜘蛛爬行統(tǒng)計分析的必要性:
蜘蛛順利爬行網(wǎng)頁是網(wǎng)頁被搜索引擎收錄的前提條件,搜索引擎是否已爬行了網(wǎng)站,爬行了哪些頁面以及返回哪些信息給蜘蛛,掌握了這些情況我們才能對網(wǎng)站進(jìn)行有針對性的優(yōu)化改良,因此查看蜘蛛爬行日志是一件非常重要但卻非常痛苦的工作,尤其是SEOER及新站站長來說。比如從網(wǎng)上看到蜘蛛爬行某個頁面后如果返回200 0 64 ,則表示此網(wǎng)頁極有可能要被搜索引擎刪除,HEAD 請求返回404也表示要刪除網(wǎng)頁,如果我們能根據(jù)日志及時發(fā)現(xiàn)此現(xiàn)象就能根據(jù)實際情況及時做出調(diào)整。又如,蜘蛛爬行返回的301,302重定向及404錯誤等信息,也是網(wǎng)站管理員需要關(guān)心的問題。因此可以看出分析蜘蛛爬行日志的必要性。
二、蜘蛛爬行統(tǒng)計的方法:
由于蜘蛛機(jī)器人在網(wǎng)站爬行時是不會爬行JS(多次爬行只執(zhí)行0次或者一次),flash,img等標(biāo)簽的,因此,目前第三方統(tǒng)計軟件 (如阿江、中國站長站、雅虎、google等統(tǒng)計系統(tǒng))還無法統(tǒng)計到蜘蛛爬行記錄。因此目前分析蜘蛛爬行主要通過以下方法: 1、利用PHP,ASP根據(jù)瀏覽器返回的USER_AGENT來動態(tài)進(jìn)行跟蹤記錄,這樣的確可以實現(xiàn)目的,但其缺點很明顯:
a)加重服務(wù)器負(fù)擔(dān),對于內(nèi)容多及權(quán)重高的網(wǎng)站,蜘蛛抓取是非常頻繁的。在網(wǎng)頁中插入的代碼會額外加重服務(wù)器的負(fù)擔(dān)。
b)由于搜索引擎相對來說比較喜歡靜態(tài)頁面,很多網(wǎng)站都利用CMS把內(nèi)容生成靜態(tài)文件,這樣就無法統(tǒng)計了。湖南某seo公司介紹使用img標(biāo)簽或者script方式,即在靜態(tài)文件中將統(tǒng)計腳本利用img或者script標(biāo)簽調(diào)用的方式,此方法經(jīng)過我一個月的試驗,無法實現(xiàn),蜘蛛不抓取頁面。
2、利用第三方日志分析工具:如linux下awstats及windows下的Webalizer,其缺點也很明顯。比如如果您是虛擬主機(jī)用戶的話,由于每天產(chǎn)生的日志非常多,每次分析時下載日志文件是一件非常痛苦的事。同時這些軟件太專業(yè)了,不適合一般站長使用。
3、如果您有更好的蜘蛛爬行分析方法請您和廣大站長一起分享。
三、專門針對搜索引擎蜘蛛爬行統(tǒng)計的日志分析工具開發(fā)總結(jié):
1、 我們分析日志中需要關(guān)心蜘蛛爬行相關(guān)資料:
a)蜘蛛爬行日期:根據(jù)此來查找蜘蛛爬行的規(guī)律。
b)蜘蛛IP地址:不同來源的IP地址的蜘蛛的作用是不同,可以結(jié)合爬行日期及下面要講到的請求方式HEAD,GET來進(jìn)行更詳細(xì)的規(guī)律總結(jié)。
c)請求方式:主要有HEAD和GET方式,其作用是不同的。HEAD方式一般是上次蜘蛛來訪問時發(fā)生一次或多次404錯誤,因此蜘蛛發(fā)送HEAD請求確認(rèn)此網(wǎng)頁是否存在,一旦發(fā)送此請求如果返回依然是404的話,那么您的網(wǎng)頁就要被搜索引擎從數(shù)據(jù)庫中刪除了。GET方式大家都很明白就不說明了。
d)爬行頁面:蜘蛛爬行了哪些頁面。
e)狀態(tài)碼:服務(wù)器給蜘蛛返回的狀態(tài)碼,我們一般關(guān)心的是200,301,304,302,404,尤其是404及301,302。404表示死鏈,極大影響網(wǎng)站優(yōu)化,301,302目前還是不能被搜索引擎友好識別,有作弊的嫌疑。
f)流量:在落伍上看到很多個人站長反應(yīng)自己的服務(wù)器被蜘蛛拖跨,雖然這種說法有點夸張,但對服務(wù)器產(chǎn)生的壓力絕對不容忽視,尤其是某些太瘋狂的蜘蛛,每天產(chǎn)生很大的流量,因此我們需要統(tǒng)計出這些蜘蛛的相關(guān)信息,對我們不關(guān)系的搜索引擎蜘蛛可以在robots.txt中進(jìn)行限制,以節(jié)約我們寶貴的服務(wù)器資源。
綜合以上考慮,使用WEB語言開發(fā)一套一個使用簡單,但功能專業(yè)的蜘蛛爬行統(tǒng)計程序放在自己的WEB空間上。這樣可以隨時隨地檢查蜘蛛爬行日志是非常必須的,并且可以避免下載日志的痛苦(當(dāng)然,如果您使用的是獨立服務(wù)器的話且你能熟練使用那些專業(yè)的日志分析工具就不提了),如果能實現(xiàn)以上功能的同時我們在結(jié)合一些第三方的統(tǒng)計工具,那么我們小站長就完全可以撇開那些專業(yè)的日志分析軟件。
2、開發(fā)語言的選擇:由于這套分析程序是放在WEB服務(wù)器上的,因此考慮移植性是非常重要的,在WEB語言中,主要有JSP,php,asp,asp.net語言,JSP一般服務(wù)器是不支持的,ASP及.net在LINUX平臺下不支持,唯一可以選擇的是PHP語言。一般的windows及l(fā)inux主機(jī)都會支持。其可移植性比較好。
3、程序擴(kuò)展性:畢竟一個人的能力無法滿足大家不同的需求,因此程序在設(shè)計時將數(shù)據(jù)分析和表現(xiàn)進(jìn)行隔離,我們將蜘蛛數(shù)據(jù)分析模塊獨立出一個只有7行代碼的文件,可以方便的根據(jù)服務(wù)器日志的格式重寫,因此您如果更換空間或者日志格式發(fā)生變化,您只需要根據(jù)我們提供的接口標(biāo)準(zhǔn)對分析模塊重寫即可,這并不需要多么高的程序開發(fā)水平。而不需要動其他任何文件,或者您將您的日志樣本提供給我們,我們?yōu)槟貙?程序還可以自定義統(tǒng)計蜘蛛類型,這樣可以提高分析速度,遠(yuǎn)程分析日志等。
4、難點及局限性:在開發(fā)過程中遇到一個非常重要的問題,就是分析速度,WEB日志動轍幾十上百兆甚至G級,因此對于使用PHP語言來分析,既要考慮服務(wù)器承受能力,又要考慮分析速度,否則很容易導(dǎo)致超時現(xiàn)象,因此一套高效的算法是非常重要的,同時由于一般的日志記錄條數(shù)都很多,我們放棄使用數(shù)據(jù)庫,因為幾十萬條數(shù)據(jù)的插入及百萬級的數(shù)據(jù)查詢是相當(dāng)痛苦的事情,對服務(wù)器的壓力太大,會把你的服務(wù)器瞬時CPU達(dá)到峰值,而且這些數(shù)據(jù)并不需要長期保存,畢竟要考慮大多數(shù)的虛擬主機(jī)站長.同時為了滿足部分站長的需求,程序?qū)⒎治龀鰜淼闹┲肴罩景匆欢ǖ母袷綄懭胛谋疚募?,您可以自己用任何一種語言編寫一段簡單的讀文件,插入數(shù)據(jù)庫的代碼將日志長期保存。通過不同的算法比較,目前找到的最好的算法分析速度如下:
本地分析: P4 1.7G+512M內(nèi)存+WinXp環(huán)境(筆記本):
日志:100萬行,完全分析時間:10-15秒
VPS:384M內(nèi)存+ Linux:
日志:100萬行,完全分析時間:22-28秒
遠(yuǎn)程分析:即日志和分析系統(tǒng)不在同一臺機(jī)器上,遠(yuǎn)程分析的速度主要取決于兩個網(wǎng)絡(luò)之間的速度。
遠(yuǎn)程環(huán)境(日志存放位置):VPS:384M內(nèi)存+ Linux,10M帶寬共享
本地環(huán)境(分析系統(tǒng)位置):P4 1.7G+512M內(nèi)存+WinXp環(huán)境(筆記本),2M ADSL撥號網(wǎng)絡(luò)
日志:15萬行,完全分析時間:20-25秒
由此可見,遠(yuǎn)程分析速度只有本地分析的1/10,因此還是建議將系統(tǒng)上傳到WEB服務(wù)器上,也可以節(jié)約您空間寶貴的流量。
以上是我在開發(fā)這套程序的總結(jié),程序目前已完成核心的分析功能及顯示功能.
程序演示地址:.
更詳細(xì)的開發(fā)介紹:
希望站長網(wǎng)能有高人給我指點指點,主要還是在提高算法效率上。進(jìn)一步完善后將放出下載地址。 此文首發(fā)admin5,轉(zhuǎn)載請務(wù)必保證其完整性!
杭州市濱江區(qū)偉業(yè)路3號
業(yè)務(wù)熱線(微信同號):18143453325
業(yè)務(wù)郵箱:[email protected]
業(yè)務(wù)QQ:2848414880
目標(biāo):致力于幫助中國企業(yè)出海淘金
使命:為國內(nèi)企業(yè)跨境出海提供動力支持
愿景:打造用戶期待和尊重的外貿(mào)服務(wù)商
頂部
合作
微信
公眾號