一个轻量级的基于事件分发的爬虫框架。
功能介绍
基于完全自定义事件处理机制的爬虫框架。模块化的设计,提供强大的可扩展性。基于HttpCliet支持同步和异步数据抓取。支持多线程。基于Jsoup页面解析框架提供强大的网页解析处理能力。mave
<depedecy><groupId>com.jibug.cetty</groupId><artifactId>cetty-core</artifactId><versio>0.1.5</versio></depedecy>快速入门
/***抓取天涯论坛文章列表标题*https://bbs.tiaya.c/list-333-1.shtml**@authorheyigcai*/publicclassTiayaextedsProcessHadlerAdapter{@Overridepublicvoidprocess(HadlerCotextctx,Pagepage){//获取DocumetDocumetdocumet=page.getDocumet();//dom解析ElemetsitemElemets=documet.select("div#bbsdoc>div#bd>div#mai>div.mt5>table>tbody").get(2).select("tr");List<Strig>titles=Lists.ewArrayList();for(Elemetitem:itemElemets){Strigtitle=item.select("td.td-title").text();titles.add(title);}//获取Result对象,将我们解析出来的结果向下一个hadler传递Resultresult=page.getResult();result.addResults(titles);//通过fireXXX方法将本hadler处理的结果向下传递//本教程直接将结果传递给CosoleHadler,将结果直接输出控制台ctx.fireReduce(page);}publicstaticvoidmai(Strig[]args){//启动引导类Bootstrap.me().//使用同步抓取isAsyc(false).//开启一个线程setThreadNum(1).//抓取入口urlstartUrl("https://bbs.tiaya.c/list-333-1.shtml").//通用请求信息setPayload(Payload.custom()).//添加自定处理器addHadler(ewTiaya()).//添加默认结果处理器,输出至控制台addHadler(ewCosoleReduceHadler()).start();}}TODO
支持注解方式支持代理池支持Berkeley内存数据作为url管理器,提供海量url存储并提高存取效率支持热更新支持爬虫治理







评论