Java 爬蟲框架,SeimiCrawler V0.2.5 發布
SeimiCrawler是一個敏捷的,支持分布式的爬蟲開發框架,希望能在最大程度上降低新手開發一個可用性高且性能不差的爬蟲系統的門檻,以及提升開發爬蟲系統的開發效率。在SeimiCrawler的世界里,絕大多數人只需關心去寫抓取的業務邏輯就夠了,其余的Seimi幫你搞定。設計思想上 SeimiCrawler受Python的爬蟲框架Scrapy啟發很大,同時融合了Java語言本身特點與Spring的特性,并希望在國內更方便且普遍的使用更有效率的XPath解析HTML,所以SeimiCrawler默認的HTML解析器是JsoupXpath(獨立擴展項目,非jsoup自帶),默認解析提取HTML數據工作均使用XPath來完成(當然,數據處理亦可以自行選擇其他解析器)。
更新內容
v0.2.5
-
增加請求遭遇嚴重異常時重新打回隊列處理機制 當一個請求在經歷網絡請求異常的重試機制后依然出現非預期異常,那么這個請求會在不超過開發者設置的或是默認的最大重新處理次數的情況下被打回隊列重新等待被處理,如果被打回次數達到了最大限制,那么seimi會調用開發者自行覆蓋實現的 BaseSeimiCrawler.handleErrorRequest(Request request)來處理記錄這個異常的請求。重新打回等待處理機制配合delay功能使用可以在很大程度上避免因訪問站點的反爬蟲策略引起的請求處理異常,并丟失請求的記錄的情況。
</li> -
優化去重判斷
</li> -
優化不規范頁面的編碼獲取方式
</li> </ul>歷史更新
v0.2.4
-
自動跳轉增強,除301,302外增加支持識別通過meta refresh方式的頁面跳轉
</li> -
Response對象增加通過getRealUrl()獲取內容對應重定向以及跳轉后的真實連接
</li> -
通過注解@Crawler中'useUnrepeated'屬性控制是否啟用系統級去重機制,默認開啟
</li> </ul>v0.2.3
-
支持自定義動態代理 開發者可以通過覆蓋BaseSeimiCrawler.proxy()來自行決定每次請求所使用的代理,覆蓋該方法并返回有效代理地址則@Crawler中proxy屬性失效。
</li> -
添加動態代理,動態User-Agent使用demo
</li> </ul>v0.2.2
-
增強對不規范網頁的編碼識別與兼容能力
</li> </ul>v0.2.1
-
優化黑白名單正則過濾機制
</li> </ul>v0.2.0
-
增加支持內嵌http服務API提交json格式的Request請求
</li> -
增加針對請求URL進行校驗的allowRules和denyRules的自定義設置,即白名單規則和黑名單規則,格式均為正則表達式。默認為null不進行檢查
</li> -
增加對Request的合法性的統一校驗
</li> -
增加支持請求間的delay時間設置
</li> </ul> 項目地址:https://github.com/zhegexiaohuozi/SeimiCrawler本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
-
-
-
-
-