本项目是受webcollector的启发,通过最简单的方式提供了一个超轻量级的java爬虫开发脚手架,支持多线程\url去重\深度爬取\自定义扩展功能
当前版本2.1
一个简单的例子:
new Crawler()
//执行请求实现
.requester(requester)
//结果解析实现
.visitor(visitor)
//执行线程数
.thread(3)
//请求间隔,毫秒
.requestInterval(200L)
//添加请求种子
.add(new Seed("http://www.luoyifan.com"))
//启动
.start();
作为快速开始的例子的一部分,提供了2个基础的实现类
位于core
模块的OkHttpRequester
实现了Requester
接口
位于extend
模块的ConsoleVisitor
实现了Visitor
接口
- 多线程
- 深度爬取
- 爬取间隔
- 失败重试
- 自定义访问器
- 自定义解析器
- 基于
HashSet
或布隆过滤器(bloom filter)
的url去重
- 完整的实时统计
- web/restapi控制支持(待定,与[超轻量级]的定位是否符合?)
2.x
提供以下完整的支持
- 多线程
- 深度爬取
- 基于
HashSet
或布隆过滤器(bloom filter)
的url去重 - 相对丰富的可拓展性
1.x
提供了以下基础的支持,该版本建议仅供开发历史参考,请停止使用- 多线程
- 深度爬取
- 一定的可拓展性
- lombok
- slf4j-api
- log4j2
- okhttp(可选)
脚手架使用过程中如遇到任何问题或无法使用的朋友,请联系我,我会提供一定的技术支持.
QQ: 345300490
WeChat: EvanLowe
Email: [email protected]
如果觉得这个脚手架给你带来了一定的帮助,请帮忙点个赞(star),你的支持是我前进的动力,谢谢!