目前網絡上有不少開源的網絡爬蟲可供我們使用,爬蟲里面做的最好的肯定是google ,不過google公布的蜘蛛是很早的一個版本,下面是幾種開源的網絡爬蟲的簡單對比表:
下面我們再對Nutch、Larbin、Heritrix這三個爬蟲進行更細致的比較:
Nutch
開發語言:Java
http://lucene.apache.org/nutch/
簡介:
Apache的子項目之一,屬於Lucene項目下的子項目。
Nutch是一個基於Lucene,類似Google的完整網絡搜索引擎解決方案,基於Hadoop的分布式處理模型保證了系統的性能,類似Eclipse的插件機制保證了系統的可客戶化,而且很容易集成到自己的應用之中。
Larbin
開發語言:C++
http://larbin.sourceforge.net/index-eng.html
簡介
larbin是一種開源的網絡爬蟲,由法國的年輕人 Sébastien Ailleret獨立開發。larbin目的是能夠跟蹤頁面的url進行擴展的抓取,最后為搜索引擎提供廣泛的數據來源。
Larbin只是一個爬蟲,也就是說larbin只抓取網頁,至於如何parse的事情則由用戶自己完成。另外,如何存儲到數據庫以及建立索引的事情 larbin也不提供。
latbin最初的設計也是依據設計簡單但是高度可配置性的原則,因此我們可以看到,一個簡單的larbin的爬蟲可以每天獲取500萬的網頁,非常高效。
Heritrix
開發語言:Java
簡介
與Nutch比較
和 Nutch。二者均為Java開源框架,Heritrix 是 SourceForge上的開源產品,Nutch為Apache的一個子項目,它們都稱作網絡爬蟲它們實現的原理基本一致:深度遍歷網站的資源,將這些資源抓取到本地,使用的方法都是分析網站每一個有效的URI,並提交Http請求,從而獲得相應結果,生成本地文件及相應的日志信息等。
Heritrix 是個 "archival crawler" -- 用來獲取完整的、精確的、站點內容的深度復制。包括獲取圖像以及其他非文本內容。抓取並存儲相關的內容。對內容來者不拒,不對頁面進行內容上的修改。重新爬行對相同的URL不針對先前的進行替換。爬蟲通過Web用戶界面啟動、監控、調整,允許彈性的定義要獲取的URL。
二者的差異:
Nutch 只獲取並保存可索引的內容。Heritrix則是照單全收。力求保存頁面原貌
Nutch 可以修剪內容,或者對內容格式進行轉換。
Nutch 保存內容為數據庫優化格式便於以后索引;刷新替換舊的內容。而Heritrix 是添加(追加)新的內容。
Nutch 從命令行運行、控制。Heritrix 有 Web 控制管理界面。
Nutch 的定制能力不夠強,不過現在已經有了一定改進。Heritrix 可控制的參數更多。
Heritrix提供的功能沒有nutch多,有點整站下載的味道。既沒有索引又沒有解析,甚至對於重復爬取URL都處理不是很好。
Heritrix的功能強大 但是配置起來卻有點麻煩。