基於java的分布式爬蟲

來源:互聯網
上載者:User

標籤:網路連接   下載任務   互連網   區域網路   廣域網路   

分類

分布式網路爬蟲包含多個爬蟲,每個爬蟲需要完成的任務和單個的爬行器類似,它們從互連網上下載網頁,並把網頁儲存在本地的磁碟,從中抽取URL並沿著這些URL的指向繼續爬行。由於並行爬行器需要分割下載任務,可能爬蟲會將自己抽取的URL發送給其他爬蟲。這些爬蟲可能分布在同一個區域網路之中,或者分散在不同的地理位置。

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

1、基於區域網路分布式網路爬蟲:這種分布式爬行器的所有爬蟲在同一個區域網路裡運行,通過高速的網路連接相互連信。這些爬蟲通過同一個網路去訪問外部互連網,下載網頁,所有的網路負載都集中在他們所在的那個區域網路的出口上。由於區域網路的頻寬較高,爬蟲之間的通訊的效率能夠得到保證;但是網路出口的總頻寬上限是固定的,爬蟲的數量會受到區域網路出口頻寬的限制。

2、基於廣域網路分布式網路爬蟲:當並行爬行器的爬蟲分別運行在不同地理位置(或網路位置),我們稱這種並行爬行器為分布式爬行器。例如,分布式爬行器的爬蟲可能位於中國,日本,和美國,分別負責下載這三地的網頁;或者位於CHINANET,CERNET,CEINET,分別負責下載這三個網路的中的網頁。分布式爬行器的優勢在於可以子在一定程度上分散網路流量,減小網路出口的負載。如果爬蟲分布在不同的地理位置(或網路位置),需要間隔多長時間進行一次相互連信就成為了一個值得考慮的問題。爬蟲之間的通訊頻寬可能是有限的,通常需要通過互連網進行通訊。

大型分布式網路爬蟲體繫結構圖

650) this.width=650;" title="image" style="margin:0px;" alt="image" src="http://s3.51cto.com/wyfs02/M02/6B/AB/wKioL1U0aJGT3hsoAAH1T00vwDk125.jpg" height="461" />

分布式網路爬蟲是一項十分複雜系統。需要考慮很多方面因素。效能可以說是它這重要的指標。當然硬體層面的資源也是必須的。

架構

下面是項目的總體架構,第一個版本基於此方案來做。

上面的web層包括:控制台、基本許可權、監控展示等,還可以根據需要再一步進行擴充。

核心層由控制者統一調度,將任務發給工人隊列中的工人進行爬取操作。各個結點動態向監控模組發送模組狀態等資訊,統一由展示層展示。

650) this.width=650;" title="0.1版本架構圖" style="margin:0px;" alt="0.1版本架構圖" src="http://s3.51cto.com/wyfs02/M00/6B/AB/wKioL1U0aJHRlJvlAAHdTvt5--0309.jpg" height="560" />

項目目標

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

基於hadoop思維的分布式網路爬蟲。

目前已經將fourinone、jeesite、webmagic整合進來,並且進一步進行改進。想最終做成一個基於設計器的動態可配置的分布式爬蟲系統,這個是第一階段的目標。

項目目前情況

目前項目進展情況:

1、sourceer,可以接入多種資料來源,介面已經定義(加入builder封裝,可以使用簡單爬蟲)。

2、web架構工程(web工程上傳並測試成功,許可權、基礎架構改造,匯入等已經錄成視頻,刪除activiti,刪除cms部分)。

3、分布式架構研究(分布式項目分包,添加部分注釋,測試單機單工人爬取)。

4、外掛程式化整合。

5、文章等各種去重方式及演算法(目前已實現bloomfilter,指紋演算法去重,已經實現simhash,分詞演算法(ansj))。

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

項目地址:

(分布式爬蟲)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

項目介面:

啟動jetty,目前皮膚暫時還未換。

650) this.width=650;" title="image" style="margin:0px;" alt="image" src="http://s3.51cto.com/wyfs02/M01/6B/AB/wKioL1U0aJLAAhe3AAINwEMTgP0708.jpg" height="349" />

總結

目前項目正在進一步完善當中,希望能得到你更多的意見!

本文出自 “skyme” 部落格,請務必保留此出處http://skyme.blog.51cto.com/447319/1635942

基於java的分布式爬蟲

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.