cetty 基于事件分发的爬虫框架开源项目

我要开发同款
匿名用户2019年03月01日
27阅读
开发技术Java
所属分类应用工具、网络爬虫
授权协议Apache

作品详情

一个轻量级的基于事件分发的爬虫框架。

功能介绍

基于完全自定义事件处理机制的爬虫框架。模块化的设计,提供强大的可扩展性。基于HttpClient支持同步和异步数据抓取。支持多线程。基于Jsoup页面解析框架提供强大的网页解析处理能力。

maven

<dependency><groupId>com.jibug.cetty</groupId><artifactId>cetty-core</artifactId><version>0.1.5</version></dependency>

快速入门

/***抓取天涯论坛文章列表标题*https://bbs.tianya.cn/list-333-1.shtml**@authorheyingcai*/publicclassTianyaextendsProcessHandlerAdapter{@Overridepublicvoidprocess(HandlerContextctx,Pagepage){//获取DocumentDocumentdocument=page.getDocument();//dom解析ElementsitemElements=document.select("div#bbsdoc>div#bd>div#main>div.mt5>table>tbody").get(2).select("tr");List<String>titles=Lists.newArrayList();for(Elementitem:itemElements){Stringtitle=item.select("td.td-title").text();titles.add(title);}//获取Result对象,将我们解析出来的结果向下一个handler传递Resultresult=page.getResult();result.addResults(titles);//通过fireXXX方法将本handler处理的结果向下传递//本教程直接将结果传递给ConsoleHandler,将结果直接输出控制台ctx.fireReduce(page);}publicstaticvoidmain(String[]args){//启动引导类Bootstrap.me().//使用同步抓取isAsync(false).//开启一个线程setThreadNum(1).//抓取入口urlstartUrl("https://bbs.tianya.cn/list-333-1.shtml").//通用请求信息setPayload(Payload.custom()).//添加自定处理器addHandler(newTianya()).//添加默认结果处理器,输出至控制台addHandler(newConsoleReduceHandler()).start();}}

TODO

支持注解方式支持代理池支持Berkeley内存数据作为url管理器,提供海量url存储并提高存取效率支持热更新支持爬虫治理
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论