cetty- 基于事件分发的爬虫框架

网友投稿 700 2022-10-24

cetty- 基于事件分发的爬虫框架

cetty- 基于事件分发的爬虫框架

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

功能介绍

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

maven

com.jibug.cetty cetty-core 0.1.5

快速入门

/** * 抓取天涯论坛文章列表标题 * http://bbs.tianya-/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 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-/list-333-1.shtml"). //通用请求信息 setPayload(Payload.custom()). //添加自定处理器 addHandler(new Tianya()). //添加默认结果处理器,输出至控制台 addHandler(new ConsoleReduceHandler()). start(); }}

TODO

支持注解方式支持代理池支持Berkeley 内存数据作为url管理器,提供海量url存储并提高存取效率支持热更新支持爬虫治理

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:某系统提供了用户信息操作模块,用户可以修改自己的各项信息。为了使操作过程更加人性化,现使用备忘录模式对系统进行改进,使得用户在进行了错误操作之后可以恢复到操作之前的状态。用户信息中包含账号、密码、电话
下一篇:连接数据库实现查询员工信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~