開源爬蟲軟件
Nutch
優點:Nutch支持分布式抓取,并有Hadoop支持,可以進行多機分布抓取,存儲和索引。另外很吸引人的一點在于,它提供了一種插件框架,使得其對各種網頁內容的解析、各種數據的采集、查詢、集群、過濾等功能能夠方便的進行擴展,正是由于有此框架,使得 Nutch 的插件開發非常容易,第三方的插件也層出不窮,極大的增強了 Nutch 的功能和聲譽。
缺點:Nutch的爬蟲定制能力比較弱
Scrapy
優點:為抓取單一網站上固定格式的內容而設計的,比如抓取一個小說網站上的小說或者抓取一個電子商務網站上的商品。結構清晰,可以很方便得修改它來實現更復雜的需求。
缺點:要進行大規模的抓取,可能要修改scrapy以處理如下問題。快速的link extractor。python的SGMLParser實在是太慢了,使用SgmlLinkExtractor會讓爬蟲把大部分的時間都浪費在解析網頁上,最好自己寫一個link extractor。也可以用正則表達式來寫link extractor,速度快,問題是不理解html語義,會把注釋里的鏈接也包含進來。另外基于javascript重定向url也要在這里提取出來。
爬蟲陷阱。 爬蟲可能陷入鏈接引用死循環。
增量抓取。一個針對多個網站的爬蟲很難一次性把所有網頁爬取下來,并且網頁也處于不斷更新的狀態中,爬取是一個動態的過程,爬蟲支持增量的抓取是很必要的。
高效數據存儲。抓取的頁面多了之后如何存儲就成了一個問題,按我們的統計純html頁面的平均大小大概在20~30k之間,百萬的頁面抓下來之后占用的硬盤空間大概是幾十G。ntfs和ext3這些文件系統在小文件過多之后效率都會比較低,需要優化存儲效率。
Heritrix
優點:Heritrix的爬蟲定制參數多。
缺點:單實例的爬蟲,之間不能進行合作。在有限的機器資源的情況下,卻要復雜的操作。只有官方支持,僅僅在Linux上進行了測試。每個爬蟲是單獨進行工作的,沒有對更新進行修訂。在硬件和系統失敗時,恢復能力很差。很少的時間用來優化性能。相對于Nutch,Heritrix僅僅只是一個爬蟲工具,沒有提供搜索引擎。如果要對抓取的站點排序必須要實現類似于Pagerank的復雜算法。
WebMagic
優點:簡單,適合小網站抓取。
缺點:用戶太少,后續升級能力不強。
SpiderMan
優點:簡單,適合小網站抓取。
缺點:用戶太少,后續升級能力不強。Nutch, Scrapy, WebMagic, SpiderMan, Heritrix 都是開發源代碼的網頁數據爬取工具,最大的優勢是免費,源代碼可以自由修改。但是使用這類爬蟲中間件有幾個問題:
1.他們對于現在流行的AJAX風格的頁面都抓去不到或需要很復雜的配置,因為爬蟲中間件都是向網站發送一個請求,通過分析其響應的源代碼來獲取信息,而AJAX網站一般其內容很可能不在首次直接響應的HTML源代碼中,而在其后續的HTTP請求響應中。
2.他們對于信息的精確采集一般通過XPath與正則表達式來提取,而這兩種技術比較復雜,難于維護,一般程序員都不會。
3.這類爬蟲需要進行較大的修改以適應輿情監測的周期性定向主題聚焦采集的需求,短期內無法保證其完全適合輿情監測的需要,且修改時間成本也較高。
樂思軟件的優勢
樂思網絡信息采集系統是由國內一家專門做信息采集的公司提供的專業采集系統,不是開源的,屬于收費的商業軟件,主要是針對任意網站的快速信息采集,除了爬蟲技術之外,可以支持各種AJAX技術開發的網站,如新聞,論壇,微博等,還可以用其利用新浪API進行數據采集。
樂思軟件對于網頁的精確采集可以自動進行分析或者只要很少的基于可視化的人為指導—框住需要的數據即可。
樂思軟件適用面廣,且在國內已有一定用戶群,有大量采集目標網站的經驗,屬于成熟軟件,雖然收費,但整體上在本輿情系統中應用的成功率大大高于其它開源的爬蟲中間件。
具體對比表格如下: