YayCrawler分散式爬蟲系統,簡單使用,進階配置。可擴展,減輕開發量,能docker化,適應各種急切需求核心框架:WebMagic, Spring Boot ,MongoDB, ActiveMQ ,Spring + Quartz,Spring Jpa , Druid,Redis, Ehcache ,SLF4J、Log4j2, Bootstrap + Jquery 等。
在力所能及的情況下,最大限度的提高Web爬蟲開發人員的生產力,爬蟲框架裡的一股清流。
基於WebMagic開發的完整的分散式爬蟲框架,該框架特點如下
1.完全分散式:由管理端(Admin)、調度端(Master)和多個Worker組成,各個元件透過Http協定通訊。
2.完全設定化:透過Admin端的頁面設定規則就可以爬取任何網站的數據,當然不同網站的難度不一樣,會有不同的元件分別針對處理登入、驗證碼、封IP等問題。
3.可擴展的任務隊列:任務隊列由Redis實現,根據任務的狀態有四個不同的任務隊列:初始、執行中、成功、失敗。您也可以擴展不同的任務調度演算法,預設是公平調度。
4.可定義持久化方式:爬取結果中,屬性資料預設持久化到MonogoDB,圖片會被下載到檔案伺服器,當然您可以擴充更多的儲存類型。
5.穩定與容錯:任何一個爬蟲任務都會重試和記錄,只有任務真正成功了才會被移到成功隊列,失敗會有失敗的原因描述。
核心框架:Webmagic Spring boot
任務調度:Spring + Quartz
持久層框架:Spring Jpa
資料庫&連線池:Alibaba Druid MongoDB MySql
快取框架:Redis Ehcache
日誌管理:SLF4J、Log4j2
前端框架: Bootstrap + Jquary
1.安裝JDK8
2.安裝mysql資料庫,用作儲存解析規則等數據,需要建立一個「yayCrawler」的資料庫實例,並執行quartz相關的資料庫腳本:quartz.sql(見發布包或源碼)。
3.安裝redis
4.安裝mongoDB用於存放結果數據
5.安裝ftp伺服器軟體ftpserver(可選,用於存放下載圖片)
導入項目,maven install 安裝Admin,Worker,Master 模組。 然後產生的Jar拷貝到crawler.worker / deploy 目錄中,記住改設定檔裡面的Redis,mysql mogodb 的IP ,點選start.bat啟動。
(Linux & Windwos) java -jar worker.war --spring.config.location=worker_local.properties
關閉命令
(Windows) for /f "tokens=1-5 delims= " %%a in ('"netstat -ano|findstr "^:8086""') do taskkill /f /pid %%e
一、Admin Admin層主要負責頁面抽取規則配置,頁面Site配置,資源管理與任務發布
二、Master 分散式爬蟲的控制中心,接受Admin發布的任務,並分派任務給worker執行。
2.1、接收發布任務
2.2、接受Worker的註冊
三、Worker 真正做事情的苦逼青年,接受Master分派的任務並執行,定時向Master報告心跳