基于 Java 的開(kāi)源網(wǎng)路爬蟲(chóng)框架
優(yōu)采云 發(fā)布時(shí)間: 2020-05-15 08:00WebCollector 是一個(gè)無(wú)須配置、便于二次開(kāi)發(fā)的Java爬蟲(chóng)框架(內核),它提供精簡(jiǎn)的的 API,只需少量代碼即可實(shí)現一個(gè)功能強悍的爬蟲(chóng)。WebCollector-Hadoop 是 WebCollector 的 Hadoop 版本,支持分布式爬取。
目前WebCollector-Python項目已在Github上開(kāi)源,歡迎諸位前來(lái)貢獻代碼:
WebCollector 致力于維護一個(gè)穩定、可擴的爬蟲(chóng)內核,便于開(kāi)發(fā)者進(jìn)行靈活的二次開(kāi)發(fā)。內核具有太強的擴展性,用戶(hù)可以在內核基礎上開(kāi)發(fā)自己想要的爬蟲(chóng)。源碼中集成了 Jsoup,可進(jìn)行精準的網(wǎng)頁(yè)解析。2.x 版本中集成了 selenium,可以處理 JavaScript 生成的數據。
Maven:
最新Maven地址請參考文檔:
文檔地址:
內核架構圖:
自定義遍歷策略,可完成更為復雜的遍歷業(yè)務(wù),例如分頁(yè)、AJAX
可以為每位 URL 設置附加信息(MetaData),利用附加信息可以完成好多復雜業(yè)務(wù),例如深度獲取、錨文本獲取、引用頁(yè)面獲取、POST 參數傳遞、增量更新等。
使用插件機制,用戶(hù)可訂制自己的Http請求、過(guò)濾器、執行器等插件。
內置一套基于顯存的插件(RamCrawler),不依賴(lài)文件系統或數據庫,適合一次性爬取,例如實(shí)時(shí)爬取搜索引擎。
內置一套基于 Berkeley DB(BreadthCrawler)的插件:適合處理常年和大量級的任務(wù)java單機爬蟲(chóng)框架,并具有斷點(diǎn)爬取功能,不會(huì )由于宕機、關(guān)閉造成數據遺失。
集成 selenium,可以對 JavaScript 生成信息進(jìn)行抽取
可輕松自定義 http 請求,并外置多代理隨機切換功能。 可通過(guò)定義 http 請求實(shí)現模擬登陸。
使用 slf4j 作為日志店面,可對接多種日志
使用類(lèi)似Hadoop的Configuration機制,可為每位爬蟲(chóng)訂制配置信息。
網(wǎng)頁(yè)正文提取項目 ContentExtractor 已劃入 WebCollector 維護。
WebCollector 的正文抽取 API 都被封裝為 ContentExtractor 類(lèi)的靜態(tài)方式??梢猿槿〗Y構化新聞,也可以只抽取網(wǎng)頁(yè)的正文(或正文所在 Element)。
正文抽取療效指標 :
標題抽取和日期抽取使用簡(jiǎn)單啟發(fā)式算法java單機爬蟲(chóng)框架,并沒(méi)有象正文抽取算法一樣在標準數據集上測試,算法仍在更新中。




