WebCollector基于 Java 的開源網(wǎng)絡爬蟲框架
爬蟲簡介:
WebCollector 是一個無須配置、便于二次開發(fā)的 Java 爬蟲框架(內(nèi)核),它提供精簡的的 API,只需少量代碼即可實現(xiàn)一個功能強大的爬蟲。WebCollector-Hadoop 是 WebCollector 的 Hadoop 版本,支持分布式爬取。
目前WebCollector-Python項目已在Github上開源,歡迎各位前來貢獻代碼:https://github.com/CrawlScript/WebCollector-Python
爬蟲內(nèi)核:
WebCollector 致力于維護一個穩(wěn)定、可擴的爬蟲內(nèi)核,便于開發(fā)者進行靈活的二次開發(fā)。內(nèi)核具有很強的擴展性,用戶可以在內(nèi)核基礎上開發(fā)自己想要的爬蟲。源碼中集成了 Jsoup,可進行精準的網(wǎng)頁解析。2.x 版本中集成了 selenium,可以處理 JavaScript 生成的數(shù)據(jù)。
Maven:
最新Maven地址請參考文檔:https://github.com/CrawlScript/WebCollector/blob/master/README.md
文檔地址:
https://github.com/CrawlScript/WebCollector/blob/master/README.md
內(nèi)核構架圖:
WebCollector 2.x 版本特性:
-
自定義遍歷策略,可完成更為復雜的遍歷業(yè)務,例如分頁、AJAX
-
可以為每個 URL 設置附加信息(MetaData),利用附加信息可以完成很多復雜業(yè)務,例如深度獲取、錨文本獲取、引用頁面獲取、POST 參數(shù)傳遞、增量更新等。
-
使用插件機制,用戶可定制自己的Http請求、過濾器、執(zhí)行器等插件。
-
內(nèi)置一套基于內(nèi)存的插件(RamCrawler),不依賴文件系統(tǒng)或數(shù)據(jù)庫,適合一次性爬取,例如實時爬取搜索引擎。
-
內(nèi)置一套基于 Berkeley DB(BreadthCrawler)的插件:適合處理長期和大量級的任務,并具有斷點爬取功能,不會因為宕機、關閉導致數(shù)據(jù)丟失。
-
集成 selenium,可以對 JavaScript 生成信息進行抽取
-
可輕松自定義 http 請求,并內(nèi)置多代理隨機切換功能。 可通過定義 http 請求實現(xiàn)模擬登錄。
-
使用 slf4j 作為日志門面,可對接多種日志
-
使用類似Hadoop的Configuration機制,可為每個爬蟲定制配置信息。
WebCollector 2.x 官網(wǎng)和鏡像:
WebCollector 2.x教程:
WebCollector配置
WebCollector入門
WebCollector特色功能
- 【推薦】WebCollector教程——MetaData
- 【推薦】WebCollector教程——MatchUrl和MatchType
- WebCollector 教程——去重輔助插件 NextFilter
- WebCollector教程——斷點爬取
- WebCollector教程——網(wǎng)頁正文自動提取
WebCollector持久化
WebCollector高級爬蟲定制
- WebCollector 2.72自定義Http請求插件(定制User-Agent和Cookie等請求頭)
- WebCollector 2.72處理301/302重定向、404 Not Found等Http狀態(tài)
- WebCollector 2.72使用阿布云代理
WebCollector處理Javascript
WebCollector示例
- WebCollector教程——爬取CSDN博客
- WebCollector教程——爬取搜索引擎
- WebCollector教程——爬取新浪微博
- WebCollector教程——爬取微信公眾號
- WebCollector教程——圖片爬取
- WebCollector教程——獲取當前抓取深度
網(wǎng)頁正文提?。?/strong>
網(wǎng)頁正文提取項目 ContentExtractor 已并入 WebCollector 維護。
WebCollector 的正文抽取 API 都被封裝為 ContentExtractor 類的靜態(tài)方法。可以抽取結構化新聞,也可以只抽取網(wǎng)頁的正文(或正文所在 Element)。
正文抽取效果指標 :
-
比賽數(shù)據(jù)集 CleanEval P=93.79% R=86.02% F=86.72%
-
常見新聞網(wǎng)站數(shù)據(jù)集 P=97.87% R=94.26% F=95.33%
-
算法無視語種,適用于各種語種的網(wǎng)頁
標題抽取和日期抽取使用簡單啟發(fā)式算法,并沒有像正文抽取算法一樣在標準數(shù)據(jù)集上測試,算法仍在更新中。
