溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于java的分布式爬蟲

發(fā)布時(shí)間:2020-08-11 15:50:44 來源:ITPUB博客 閱讀:161 作者:tianxiaoxu 欄目:軟件技術(shù)

【本文轉(zhuǎn)自博客園  作者:張鋒  原文鏈接:https://www.cnblogs.com/skyme/p/4440831.html】

分類

分布式網(wǎng)絡(luò)爬蟲包含多個(gè)爬蟲,每個(gè)爬蟲需要完成的任務(wù)和單個(gè)的爬行器類似,它們從互聯(lián)網(wǎng)上下載網(wǎng)頁,并把網(wǎng)頁保存在本地的磁盤,從中抽取URL并沿著這些URL的指向繼續(xù)爬行。由于并行爬行器需要分割下載任務(wù),可能爬蟲會(huì)將自己抽取的URL發(fā)送給其他爬蟲。這些爬蟲可能分布在同一個(gè)局域網(wǎng)之中,或者分散在不同的地理位置。

根據(jù)爬蟲的分散程度不同,可以把分布式爬行器分成以下兩大類:

1、基于局域網(wǎng)分布式網(wǎng)絡(luò)爬蟲:這種分布式爬行器的所有爬蟲在同一個(gè)局域網(wǎng)里運(yùn)行,通過高速的網(wǎng)絡(luò)連接相互通信。這些爬蟲通過同一個(gè)網(wǎng)絡(luò)去訪問外部互聯(lián)網(wǎng),下載網(wǎng)頁,所有的網(wǎng)絡(luò)負(fù)載都集中在他們所在的那個(gè)局域網(wǎng)的出口上。由于局域網(wǎng)的帶寬較高,爬蟲之間的通信的效率能夠得到保證;但是網(wǎng)絡(luò)出口的總帶寬上限是固定的,爬蟲的數(shù)量會(huì)受到局域網(wǎng)出口帶寬的限制。

2、基于廣域網(wǎng)分布式網(wǎng)絡(luò)爬蟲:當(dāng)并行爬行器的爬蟲分別運(yùn)行在不同地理位置(或網(wǎng)絡(luò)位置),我們稱這種并行爬行器為分布式爬行器。例如,分布式爬行器的爬蟲可能位于中國,日本,和美國,分別負(fù)責(zé)下載這三地的網(wǎng)頁;或者位于CHINANET,CERNET,CEINET,分別負(fù)責(zé)下載這三個(gè)網(wǎng)絡(luò)的中的網(wǎng)頁。分布式爬行器的優(yōu)勢(shì)在于可以子在一定程度上分散網(wǎng)絡(luò)流量,減小網(wǎng)絡(luò)出口的負(fù)載。如果爬蟲分布在不同的地理位置(或網(wǎng)絡(luò)位置),需要間隔多長時(shí)間進(jìn)行一次相互通信就成為了一個(gè)值得考慮的問題。爬蟲之間的通訊帶寬可能是有限的,通常需要通過互聯(lián)網(wǎng)進(jìn)行通信。

大型分布式網(wǎng)絡(luò)爬蟲體系結(jié)構(gòu)圖

基于java的分布式爬蟲


分布式網(wǎng)絡(luò)爬蟲是一項(xiàng)十分復(fù)雜系統(tǒng)。需要考慮很多方面因素。性能可以說是它這重要的指標(biāo)。當(dāng)然硬件層面的資源也是必須的。

架構(gòu)


下面是項(xiàng)目的總體架構(gòu),第一個(gè)版本基于此方案來做。

上面的web層包括:控制臺(tái)、基本權(quán)限、監(jiān)控展示等,還可以根據(jù)需要再一步進(jìn)行擴(kuò)展。


核心層由控制者統(tǒng)一調(diào)度,將任務(wù)發(fā)給工人隊(duì)列中的工人進(jìn)行爬取操作。各個(gè)結(jié)點(diǎn)動(dòng)態(tài)的向監(jiān)控模塊發(fā)送模塊狀態(tài)等信息,統(tǒng)一由展示層展示。

基于java的分布式爬蟲

項(xiàng)目目標(biāo)


眾推,開源版的今日頭條!


基于hadoop思維的分布式網(wǎng)絡(luò)爬蟲。


目前已經(jīng)將fourinone、jeesite、webmagic整合進(jìn)來,并且進(jìn)一步進(jìn)行改進(jìn)。想最終做成一個(gè)基于設(shè)計(jì)器的動(dòng)態(tài)可配置的分布式爬蟲系統(tǒng),這個(gè)是第一階段的目標(biāo)。

項(xiàng)目目前情況


目前項(xiàng)目進(jìn)展情況:


1、sourceer,可以接入多種數(shù)據(jù)源,接口已經(jīng)定義(加入builder封裝,可以使用簡單爬蟲)。


2、web架構(gòu)工程(web工程上傳并測(cè)試成功,權(quán)限、基礎(chǔ)框架改造,導(dǎo)入等已經(jīng)錄成視頻,刪除activiti,刪除cms部分)。


3、分布式框架研究(分布式項(xiàng)目分包,添加部分注釋,測(cè)試單機(jī)單工人爬取)。


4、插件化整合。


5、文章等各種去重方式及算法(目前已實(shí)現(xiàn)bloomfilter,指紋算法去重,已經(jīng)實(shí)現(xiàn)simhash,分詞算法(ansj))。


6、分類器測(cè)試(bayes,文本分類單機(jī)測(cè)試成功)。


項(xiàng)目地址:


(分布式爬蟲)http://git.oschina.net/zongtui/zongtui-webcrawler


(去重過濾器)https://git.oschina.net/zongtui/zongtui-filter


(文本分類器)https://git.oschina.net/zongtui/zongtui-classifier


(文檔目錄)https://git.oschina.net/zongtui/zongtui-doc


項(xiàng)目界面:


啟動(dòng)jetty,目前皮膚暫時(shí)還未換。

基于java的分布式爬蟲

總結(jié)

目前項(xiàng)目正在進(jìn)一步完善當(dāng)中,希望能得到你更多的意見!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI