美文网首页
开源基于事件分发的轻量级爬虫框架

开源基于事件分发的轻量级爬虫框架

作者: bronson1 | 来源:发表于2019-03-03 23:48 被阅读0次

Cetty

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

image

功能介绍

  • 基于完全自定义事件处理机制的爬虫框架。

  • 模块化的设计,提供强大的可扩展性。

  • 基于HttpClient支持同步和异步数据抓取。

  • 支持多线程。

  • 基于Jsoup页面解析框架提供强大的网页解析处理能力。

快速开始

使用Maven


<dependency>

  <groupId>com.jibug.cetty</groupId>

  <artifactId>cetty-core</artifactId>

  <version>0.1.6</version>

</dependency>

帮助

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

2.QQ群

image

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()).       

                start();

    }

}

历史版本

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

TODO

  • 支持注解方式

  • 支持代理池

  • 支持Berkeley 内存数据作为url管理器,提供海量url存储并提高存取效率

  • 支持热更新

  • 支持爬虫治理

相关文章

网友评论

      本文标题:开源基于事件分发的轻量级爬虫框架

      本文链接:https://www.haomeiwen.com/subject/gzpvuqtx.html