XXL-CRAWLER v1.2.1 发布,分布式爬虫框架

许雪里
 许雪里
发布于 2018年02月08日
收藏 22

版本新特性

  1. JS渲染:支持JS渲染方式采集数据,可参考 "爬虫示例6";

  2. 抽象并设计PageLoader,方便自定义和扩展页面加载逻辑,如JS渲染等。底层提供 "JsoupPageLoader(默认/推荐)","HtmlUnitPageLoader"两种实现,可自定义其他类型PageLoader如 "Selenium" 等;

  3. 修复Jsoup默认加载1M的限制;

  4. 爬虫线程中断处理优化;

简介

XXL-CRAWLER 是一个分布式爬虫框架。一行代码开发一个分布式爬虫,拥有"多线程、异步、IP动态代理、分布式、JS渲染"等特性;

特性

  • 1、简洁:API直观简洁,可快速上手;

  • 2、轻量级:底层实现仅强依赖jsoup,简洁高效;

  • 3、模块化:模块化的结构设计,可轻松扩展

  • 4、面向对象:支持通过注解,方便的映射页面数据到PageVO对象,底层自动完成PageVO对象的数据抽取和封装返回;单个页面支持抽取一个或多个PageVO

  • 5、多线程:线程池方式运行,提高采集效率;

  • 6、分布式支持:通过扩展 "RunData" 模块,并结合Redis或DB共享运行数据可实现分布式。默认提供LocalRunData单机版爬虫。

  • 7、JS渲染:通过扩展 "PageLoader" 模块,支持采集JS动态渲染数据。原生提供Jsoup(快速、推荐)和HtmlUnit(较慢、JS渲染)两种实现,支持自由扩展其他实现。

  • 8、失败重试:请求失败后重试,并支持设置重试次数;

  • 9、代理IP:对抗反采集策略规则WAF;

  • 10、动态代理:支持运行时动态调整代理池,以及自定义代理池路由策略;

  • 11、异步:支持同步、异步两种方式运行;

  • 12、扩散全站:支持以现有URL为起点扩散爬取整站;

  • 13、去重:防止重复爬取;

  • 14、URL白名单:支持设置页面白名单正则,过滤URL;

  • 15、自定义请求信息,如:请求参数、Cookie、Header、UserAgent轮询、Referrer等;

  • 16、动态参数:支持运行时动态调整请求参数;

  • 17、超时控制:支持设置爬虫请求的超时时间;

  • 18、主动停顿:爬虫线程处理完页面之后进行主动停顿,避免过于频繁被拦截;

文档地址

技术交流

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:XXL-CRAWLER v1.2.1 发布,分布式爬虫框架
加载中

精彩评论

wendal
wendal
XxlConfClient的静态块太暴力了 https://gitee.com/xuxueli0323/xxl-conf/issues/IHN3T 跟系统里面的已有ehcache实例冲突啊....
许雪里
许雪里

引用来自“prelove88”的评论

东西挺好,名字不以xxx开头更好一些:laughing:

引用来自“许雪里”的评论

:joy: 哈哈,感谢关注!
这是是一个系列 (http://www.xuxueli.com/page/projects.html ),所以命名比较统一。
如果以后更名,会一并调整的哈。

引用来自“prelove88”的评论

嗯,已经尝试使用xxl-job和那个分布式配置,很不错哈。:+1:
哈哈,XXL-JOB和XXL-CONF两个项目春节会有一波更新,共同期待啊 :)

最新评论(18

bug0day
bug0day
现在怎么这么多爬虫框架, 到处也是分享爬虫的文章,
许雪里
许雪里

引用来自“屌丝--猿”的评论

我也是第一次接触爬虫 然后用了xx 但是跟断点到重写parse(Document html, Element pageVoElement, PageVO pageVo) {}的时候 好像找不到PageParser类是什么的:sob:
可以加文档的群,进群详细沟通下啊
屌丝--猿
屌丝--猿
我也是第一次接触爬虫 然后用了xx 但是跟断点到重写parse(Document html, Element pageVoElement, PageVO pageVo) {}的时候 好像找不到PageParser类是什么的:sob:
许雪里
许雪里

引用来自“屌丝--猿”的评论

遇到了问题 不知道什么原因:disappointed:
可以debug一步步跟进啊
屌丝--猿
屌丝--猿
遇到了问题 不知道什么原因:disappointed:
许雪里
许雪里

引用来自“momisabuilder”的评论

狂赞

引用来自“许雪里”的评论

感谢关注和支持啊 :)

引用来自“momisabuilder”的评论

回复@许雪里 : 能不能抓新浪微博数据
当然可以呀?新浪甚至不需要JS渲染,更加方便。
momisabuilder
momisabuilder

引用来自“momisabuilder”的评论

狂赞

引用来自“许雪里”的评论

感谢关注和支持啊 :)
回复@许雪里 : 能不能抓新浪微博数据
玄玉
玄玉

引用来自“prelove88”的评论

东西挺好,名字不以xxx开头更好一些:laughing:

引用来自“许雪里”的评论

:joy: 哈哈,感谢关注!
这是是一个系列 (http://www.xuxueli.com/page/projects.html ),所以命名比较统一。
如果以后更名,会一并调整的哈。

引用来自“prelove88”的评论

嗯,已经尝试使用xxl-job和那个分布式配置,很不错哈。:+1:

引用来自“许雪里”的评论

哈哈,XXL-JOB和XXL-CONF两个项目春节会有一波更新,共同期待啊 :)
太好了,xxl-job不错!
许雪里
许雪里

引用来自“wendal”的评论

XxlConfClient的静态块太暴力了 https://gitee.com/xuxueli0323/xxl-conf/issues/IHN3T 跟系统里面的已有ehcache实例冲突啊....
可以啊。
XXL-CONF 新版本正在迭代,预计春节发布,这条建议发布时会议并考虑进去的哈。
wendal
wendal
XxlConfClient的静态块太暴力了 https://gitee.com/xuxueli0323/xxl-conf/issues/IHN3T 跟系统里面的已有ehcache实例冲突啊....
返回顶部
顶部