自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

玩C一定用得到的19款Java開源Web爬蟲

開發(fā) 后端
今天將為大家介紹19款Java開源Web爬蟲,需要的小伙伴們趕快收藏吧。

網(wǎng)絡(luò)爬蟲(又被稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機(jī)器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自動(dòng)地抓取萬維網(wǎng)信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動(dòng)索引、模擬程序或者蠕蟲。

今天將為大家介紹19款Java開源Web爬蟲,需要的小伙伴們趕快收藏吧。

 

[[171862]]

 

一、Heritrix

Heritrix 是一個(gè)由 java 開發(fā)的、開源的網(wǎng)絡(luò)爬蟲,用戶可以使用它來從網(wǎng)上抓取想要的資源。其最出色之處在于它良好的可擴(kuò)展性,方便用戶實(shí)現(xiàn)自己的抓取邏輯。

Heritrix 是個(gè)“Archival Crawler”——來獲取完整的、精確的、站點(diǎn)內(nèi)容的深度復(fù)制。包括獲取圖像以及其他非文本內(nèi)容。抓取并存儲(chǔ)相關(guān)的內(nèi)容。對(duì)內(nèi)容來者不拒,不對(duì)頁面進(jìn)行內(nèi)容上的修改。重新爬行對(duì)相同的URL不針對(duì)先前的進(jìn)行替換。爬蟲主要通過Web用戶界面啟動(dòng)、監(jiān)控和調(diào)整,允許彈性的定義要獲取的url。

Heritrix是按多線程方式抓取的爬蟲,主線程把任務(wù)分配給Teo線程(處理線程),每個(gè)Teo線程每次處理一個(gè)URL。Teo線程對(duì)每個(gè)URL執(zhí)行一遍URL處理器鏈。URL處理器鏈包括如下5個(gè)處理步驟。

(1)預(yù)取鏈:主要是做一些準(zhǔn)備工作,例如,對(duì)處理進(jìn)行延遲和重新處理,否決隨后的操作。

(2)提取鏈:主要是下載網(wǎng)頁,進(jìn)行DNS轉(zhuǎn)換,填寫請(qǐng)求和響應(yīng)表單。

(3)抽取鏈:當(dāng)提取完成時(shí),抽取感興趣的HTML和JavaScript,通常那里有新的要抓取的URL。

(4)寫鏈:存儲(chǔ)抓取結(jié)果,可以在這一步直接做全文索引。Heritrix提供了用ARC格式保存下載結(jié)果的ARCWriterProcessor實(shí)現(xiàn)。

(5)提交鏈:做和此URL相關(guān)操作的最后處理。檢查哪些新提取出的URL在抓取范圍內(nèi),然后把這些URL提交給Frontier。另外還會(huì)更新DNS緩存信息。

 

 

Heritrix系統(tǒng)框架圖

 

 

heritrix處理一個(gè)url的流程

二、WebSPHINX

WebSPHINX 是一個(gè) Java 類包和 Web 爬蟲的交互式開發(fā)環(huán)境。 Web 爬蟲 ( 也叫作機(jī)器人或蜘蛛 ) 是可以自動(dòng)瀏覽與處理 Web 頁面的程序。 WebSPHINX 由兩部分組成:爬蟲工作平臺(tái)和 WebSPHINX 類包。

WebSPHINX 是一個(gè) Java 類包和 Web 爬蟲的交互式開發(fā)環(huán)境。 Web 爬蟲 ( 也叫作機(jī)器人或蜘蛛 ) 是可以自動(dòng)瀏覽與處理 Web 頁面的程序。 WebSPHINX 由兩部分組成:爬蟲工作平臺(tái)和 WebSPHINX 類包。

WebSPHINX – 用途

1.可視化顯示頁面的集合

2.下載頁面到本地磁盤用于離線瀏覽

3.將所有頁面拼接成單個(gè)頁面用于瀏覽或者打印

4.按照特定的規(guī)則從頁面中抽取文本字符串

5.用Java或Javascript開發(fā)自定義的爬蟲

詳細(xì)介紹可見>>>

三、WebLech

WebLech是一個(gè)功能強(qiáng)大的Web站點(diǎn)下載與鏡像工具。它支持按功能需求來下載web站點(diǎn)并能夠盡可能模仿標(biāo)準(zhǔn)Web瀏覽器的行為。WebLech有一個(gè)功能控制臺(tái)并采用多線程操作。

WebLech是一個(gè)功能強(qiáng)大的Web站點(diǎn)下載與鏡像免費(fèi)開源工具。它支持按功能需求來下載web站點(diǎn)并能夠盡可能模仿標(biāo)準(zhǔn)Web瀏覽器的行為。WebLech有一個(gè)功能控制臺(tái)并采用多線程操作。

這款爬蟲足夠簡(jiǎn)單,如果初學(xué)如果編寫爬蟲,可做入門參考。所以我選擇了用這個(gè)爬蟲開始我的研究。如果只是做要求不高的應(yīng)用,也可試試。如果想找一款功能強(qiáng)大,就別在WebLech上浪費(fèi)時(shí)間了。

該項(xiàng)目主頁:http://weblech.sourceforge.net/

特點(diǎn):

1)開源,免費(fèi)

2)代碼是用純Java寫的,可以在任何支持Java的平臺(tái)上也行

3)支持多線程下載網(wǎng)頁

4)可維持網(wǎng)頁間的鏈接信息

5)可配置性強(qiáng): 深度優(yōu)先或?qū)挾葍?yōu)先爬行網(wǎng)頁 可定制URL過濾器,這樣就可以按需要爬行單個(gè)web服務(wù)器,單個(gè)目錄或爬行整 個(gè)WWW網(wǎng)絡(luò) 可設(shè)置URL的優(yōu)先級(jí),這樣就可以優(yōu)先爬行我們感興趣或重要的網(wǎng)頁 可記錄斷點(diǎn)時(shí)程序的狀態(tài),一邊重新啟動(dòng)時(shí)可接著上次繼續(xù)爬行。

四、Arale

Arale主要為個(gè)人使用而設(shè)計(jì),而沒有像其它爬蟲一樣是關(guān)注于頁面索引。Arale能夠下載整個(gè)web站點(diǎn)或來自web站點(diǎn)的某些資源。Arale還能夠把動(dòng)態(tài)頁面映射成靜態(tài)頁面。

五、JSpider

JSpider:是一個(gè)完全可配置和定制的Web Spider引擎.你可以利用它來檢查網(wǎng)站的錯(cuò)誤(內(nèi)在的服務(wù)器錯(cuò)誤等),網(wǎng)站內(nèi)外部鏈接檢查,分析網(wǎng)站的結(jié)構(gòu)(可創(chuàng)建一個(gè)網(wǎng)站地圖),下載整個(gè)Web站點(diǎn),你還可以寫一個(gè)JSpider插件來擴(kuò)展你所需要的功能。

Spider是一個(gè)用Java實(shí)現(xiàn)的WebSpider,JSpider的執(zhí)行格式如下:

jspider [URL] [ConfigName]

URL一定要加上協(xié)議名稱,如:http://,否則會(huì)報(bào)錯(cuò)。如果省掉ConfigName,則采用默認(rèn)配置。

JSpider 的行為是由配置文件具體配置的,比如采用什么插件,結(jié)果存儲(chǔ)方式等等都在conf\[ConfigName]\目錄下設(shè)置。JSpider默認(rèn)的配置種類 很少,用途也不大。但是JSpider非常容易擴(kuò)展,可以利用它開發(fā)強(qiáng)大的網(wǎng)頁抓取與數(shù)據(jù)分析工具。要做到這些,需要對(duì)JSpider的原理有深入的了 解,然后根據(jù)自己的需求開發(fā)插件,撰寫配置文件。

Spider是一個(gè)高度可配置和和可定制Web爬蟲

LGPL開源許可下開發(fā)

100%純Java實(shí)現(xiàn)

您可以使用它來:

檢查您網(wǎng)站的錯(cuò)誤(內(nèi)部服務(wù)器錯(cuò)誤, …)

傳出或內(nèi)部鏈接檢查

分析你網(wǎng)站的結(jié)構(gòu)(創(chuàng)建一個(gè)sitemap, …)

下載整修網(wǎng)站

通過編寫JSpider插件實(shí)現(xiàn)任何功能.

該項(xiàng)目主頁:http://j-spider.sourceforge.net/

六、spindle

spindle是一個(gè)構(gòu)建在Lucene工具包之上的Web索引/搜索工具.它包括一個(gè)用于創(chuàng)建索引的HTTP spider和一個(gè)用于搜索這些索引的搜索類。spindle項(xiàng)目提供了一組JSP標(biāo)簽庫(kù)使得那些基于JSP的站點(diǎn)不需要開發(fā)任何Java類就能夠增加搜索功能。

七、Arachnid

Arachnid是一個(gè)基于Java的web spider框架.它包含一個(gè)簡(jiǎn)單的HTML剖析器能夠分析包含HTML內(nèi)容的輸入流.通過實(shí)現(xiàn)Arachnid的子類就能夠開發(fā)一個(gè)簡(jiǎn)單的Web spiders并能夠在Web站上的每個(gè)頁面被解析之后增加幾行代碼調(diào)用。 Arachnid的下載包中包含兩個(gè)spider應(yīng)用程序例子用于演示如何使用該框架。

該項(xiàng)目主頁:http://arachnid.sourceforge.net/

八、LARM

LARM能夠?yàn)镴akarta Lucene搜索引擎框架的用戶提供一個(gè)純Java的搜索解決方案。它包含能夠?yàn)槲募瑪?shù)據(jù)庫(kù)表格建立索引的方法和為Web站點(diǎn)建索引的爬蟲。

該項(xiàng)目主頁:http://larm.sourceforge.net/

九、JoBo

JoBo是一個(gè)用于下載整個(gè)Web站點(diǎn)的簡(jiǎn)單工具。它本質(zhì)是一個(gè)Web Spider。與其它下載工具相比較它的主要優(yōu)勢(shì)是能夠自動(dòng)填充form(如:自動(dòng)登錄)和使用cookies來處理session。JoBo還有靈活的下載規(guī)則(如:通過網(wǎng)頁的URL,大小,MIME類型等)來限制下載。

十、snoics-reptile

1、snoics-reptile是什么?

是用純Java開發(fā)的,用來進(jìn)行網(wǎng)站鏡像抓取的工具,可以使用配制文件中提供的URL入口,把這個(gè)網(wǎng)站所有的能用瀏覽器通過GET的方式獲取到的資源全部抓取到本地,包括網(wǎng)頁和各種類型的文件,如:圖片、flash、mp3、zip、rar、exe等文件。可以將整個(gè)網(wǎng)站完整地下傳至硬盤內(nèi),并能保持原有的網(wǎng)站結(jié)構(gòu)精確不變。只需要把抓取下來的網(wǎng)站放到web服務(wù)器(如:Apache)中,就可以實(shí)現(xiàn)完整的網(wǎng)站鏡像。

2、現(xiàn)在已經(jīng)有了其他的類似的軟件,為什么還要開發(fā)snoics-reptile?

因?yàn)橛行┰谧ト〉倪^程中經(jīng)常會(huì)出現(xiàn)錯(cuò)誤的文件,而且對(duì)很多使用javascript控制的URL沒有辦法正確的解析,而snoics-reptile通過對(duì)外提供接口和配置文件的形式,對(duì)特殊的URL,可以通過自由的擴(kuò)展對(duì)外提供的接口,并通過配置文件注入的方式,基本上能實(shí)現(xiàn)對(duì)所有的網(wǎng)頁都正確的解析和抓取。

該項(xiàng)目主頁:http://www.blogjava.net/snoics

十一、Web-Harvest

Web-Harvest是一個(gè)Java開源Web數(shù)據(jù)抽取工具。它能夠收集指定的Web頁面并從這些頁面中提取有用的數(shù)據(jù)。Web-Harvest主要是運(yùn)用了像XSLT,XQuery,正則表達(dá)式等這些技術(shù)來實(shí)現(xiàn)對(duì)text/xml的操作。

Web-Harvest 是一個(gè)用Java 寫的開源的Web 數(shù)據(jù)提取工具。它提供了一種從所需的頁面上提取有用數(shù)據(jù)的方法。為了達(dá)到這個(gè)目的,你可能需要用到如XSLT,XQuery,和正則表達(dá)式等操作text/xml 的相關(guān)技術(shù)。Web-Harvest 主要著眼于目前仍占大多數(shù)的基于HMLT/XML 的頁面內(nèi)容。另一方面,它也能通過寫自己的Java 方法來輕易擴(kuò)展其提取能力。

Web-Harvest 的主要目的是加強(qiáng)現(xiàn)有數(shù)據(jù)提取技術(shù)的應(yīng)用。它的目標(biāo)不是創(chuàng)造一種新方法,而是提供一種更好地使用和組合現(xiàn)有方法的方式。它提供了一個(gè)處理器集用于處理數(shù)據(jù)和控制流程,每一個(gè)處理器被看作是一個(gè)函數(shù),它擁有參數(shù)和執(zhí)行后同樣有結(jié)果返回。而且處理是被組合成一個(gè)管道的形式,這樣使得它們可以以鏈?zhǔn)降男问絹韴?zhí)行,此外為了更易于數(shù)據(jù)操作和重用,Web-Harvest 還提供了變量上下方用于存儲(chǔ)已經(jīng)聲明的變量。

web-harvest 啟動(dòng),可以直接雙擊jar包運(yùn)行,不過該方法不能指定web-harvest java虛擬機(jī)的大小。第二種方法,在cmd下切到web-harvest的目錄下,敲入命令“java -jar -Xms400m webharvest_all_2.jar” 即可啟動(dòng)并設(shè)置起java虛擬機(jī)大小為400M。

該項(xiàng)目主頁:http://web-harvest.sourceforge.net

十二、ItSucks

ItSucks是一個(gè)Java Web爬蟲開源項(xiàng)目??伸`活定制,支持通過下載模板和正則表達(dá)式來定義下載規(guī)則。提供一個(gè)控制臺(tái)和Swing GUI操作界面。

功能特性:

  • 多線程
  • 正則表達(dá)式
  • 保存/載入的下載工作
  • 在線幫助
  • HTTP/HTTPS 支持
  • HTTP 代理 支持
  • HTTP身份驗(yàn)證
  • Cookie 支持
  • 可配置的User Agent
  • 連接限制
  • 配置HTTP響應(yīng)代碼的行為
  • 帶寬限制
  • Gzip壓縮

該項(xiàng)目主頁:http://itsucks.sourceforge.net/

十三、Smart and Simple Web Crawler

Smart and Simple Web Crawler是一個(gè)Web爬蟲框架。集成Lucene支持。該爬蟲可以從單個(gè)鏈接或一個(gè)鏈接數(shù)組開始,提供兩種遍歷模式:最大迭代和最大深度??梢栽O(shè)置 過濾器限制爬回來的鏈接,默認(rèn)提供三個(gè)過濾器ServerFilter、BeginningPathFilter和 RegularExpressionFilter,這三個(gè)過濾器可用AND、OR和NOT聯(lián)合。在解析過程或頁面加載前后都可以加監(jiān)聽器。

十四、Crawler4j

crawler4j是Java實(shí)現(xiàn)的開源網(wǎng)絡(luò)爬蟲。提供了簡(jiǎn)單易用的接口,可以在幾分鐘內(nèi)創(chuàng)建一個(gè)多線程網(wǎng)絡(luò)爬蟲。

crawler4j的使用主要分為兩個(gè)步驟:

實(shí)現(xiàn)一個(gè)繼承自WebCrawler的爬蟲類;

通過CrawlController調(diào)用實(shí)現(xiàn)的爬蟲類。

WebCrawler是一個(gè)抽象類,繼承它必須實(shí)現(xiàn)兩個(gè)方法:shouldVisit和visit。其中:

shouldVisit是判斷當(dāng)前的URL是否已經(jīng)應(yīng)該被爬取(訪問);

visit則是爬取該URL所指向的頁面的數(shù)據(jù),其傳入的參數(shù)即是對(duì)該web頁面全部數(shù)據(jù)的封裝對(duì)象Page。

另外,WebCrawler還有其它一些方法可供覆蓋,其方法的命名規(guī)則類似于Android的命名規(guī)則。如getMyLocalData方法可以返回WebCrawler中的數(shù)據(jù);onBeforeExit方法會(huì)在該WebCrawler運(yùn)行結(jié)束前被調(diào)用,可以執(zhí)行一些資源釋放之類的工作。

許可

Copyright (c) 2010-2015 Yasser Ganjisaffar

根據(jù) Apache License 2.0 發(fā)布

開源地址: https://github.com/yasserg/crawler4j

十五、Ex-Crawler

Ex-Crawler 是一個(gè)網(wǎng)頁爬蟲,采用 Java 開發(fā),該項(xiàng)目分成兩部分,一個(gè)是守護(hù)進(jìn)程,另外一個(gè)是靈活可配置的 Web 爬蟲。使用數(shù)據(jù)庫(kù)存儲(chǔ)網(wǎng)頁信息。

Ex-Crawler分成三部分(Crawler Daemon,Gui Client和Web搜索引擎),這三部分組合起來將成為一個(gè)靈活和強(qiáng)大的爬蟲和搜索引擎。其中Web搜索引擎部分采用PHP開發(fā),并包含一個(gè)內(nèi)容管理系統(tǒng)CMS用于維護(hù)搜索引擎。

該項(xiàng)目主頁:http://ex-crawler.sourceforge.net/joomla/

十六、Crawler

Crawler是一個(gè)簡(jiǎn)單的Web爬蟲。它讓你不用編寫枯燥,容易出錯(cuò)的代碼,而只專注于所需要抓取網(wǎng)站的結(jié)構(gòu)。此外它還非常易于使用。

該項(xiàng)目主頁:http://projetos.vidageek.net/crawler/crawler/

十七、Encog

Encog是一個(gè)高級(jí)神經(jīng)網(wǎng)絡(luò)和機(jī)器人/爬蟲開發(fā)類庫(kù)。Encog提供的這兩種功能可以單獨(dú)分開使用來創(chuàng)建神經(jīng)網(wǎng)絡(luò)或HTTP機(jī)器人程序,同時(shí)Encog還支持將這兩種高級(jí)功能聯(lián)合起來使用。Encog支持創(chuàng)建前饋神經(jīng)網(wǎng)絡(luò)、Hopfield神經(jīng)網(wǎng)絡(luò)、自組織圖。

Encog提供高級(jí)HTTP機(jī)器人/爬蟲編程功能。支持將多線程爬蟲產(chǎn)生的內(nèi)容存在內(nèi)存或數(shù)據(jù)庫(kù)中。支持HTM解析和高級(jí)表單與Cookie處理。

Encog是一種先進(jìn)的機(jī)器學(xué)習(xí)框架,它支持多種先進(jìn)的算法,以及支持類正?;吞幚頂?shù)據(jù)。機(jī)器學(xué)習(xí)算法,如支持向量機(jī),人工神經(jīng)網(wǎng)絡(luò),遺傳編程,貝葉斯網(wǎng)絡(luò),隱馬爾可夫模型,遺傳編程和遺傳算法的支持。大多數(shù)Encog培訓(xùn)algoritms是多線程的,很好地?cái)U(kuò)展到多核硬件。Encog還可以使用一個(gè)GPU,以進(jìn)一步加快處理時(shí)間。一個(gè)基于GUI的工作臺(tái)也提供幫助模型和火車機(jī)器學(xué)習(xí)算法。自2008年以來Encog一直在積極發(fā)展.

Encog 支持多種語言,包括C# Java 和C

在GitHub上有各種語言版本的源代碼。

http://www.heatonresearch.com/encog

https://github.com/encog

十八、Crawljax

Crawljax是一個(gè)開源Java工具用于Ajax Web應(yīng)用程序的自動(dòng)化抓取和測(cè)試。Crawljax能夠抓取/爬行任何基于Ajax的Web應(yīng)用程序通過觸發(fā)事件和在表單中填充數(shù)據(jù)。

收錄時(shí)間:2011-05-18 09:50:32

該項(xiàng)目主頁:http://crawljax.com/

開源地址:https://github.com/crawljax/crawljax

責(zé)任編輯:趙寧寧 來源: 36大數(shù)據(jù)
相關(guān)推薦

2019-11-12 08:53:00

線上命令日志

2022-11-16 11:55:22

網(wǎng)絡(luò)連接命令

2024-03-21 17:29:45

2022-07-19 06:24:02

微服務(wù)高可用

2022-06-02 10:56:30

MySQL數(shù)據(jù)庫(kù)技術(shù)

2011-07-05 13:24:03

C++

2022-08-26 08:17:32

Webshiro關(guān)系

2016-04-26 10:41:01

2011-04-07 09:32:49

遞歸

2021-01-14 10:38:41

Java枚舉工具

2011-08-05 14:34:13

2020-08-30 14:31:40

Python編程語言開發(fā)

2015-06-17 11:18:01

WiFi

2021-02-26 09:04:22

數(shù)組ArrayListHashMap

2013-09-03 09:09:30

大數(shù)據(jù)

2022-09-06 15:35:01

開源軟件OSS

2024-12-13 15:37:55

2023-09-06 08:19:53

2012-04-02 13:22:41

Linux緩存web

2015-08-06 13:30:56

商鋪線上
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)