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