網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
今天將為大家介紹19款Java開源Web爬蟲,需要的小伙伴們趕快收藏吧。

一、Heritrix
Heritrix 是一個由 java 開發(fā)的、開源的網(wǎng)絡(luò)爬蟲,用戶可以使用它來從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴(kuò)展性,方便用戶實(shí)現(xiàn)自己的抓取邏輯。
Heritrix 是個“Archival Crawler”——來獲取完整的、精確的、站點(diǎn)內(nèi)容的深度復(fù)制。包括獲取圖像以及其他非文本內(nèi)容。抓取并存儲相關(guān)的內(nèi)容。對內(nèi)容來者不拒,不對頁面進(jìn)行內(nèi)容上的修改。重新爬行對相同的URL不針對先前的進(jìn)行替換。爬蟲主要通過Web用戶界面啟動、監(jiān)控和調(diào)整,允許彈性的定義要獲取的url。
Heritrix是按多線程方式抓取的爬蟲,主線程把任務(wù)分配給Teo線程(處理線程),每個Teo線程每次處理一個URL。Teo線程對每個URL執(zhí)行一遍URL處理器鏈。URL處理器鏈包括如下5個處理步驟。
(1)預(yù)取鏈:主要是做一些準(zhǔn)備工作,例如,對處理進(jìn)行延遲和重新處理,否決隨后的操作。
(2)提取鏈:主要是下載網(wǎng)頁,進(jìn)行DNS轉(zhuǎn)換,填寫請求和響應(yīng)表單。
(3)抽取鏈:當(dāng)提取完成時(shí),抽取感興趣的HTML和JavaScript,通常那里有新的要抓取的URL。
(4)寫鏈:存儲抓取結(jié)果,可以在這一步直接做全文索引。Heritrix提供了用ARC格式保存下載結(jié)果的ARCWriterProcessor實(shí)現(xiàn)。
(5)提交鏈:做和此URL相關(guān)操作的最后處理。檢查哪些新提取出的URL在抓取范圍內(nèi),然后把這些URL提交給Frontier。另外還會更新DNS緩存信息。

Heritrix系統(tǒng)框架圖

heritrix處理一個url的流程
二、WebSPHINX
WebSPHINX 是一個 Java 類包和 Web 爬蟲的交互式開發(fā)環(huán)境。 Web 爬蟲 ( 也叫作機(jī)器人或蜘蛛 ) 是可以自動瀏覽與處理 Web 頁面的程序。 WebSPHINX 由兩部分組成:爬蟲工作平臺和 WebSPHINX 類包。
WebSPHINX 是一個 Java 類包和 Web 爬蟲的交互式開發(fā)環(huán)境。 Web 爬蟲 ( 也叫作機(jī)器人或蜘蛛 ) 是可以自動瀏覽與處理 Web 頁面的程序。 WebSPHINX 由兩部分組成:爬蟲工作平臺和 WebSPHINX 類包。
WebSPHINX – 用途
1.可視化顯示頁面的集合
2.下載頁面到本地磁盤用于離線瀏覽
3.將所有頁面拼接成單個頁面用于瀏覽或者打印
4.按照特定的規(guī)則從頁面中抽取文本字符串
5.用Java或Javascript開發(fā)自定義的爬蟲
詳細(xì)介紹可見>>>
三、WebLech
WebLech是一個功能強(qiáng)大的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來下載web站點(diǎn)并能夠盡可能模仿標(biāo)準(zhǔn)Web瀏覽器的行為。WebLech有一個功能控制臺并采用多線程操作。
WebLech是一個功能強(qiáng)大的Web站點(diǎn)下載與鏡像免費(fèi)開源工具。它支持按功能需求來下載web站點(diǎn)并能夠盡可能模仿標(biāo)準(zhǔn)Web瀏覽器的行為。WebLech有一個功能控制臺并采用多線程操作。
這款爬蟲足夠簡單,如果初學(xué)如果編寫爬蟲,可做入門參考。所以我選擇了用這個爬蟲開始我的研究。如果只是做要求不高的應(yīng)用,也可試試。如果想找一款功能強(qiáng)大,就別在WebLech上浪費(fèi)時(shí)間了。
該項(xiàng)目主頁: http://weblech.sourceforge.net/
特點(diǎn):
1)開源,免費(fèi)
2)代碼是用純Java寫的,可以在任何支持Java的平臺上也行
3)支持多線程下載網(wǎng)頁
4)可維持網(wǎng)頁間的鏈接信息
5)可配置性強(qiáng): 深度優(yōu)先或?qū)挾葍?yōu)先爬行網(wǎng)頁 可定制URL過濾器,這樣就可以按需要爬行單個web服務(wù)器,單個目錄或爬行整 個WWW網(wǎng)絡(luò) 可設(shè)置URL的優(yōu)先級,這樣就可以優(yōu)先爬行我們感興趣或重要的網(wǎng)頁 可記錄斷點(diǎn)時(shí)程序的狀態(tài),一邊重新啟動時(shí)可接著上次繼續(xù)爬行。