基於java的分散式爬蟲
【本文轉自部落格園 作者:張鋒 原文連結:https://www.cnblogs.com/skyme/p/4440831.html】
分類
分散式網路爬蟲包含多個爬蟲,每個爬蟲需要完成的任務和單個的爬行器類似,它們從網際網路上下載網頁,並把網頁儲存在本地的磁碟,從中抽取URL並沿著這些URL的指向繼續爬行。由於並行爬行器需要分割下載任務,可能爬蟲會將自己抽取的URL傳送給其他爬蟲。這些爬蟲可能分佈在同一個區域網之中,或者分散在不同的地理位置。
根據爬蟲的分散程度不同,可以把分散式爬行器分成以下兩大類:
1、基於區域網分散式網路爬蟲:這種分散式爬行器的所有爬蟲在同一個區域網裡執行,透過高速的網路連線相互通訊。這些爬蟲透過同一個網路去訪問外部網際網路,下載網頁,所有的網路負載都集中在他們所在的那個區域網的出口上。由於區域網的頻寬較高,爬蟲之間的通訊的效率能夠得到保證;但是網路出口的總頻寬上限是固定的,爬蟲的數量會受到區域網出口頻寬的限制。
2、基於廣域網分散式網路爬蟲:當並行爬行器的爬蟲分別執行在不同地理位置(或網路位置),我們稱這種並行爬行器為分散式爬行器。例如,分散式爬行器的爬蟲可能位於中國,日本,和美國,分別負責下載這三地的網頁;或者位於CHINANET,CERNET,CEINET,分別負責下載這三個網路的中的網頁。分散式爬行器的優勢在於可以子在一定程度上分散網路流量,減小網路出口的負載。如果爬蟲分佈在不同的地理位置(或網路位置),需要間隔多長時間進行一次相互通訊就成為了一個值得考慮的問題。爬蟲之間的通訊頻寬可能是有限的,通常需要透過網際網路進行通訊。
大型分散式網路爬蟲體系結構圖
分散式網路爬蟲是一項十分複雜系統。需要考慮很多方面因素。效能可以說是它這重要的指標。當然硬體層面的資源也是必須的。
架構
下面是專案的總體架構,第一個版本基於此方案來做。
上面的web層包括:控制檯、基本許可權、監控展示等,還可以根據需要再一步進行擴充套件。
核心層由控制者統一排程,將任務發給工人佇列中的工人進行爬取操作。各個結點動態的向監控模組傳送模組狀態等資訊,統一由展示層展示。
專案目標
眾推,開源版的今日頭條!
基於hadoop思維的分散式網路爬蟲。
目前已經將fourinone、jeesite、webmagic整合進來,並且進一步進行改進。想最終做成一個基於設計器的動態可配置的分散式爬蟲系統,這個是第一階段的目標。
專案目前情況
目前專案進展情況:
1、sourceer,可以接入多種資料來源,介面已經定義(加入builder封裝,可以使用簡單爬蟲)。
2、web架構工程(web工程上傳並測試成功,許可權、基礎框架改造,匯入等已經錄成影片,刪除activiti,刪除cms部分)。
3、分散式框架研究(分散式專案分包,新增部分註釋,測試單機單工人爬取)。
4、外掛化整合。
5、文章等各種去重方式及演算法(目前已實現bloomfilter,指紋演算法去重,已經實現simhash,分詞演算法(ansj))。
6、分類器測試(bayes,文字分類單機測試成功)。
專案地址:
(分散式爬蟲)
(去重過濾器)
(文字分類器)
(文件目錄)
專案介面:
啟動jetty,目前皮膚暫時還未換。
總結
目前專案正在進一步完善當中,希望能得到你更多的意見!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31137683/viewspace-2157481/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式爬蟲原理之分散式爬蟲原理分散式爬蟲
- 基於Scrapy分散式爬蟲的開發與設計分散式爬蟲
- 分散式爬蟲分散式爬蟲
- Python分散式爬蟲(三) - 爬蟲基礎知識Python分散式爬蟲
- 分散式爬蟲原理分散式爬蟲
- 分散式爬蟲的部署之Scrapyd分散式部署分散式爬蟲
- 分散式爬蟲的部署之Gerapy分散式管理分散式爬蟲
- 19--Scarpy05:增量式爬蟲、分散式爬蟲爬蟲分散式
- 基於golang分散式爬蟲系統的架構體系v1.0Golang分散式爬蟲架構
- 如何構建一個分散式爬蟲:基礎篇分散式爬蟲
- Python爬蟲教程-34-分散式爬蟲介紹Python爬蟲分散式
- 爬蟲(14) - Scrapy-Redis分散式爬蟲(1) | 詳解爬蟲Redis分散式
- 分散式爬蟲總結和使用分散式爬蟲
- 分散式爬蟲學習筆記分散式爬蟲筆記
- 爬蟲學習之基於Scrapy的網路爬蟲爬蟲
- 分散式爬蟲的部署之Scrapyd批量部署分散式爬蟲
- 分散式爬蟲很難嗎?用Python寫一個小白也能聽懂的分散式知乎爬蟲分散式爬蟲Python
- [爬蟲架構] 如何設計一個分散式爬蟲架構爬蟲架構分散式
- 十分鐘搞懂分散式爬蟲分散式爬蟲
- 第一個分散式爬蟲專案分散式爬蟲
- scrapy之分散式爬蟲scrapy-redis分散式爬蟲Redis
- 2個月精通Python爬蟲——3大爬蟲框架+6場實戰+反爬蟲技巧+分散式爬蟲Python爬蟲框架分散式
- 分散式爬蟲之知乎使用者資訊爬取分散式爬蟲
- 分散式爬蟲有哪些使用代理IP的方法?分散式爬蟲
- 分散式爬蟲的部署之Scrapyd對接Docker分散式爬蟲Docker
- 基於 Electron 的爬蟲框架 Nightmare爬蟲框架
- Java 的正規表示式與爬蟲Java爬蟲
- 分散式通用爬蟲管理平臺Crawlab分散式爬蟲
- 使用Docker Swarm搭建分散式爬蟲叢集DockerSwarm分散式爬蟲
- [Python3網路爬蟲開發實戰] 分散式爬蟲原理Python爬蟲分散式
- Python之分散式爬蟲的實現步驟Python分散式爬蟲
- 基於多執行緒+協程的非同步增量式爬蟲執行緒非同步爬蟲
- 基於 go + xpath 爬蟲小案例Go爬蟲
- .NET使用分散式網路爬蟲框架DotnetSpider快速開發爬蟲功能分散式爬蟲框架IDE
- 基於asyncio、aiohttp、xpath的非同步爬蟲AIHTTP非同步爬蟲
- python分散式爬蟲如何設計架構?Python分散式爬蟲架構
- java 實現開箱即用基於 redis 的分散式鎖JavaRedis分散式
- 基於 Redis 的分散式鎖Redis分散式