cetty基于事件分发的爬虫框架
一个轻量级的基于事件分发的爬虫框架。
功能介绍
- 基于完全自定义事件处理机制的爬虫框架。
- 模块化的设计,提供强大的可扩展性。
- 基于HttpClient支持同步和异步数据抓取。
- 支持多线程。
- 基于Jsoup页面解析框架提供强大的网页解析处理能力。
maven
<dependency> <groupId>com.jibug.cetty</groupId> <artifactId>cetty-core</artifactId> <version>0.1.5</version> </dependency>
快速入门
/** * 抓取天涯论坛文章列表标题 * http://bbs.tianya.cn/list-333-1.shtml * * @author heyingcai */ public class Tianya extends ProcessHandlerAdapter { @Override public void process(HandlerContext ctx, Page page) { //获取 Document Document document = page.getDocument(); //dom解析 Elements itemElements = document. select("div#bbsdoc>div#bd>div#main>div.mt5>table>tbody"). get(2). select("tr"); List<String> titles = Lists.newArrayList(); for (Element item : itemElements) { String title = item.select("td.td-title").text(); titles.add(title); } //获取Result对象,将我们解析出来的结果向下一个handler传递 Result result = page.getResult(); result.addResults(titles); //通过fireXXX 方法将本handler 处理的结果向下传递 //本教程直接将结果传递给ConsoleHandler,将结果直接输出控制台 ctx.fireReduce(page); } public static void main(String[] args) { //启动引导类 Bootstrap. me(). //使用同步抓取 isAsync(false). //开启一个线程 setThreadNum(1). //抓取入口url startUrl("http://bbs.tianya.cn/list-333-1.shtml"). //通用请求信息 setPayload(Payload.custom()). //添加自定处理器 addHandler(new Tianya()). //添加默认结果处理器,输出至控制台 addHandler(new ConsoleReduceHandler()). start(); } }
TODO
- 支持注解方式
- 支持代理池
- 支持Berkeley 内存数据作为url管理器,提供海量url存储并提高存取效率
- 支持热更新
- 支持爬虫治理
评论
CatGate基于浏览器的爬虫框架
CatGate是一个基于浏览器插件的数据抓取工具。做成浏览器插件无需模拟登入,能最真实的模仿用户行为和特征。演示视频http://weibo.com/1088413295/F9P1izhY2功能①Ca
CatGate基于浏览器的爬虫框架
0
Reaqtor基于 Rx 的事件处理框架
Reaqtor是一个基于ReactiveExtensions(Rx)的可靠、有状态、分布式和可扩展的事件处理框架。Reaqtor通过增加状态和持久性基元来发展反应式扩展(Rx),以实现长期运行的"Rx
Reaqtor基于 Rx 的事件处理框架
0
WebCollector-Python基于 Python 的开源网络爬虫框架
WebCollector-PythonWebCollector-Python是一个无须配置、便于二次开发的Python爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。W
WebCollector-Python基于 Python 的开源网络爬虫框架
0
WebCollector-Python基于 Python 的开源网络爬虫框架
WebCollector-PythonWebCollector-Python 是一个无须配置、便于二
WebCollector-Python基于 Python 的开源网络爬虫框架
0