SeimiCrawler是一個敏捷的,支持分佈式的爬蟲開發框架,但願能在最大程度上下降新手開發一個可用性高且性能不差的爬蟲系統的門檻,以及提高開發爬蟲系統的開發效率。在SeimiCrawler的世界裏,絕大多數人只需關心去寫抓取的業務邏輯就夠了,其他的Seimi幫你搞定。設計思想上SeimiCrawler受Python的爬蟲框架Scrapy啓發很大,同時融合了Java語言自己特色與Spring的特性,並但願在國內更方便且廣泛的使用更有效率的XPath解析HTML,因此SeimiCrawler默認的HTML解析器是JsoupXpath(獨立擴展項目,非jsoup自帶),默認解析提取HTML數據工做均使用XPath來完成(固然,數據處理亦能夠自行選擇其餘解析器)。git
自動跳轉加強,除301,302外增長支持識別經過meta refresh方式的頁面跳轉github
Response
對象增長經過getRealUrl()
獲取內容對應重定向以及跳轉後的真實鏈接web
經過註解@Crawler中'useUnrepeated'屬性控制是否啓用系統級去重機制,默認開啓正則表達式
支持自定義動態代理 開發者能夠經過覆蓋BaseSeimiCrawler.proxy()
來自行決定每次請求所使用的代理,覆蓋該方法並返回有效代理地址則@Crawler
中proxy
屬性失效。json
添加動態代理,動態User-Agent使用demo框架
加強對不規範網頁的編碼識別與兼容能力分佈式
優化黑白名單正則過濾機制性能
增長支持內嵌http服務API提交json格式的Request請求優化
增長針對請求URL進行校驗的allowRules
和denyRules
的自定義設置,即白名單規則和黑名單規則,格式均爲正則表達式。默認爲null不進行檢查編碼
增長對Request的合法性的統一校驗
增長支持請求間的delay時間設置
項目地址:GitHub