HTTrack是一個網站鏡像工具,本來是用來抓取網站做離線浏覽用的。但是我發現它的爬蟲特性和搜索引擎爬蟲非常的像,逐漸應用到了自己的SEO工作中。其實這兩種看似不同的爬蟲做的都是同樣的工作,就是複制網站並存儲下來(搜索引擎的網頁快照就是被存儲下來的內容)。
軟件的官方網站是:http://www.httrack.com/軟件安裝後可以換成中文界面。
一般用它來檢測網站的壞鏈接和測試搜索引擎對這個網站可能面臨的抓取問題。另外用它也可以探知一些SEO做法的由來。
軟件的使用方法非常的簡單,在“web地址”裏填上URL就可以了。然後點“選項”,先看“掃描規則”
這樣的掃描規則搜索引擎也一定會有的,比如不收錄.exe文件,zip文件等等。然後不收錄一些特定的跟蹤鏈接,如:ad.doubleclick.net。你需要把一些搜索引擎爬蟲不收錄的特征加進去就可以了。
然後在“搜尋”裏面,很多的特征都是現在搜索引擎爬蟲的特征:
搜索引擎不會接受cookie,所以取消“接受cookie”。
至于“解析java文件”,Google爬蟲也會去解析java文件。這是一個像httrack這樣的通用爬蟲都可以做到的事情。 Google會去試圖解析javascript代碼。如果你的頁面上方很多javascript代碼,就會使爬蟲的停留時間增加,進而影響爬蟲的效率。這也是可以說是爲什麽把javascript代碼外調的另一個原因。
還有,有些javascript代碼裏面的URL,Google爬蟲是可以收錄的。這樣做可能是因爲有些內容很好的網站,很多鏈接就是喜歡用javascript來做的緣故吧。但是不代表你的鏈接可以用javascript來做。
HTTrack也同樣能識別並遵守robots.txt文件。
至于url hacks,就是讓那種帶www和不帶www的網站,如:www.****.com和****.com。以及有斜杠和無斜杠的網址,如:http://www.****.com和www.****.com能統一。
這種網站上url不統一的狀況爬蟲程序其實能很簡單的處理好。至于Google爲什麽要網站所有者在webmaster tool 後台指定一下”首選域”,是因爲有些網站www.****.com和****.com指向不同的內容。所以Google不能那麽武斷的就認爲www.****.com和****.com是同一個網站。
至于”流量控制”和”限制”,
裏面可以設置”鏈接數”和”深度”什麽的。我相信Google也有這些設置,不然,Google的《網站質量指南》裏不會這麽寫”如果站點地圖上的鏈接超過’00個,則需要將站點地圖拆分爲多個網頁。”
至于深度,有報告說,Google抓取的最大深度是’;.超過時間可以設爲’0秒。
還有其他”浏覽器標識”和”預存區”也和搜索引擎爬蟲一樣的。
下面用它來抓取一個網站,看看會有什麽樣的情況。
首頁爬蟲會去網站根目錄下訪問robots.txt文件,如果碰到該網站的二級域名,還會去二級域名下訪問robots.txt文件。這個和搜索引擎是一樣的。 在抓取的時候,是多線程的,你可以實時的看到哪些URL正在被抓取以及速度怎麽樣。
很多人用它抓取玩一個網站後會驚訝的發現有很多沒什麽SEO價值的頁面在被抓取。而這些”垃圾鏈接”竟然還是最先被抓取到的。可惜這個爬蟲不支持nofollow屬性,不然更加能模擬Google爬蟲。你還會用它發現很多死鏈接和超時的頁面。
要是經常使用,你還會發現這個軟件的一個規律,就是在抓取那些動態URL的時候,經常會産生重複抓取的現象,抓取URL類似www.****.com/index.asp?=123; 這樣頁面會陷入到死循環當中。這個和早期的Google爬蟲又是一樣的。由此判斷,這應該是爬蟲天生的一個弱點,可能它沒辦法實時的比較多個頁面的內容,如果加上網頁程序在處理URL ID的上遇到什麽問題,就會重複抓取。也由此得出爲什麽要有URL靜態化了。URL的靜態化與其叫靜態化不如叫唯一化,其實只要給網頁內容一個唯一的、結構不容易陷入死循環的URL即可,這就是靜態化的本質。
Google最新的聲明不要靜態化,是不希望爬蟲從一種重複抓取陷入到另一種重複抓取才這樣說的。其實Google舉例的那幾種不好的靜態化一般是不會發生的。只要你明白那些URL中的參數代表什麽,還有不要把很多個參數直接rewrite到靜態化的URL裏即可。
用這個軟件,能讓你直觀的感受一個爬蟲是怎麽工作的。對于讓一個新手正確認識爬蟲有幫助。
這個軟件的功能也差不多就這麽多,要逼真的模擬搜索引擎爬蟲,就要用《Google網站質量指南》裏提到的lynx。但是lynx是一個頁面一個頁面的檢查的。 更好的模擬Google爬蟲就不要GSA了。不應該說模擬,而應該說它就是Google爬蟲。
用HTTrack、Lynx和GSA,在配合服務器log日志裏面的爬蟲分析,會讓你對爬蟲的了解到達一個更高的水平。 分析爬蟲會讓你得益很多的。