• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

cetty

开源软件地址:

https://gitee.com/jibug/cetty

开源软件介绍:

Cetty

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

Build StatusLicense

An event dispatch crawler framework.

功能介绍

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

快速开始

使用Maven

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

帮助

1.详细文档:http://cetty.jibug.com/
2.QQ群

3.bug反馈:issues

让我们来写第一个demo

/** * 抓取天涯论坛文章列表标题 * 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())                //是否启用实时抓取模式,如果启用非实时抓取模式则当任务队列中没有任务的一段时间后爬虫会自动处于close状态                .isDuration(false)                .start();    }}

历史版本

版本说明
0.1.0支持基本爬虫功能
0.1.51.支持xpath 2.修复添加cookie失效问题 3.优化底层逻辑
0.1.7修复底层bug

TODO

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

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap