手把手教你搭建乙個基於Java的分布式爬蟲系統

2021-08-29 04:47:29 字數 860 閱讀 3131

在不用爬蟲框架的情況下,我經過多方學習,嘗試實現了乙個分布式爬蟲系統,並且可以將資料儲存到不同地方,類似 mysql、hbase 等。

因為此系統基於面向介面的編碼思想來開發,所以具有一定的擴充套件性,有興趣的朋友直接看一下**,就能理解其設計思想。

雖然**目前來說很多地方還是比較緊耦合,但只要花些時間和精力,很多都是可抽取出來並且可配置化的。

因為時間的關係,我只寫了京東和蘇寧易購兩個**的爬蟲,但是完全可以實現不同**爬蟲的隨機排程,基於其**結構,再寫國美、天貓等的商品爬取,難度不大,但是估計需要花些時間和精力。

因為在解析網頁的資料時,比如我在爬取蘇寧易購商品的**時,**是非同步獲取的,並且其 api 是一長串的數字組合,我花了幾個小時的時間才發現其規律,當然也承認,我的經驗不足。

這個系統的設計,除了基本的資料爬取以外,更關注以下幾個方面的問題:

同乙個程式打包後分發到不同的節點執行時,不影響整體的資料爬取。

如何實現 url 隨機迴圈排程?核心是針對不同的頂級網域名稱做隨機。

如何定時向 url 倉庫中新增種子 url?達到不讓爬蟲系統停下來的目的。

如何實現對爬蟲節點程式的監控,並能夠發郵件報警?

如何實現乙個隨機 ip **庫?目的跟第 2 點有點類似,都是為了反反爬蟲。

下面會針對這個系統來做乙個整體的基本介紹,我在**中都有非常詳細的注釋,有興趣的朋友可以參考一下**,最後我會給出一些我爬蟲時的資料分析。

手把手教你搭建FastDFS

fastdfs分布式檔案儲存,4 500m檔案都適合,它分為三個部分 第一部分,client,客戶端,即發起訪問者,使用者 第二部分 tracker,追蹤器,可搭建集群,檔案上傳時,tracker會跟蹤檔案資源,記住檔案存在 第三部分 storage,儲存檔案,倉庫,可搭建集群,以分組為單位,每一組...

手把手教你搭建gitlab

sudo yum install y curl policycoreutils pythonopenssh serversudo systemctl start sshdsudo systemctl enable sshdsudo yum install firewalld systemd yser...

手把手教你搭建Hive Web環境

了解hive的都知道hive有三種使用方式 cli命令列,hwi hie web inte ce 瀏覽器 以及 thrift客戶端連線方式。為了體驗下hwi模式,特意查詢了多方的資料,都沒有乙個完整的部署方案,經過一下午的踩坑,這裡特意總結一下,希望為後人節省點時間。先放個圖興奮一下!文件資源 各個...