v1.2.2 新特性
- 一、系統底層重構,規範包名;
- 二、採集線程白名單過濾優化,避免冗餘失敗重試;
- 三、加強JS渲染方式採集能力,原生新提供 "SeleniumPhantomjsPageLoader",支持以 "selenisum + phantomjs" 方式採集頁面數據;
- 四、支持採集非Web頁面,如JSON接口等,直接輸出響應數據;選擇 "NonPageParser" 便可;
簡介
XXL-CRAWLER 是一個分佈式爬蟲框架。一行代碼開發一個分佈式爬蟲,擁有"多線程、異步、IP動態代理、分佈式、JS渲染"等特性;html
特性
- 一、簡潔:API直觀簡潔,可快速上手;
- 二、輕量級:底層實現僅強依賴jsoup,簡潔高效;
- 三、模塊化:模塊化的結構設計,可輕鬆擴展
- 四、面向對象:支持經過註解,方便的映射頁面數據到PageVO對象,底層自動完成PageVO對象的數據抽取和封裝返回;單個頁面支持抽取一個或多個PageVO
- 五、多線程:線程池方式運行,提升採集效率;
- 六、分佈式支持:經過擴展 "RunData" 模塊,並結合Redis或DB共享運行數據可實現分佈式。默認提供LocalRunData單機版爬蟲。
- 七、JS渲染:經過擴展 "PageLoader" 模塊,支持採集JS動態渲染數據。原生提供 Jsoup(非JS渲染,速度更快)、HtmlUnit(JS渲染)、Selenium+Phantomjs(JS渲染,兼容性高) 等多種實現,支持自由擴展其餘實現。
- 八、失敗重試:請求失敗後重試,並支持設置重試次數;
- 九、代理IP:對抗反採集策略規則WAF;
- 十、動態代理:支持運行時動態調整代理池,以及自定義代理池路由策略;
- 十一、異步:支持同步、異步兩種方式運行;
- 十二、擴散全站:支持以現有URL爲起點擴散爬取整站;
- 1三、去重:防止重複爬取;
- 1四、URL白名單:支持設置頁面白名單正則,過濾URL;
- 1五、自定義請求信息,如:請求參數、Cookie、Header、UserAgent輪詢、Referrer等;
- 1六、動態參數:支持運行時動態調整請求參數;
- 1七、超時控制:支持設置爬蟲請求的超時時間;
- 1八、主動停頓:爬蟲線程處理完頁面以後進行主動停頓,避免過於頻繁被攔截;
文檔地址
技術交流