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