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