当前位置: 首页 > 软件库 > 应用工具 > 网络爬虫 >

cetty

基于事件分发的爬虫框架
授权协议 Apache
开发语言 Java
所属分类 应用工具、 网络爬虫
软件类型 开源软件
地区 国产
投 递 者 寇夜洛
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

功能介绍

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

maven

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

快速入门

/**
 * 抓取天涯论坛文章列表标题
 * 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();
    }
}

TODO

  • 支持注解方式
  • 支持代理池
  • 支持Berkeley 内存数据作为url管理器,提供海量url存储并提高存取效率
  • 支持热更新
  • 支持爬虫治理
 相关资料
  • 本文向大家介绍关于爬虫和反爬虫的简略方案分享,包括了关于爬虫和反爬虫的简略方案分享的使用技巧和注意事项,需要的朋友参考一下 前言 爬虫和反爬虫日益成为每家公司的标配系统。 爬虫在情报获取、虚假流量、动态定价、恶意攻击、薅羊毛等方面都能起到很关键的作用,所以每家公司都或多或少的需要开发一些爬虫程序,业界在这方面的成熟的方案也非常多。 有矛就有盾,每家公司也相应的需要反爬虫系统来达到数据保护、系统稳定

  • 本文向大家介绍基于C#实现网页爬虫,包括了基于C#实现网页爬虫的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了基于C#实现网页爬虫的详细代码,供大家参考,具体内容如下 HTTP请求工具类: 功能: 1、获取网页html 2、下载网络图片 多线程爬取网页代码: 截图: 以上就是本文的全部内容,希望对大家的学习有所帮助。

  • 主要内容:Scrapy下载安装,创建Scrapy爬虫项目,Scrapy爬虫工作流程,settings配置文件Scrapy 是一个基于 Twisted 实现的异步处理爬虫框架,该框架使用纯 Python 语言编写。Scrapy 框架应用广泛,常用于数据采集、网络监测,以及自动化测试等。 提示:Twisted 是一个基于事件驱动的网络引擎框架,同样采用 Python 实现。 Scrapy下载安装 Scrapy 支持常见的主流平台,比如 Linux、Mac、Windows 等,因此你可以很方便的安装它

  • 本文向大家介绍简单好用的nodejs 爬虫框架分享,包括了简单好用的nodejs 爬虫框架分享的使用技巧和注意事项,需要的朋友参考一下 这个就是一篇介绍爬虫框架的文章,开头就不说什么剧情了。什么最近一个项目了,什么分享新知了,剧情是挺好,但介绍的很初级,根本就没有办法应用,不支持队列的爬虫,都是耍流氓。 所以我就先来举一个例子,看一下这个爬虫框架是多么简单并可用。 第一步:安装 Crawl-pet

  • 本文向大家介绍分享一个简单的java爬虫框架,包括了分享一个简单的java爬虫框架的使用技巧和注意事项,需要的朋友参考一下 反复给网站编写不同的爬虫逻辑太麻烦了,自己实现了一个小框架 可以自定义的部分有: 请求方式(默认为Getuser-agent为谷歌浏览器的设置),可以通过实现RequestSet接口来自定义请求方式 储存方式(默认储存在f盘的html文件夹下),可以通过SaveUtil接口来

  • 每天,来自商业、社会以及我们的日常生活所产生「图像、音频、视频、文本、定位信息」等各种各样的海量数据,注入到我们的万维网(WWW)、计算机和各种数据存储设备,其中万维网则是最大的信息载体。

  • 本文向大家介绍基于python爬虫数据处理(详解),包括了基于python爬虫数据处理(详解)的使用技巧和注意事项,需要的朋友参考一下 一、首先理解下面几个函数 设置变量 length()函数 char_length() replace() 函数 max() 函数 1.1、设置变量 set @变量名=值 1.2 、length()函数 char_length()函数区别 1.3、 replace(

  • 本文向大家介绍基于python 爬虫爬到含空格的url的处理方法,包括了基于python 爬虫爬到含空格的url的处理方法的使用技巧和注意事项,需要的朋友参考一下 道友问我的一个问题,之前确实没遇见过,在此记录一下。 问题描述 在某网站主页提取url进行迭代,爬虫请求主页时没有问题,返回正常,但是在访问在主页提取到的url时出现了400状态码(400 Bad Request)。 结论 先贴出结论来