Java 爬蟲框架:seimicrawler v0.2.7 發布
Change log
v0.2.7
-
內嵌http接口在可以接收單個Json形式Request基礎上增加支持接收Json數組形式的多個Request
-
Request對象支持設置skipDuplicateFilter用來告訴seimi處理器跳過去重機制,默認不跳過
-
增加定時調度使用Demo
-
回調函數通過Request傳遞自定義參數值類型由Object改為String,方便明確處理
-
Fix:修復一個打日志的bug
v0.2.6
-
增加統一的啟動入口類,配合未來SeimiCrawler的maven構建plugin一起使用
-
meta refresh方式跳轉優化,設置最多上限為3次,防止遇到持續刷新頁面無法跳出
-
bug fix:修復在Request中自定義數據無法傳向Response的問題
v0.2.5
-
增加請求遭遇嚴重異常時重新打回隊列處理機制
當一個請求在經歷網絡請求異常的重試機制后依然出現非預期異常,那么這個請求會在不超過開發者設置的或是默認的最大重新處理次數的情況下被打回隊列重新等待被處理,如果被打回次數達到了最大限制,那么seimi會調用開發者自行覆蓋實現的BaseSeimiCrawler.handleErrorRequest(Request request)來處理記錄這個異常的請求。重新打回等待處理機制配合delay功能使用可以在很大程度上避免因訪問站點的反爬蟲策略引起的請求處理異常,并丟失請求的記錄的情況。 -
優化去重判斷
-
優化不規范頁面的編碼獲取方式
v0.2.4
-
自動跳轉增強,除301,302外增加支持識別通過meta refresh方式的頁面跳轉
-
Response對象增加通過getRealUrl()獲取內容對應重定向以及跳轉后的真實連接
-
通過注解@Crawler中'useUnrepeated'屬性控制是否啟用系統級去重機制,默認開啟
v0.2.3
-
支持自定義動態代理
開發者可以通過覆蓋BaseSeimiCrawler.proxy()來自行決定每次請求所使用的代理,覆蓋該方法并返回有效代理地址則@Crawler中proxy屬性失效。 -
添加動態代理,動態User-Agent使用demo
v0.2.2
-
增強對不規范網頁的編碼識別與兼容能力
v0.2.1
-
優化黑白名單正則過濾機制
v0.2.0
-
增加支持內嵌http服務API提交json格式的Request請求
-
增加針對請求URL進行校驗的allowRules和denyRules的自定義設置,即白名單規則和黑名單規則,格式均為正則表達式。默認為null不進行檢查
-
增加對Request的合法性的統一校驗
-
增加支持請求間的delay時間設置
簡介
SeimiCrawler是一個敏捷的,獨立部署的,支持分布式的Java爬蟲框架,希望能在最大程度上降低新手開發一個可用性高且性能不差的爬蟲系統的門檻,以及提升開發爬蟲系統的開發效率。在SeimiCrawler的世界里,絕大多數人只需關心去寫抓取的業務邏輯就夠了,其余的Seimi幫你搞定。設計思想上SeimiCrawler受Python的爬蟲框架Scrapy啟發很大,同時融合了Java語言本身特點與Spring的特性,并希望在國內更方便且普遍的使用更有效率的XPath解析HTML,所以SeimiCrawler默認的HTML解析器是JsoupXpath(獨立擴展項目,非jsoup自帶),默認解析提取HTML數據工作均使用XPath來完成(當然,數據處理亦可以自行選擇其他解析器)。
社區討論
大家有什么問題或建議現在都可以選擇通過下面的郵件列表討論,首次發言前需先訂閱并等待審核通過(主要用來屏蔽廣告宣傳等)
-
訂閱:請發郵件到 seimicrawler+subscribe@googlegroups.com
-
發言:請發郵件到 seimicrawler@googlegroups.com
-
退訂:請發郵件至 seimicrawler+unsubscribe@googlegroups.com
項目源碼
BTW:
如果您覺著這個項目不錯,到github上star一下,我是不介意的 ^_^
來自: http://www.oschina.net//news/69927/seimicrawler-0-2-7