一个轻量级的基于事件分发的爬虫框架。
功能介绍
基于完全自定义事件处理机制的爬虫框架。模块化的设计,提供强大的可扩展性。基于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存储并提高存取效率支持热更新支持爬虫治理
评论