网络爬虫框架cetty的实现

  • 功能介绍
  • maven配置
  • 简单demo的实现
  • 提供能力
  • 关于demo的github地址如下

功能介绍

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

maven配置

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

简单demo的实现

package com.leo.demo.cettytest;import com.google.common.collect.Lists;
import com.jibug.cetty.core.Bootstrap;
import com.jibug.cetty.core.Page;
import com.jibug.cetty.core.Payload;
import com.jibug.cetty.core.Result;
import com.jibug.cetty.core.handler.ConsoleReduceHandler;
import com.jibug.cetty.core.handler.HandlerContext;
import com.jibug.cetty.core.handler.ProcessHandlerAdapter;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;import java.util.List;/*** 抓取天涯论坛文章列表标题* http://bbs.tianya.cn/list-333-1.shtml** @author Administrator* @Date 2019/5/8 10:39* @TODO*/
public class Tianya extends ProcessHandlerAdapter {@Overridepublic void process(HandlerContext ctx, Page page) {//获取 DocumentDocument 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).//抓取入口urlstartUrl("http://bbs.tianya.cn/list-333-1.shtml").//通用请求信息setPayload(Payload.custom()).//添加自定处理器addHandler(new Tianya()).//添加默认结果处理器,输出至控制台addHandler(new ConsoleReduceHandler()).start();}
}

提供能力

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

关于demo的github地址如下

https://github.com/leo825/sortalgorithm.git

网络爬虫框架cetty的实现相关推荐

  1. 快速认识网络爬虫与Scrapy网络爬虫框架

    本课程为之后Scrapy课程的预先课程,非常简单,主要是为了完全没有基础的小白准备的,如果你已经有了一定的了解那么请跳过该部分 问:什么是网络爬虫 答:就是从网上下载数据的一个程序,只不过这个程序下载 ...

  2. 开源 Python网络爬虫框架 Scrapy

    开源 Python 网络爬虫框架 Scrapy:http://blog.csdn.net/zbyufei/article/details/7554322 介绍 所谓网络爬虫,就是一个在网上到处或定向抓 ...

  3. 基于java的网络爬虫框架(实现京东数据的爬取,并将插入数据库)

    本文为原创博客,仅供技术学习使用.未经允许,禁止将其复制下来上传到百度文库等平台. 目录 网络爬虫框架 网络爬虫的逻辑顺序 网络爬虫实例教学 model main util parse db 再看ma ...

  4. Golang 网络爬虫框架gocolly/colly

    gocolly是Golang实现的网络爬虫框架,名列go版爬虫程序榜首. 安装 go get -u github.com/gocolly/colly/... 例子 import ( "fmt ...

  5. 网络爬虫框架Scrapy简介

    作者: 黄进(QQ:7149101) 一. 网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本:它是一个自动提取网页的程序,它为搜索引擎从万维 ...

  6. Golang网络爬虫框架gocolly/colly(三)

    熟悉了<Golang 网络爬虫框架gocolly/colly 一>和<Golang 网络爬虫框架gocolly/colly 二>之后就可以在网络上爬取大部分数据了.本文接下来将 ...

  7. 2023年互联网网络爬虫框架TOP10分析

    网络爬虫 是一种自动收集互联网上发布的文本.图像和视频等信息并将其存储在数据库中的程序.各种网络爬虫在大数据热潮中发挥着重要作用,使人们更容易抓取数据. 在各种网络爬虫中,有很多开源的网络爬虫框架.开 ...

  8. Python网络爬虫框架 Scrapy简介

    Scrapy 网络爬虫框架 Scrapy的安装 cmd 执行: pip install scrapy测试安装: scrapy -h Scrapy介绍 Scrapy不是一个函数功能库,而是一个爬虫框架. ...

  9. 【Python学习系列五】Python网络爬虫框架Scrapy环境搭建

    1.网络爬虫库Scrapy 网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.Scrap ...

最新文章

  1. 从iso镜像升级ubuntu
  2. FMDatabase常见的几个操作
  3. java 计算器_用Java编写一个简单的计算器
  4. 关于nginx配置的不完全总结
  5. Tomcat常用面试题
  6. 寻找性能更优秀的不可变小字典
  7. VS Code Element 提示 VSCode-Element-Helper 插件
  8. sc925 文档服务器,dell服务器磁盘阵列配置手册.docx
  9. 谈谈如何用eoLinker管理各类API接口
  10. 【技术白皮书】第四章:信息抽取技术产业应用现状及案例(下)
  11. 《Python 100例》练习,基于Python 3.5做了一遍
  12. [NISACTF 2022]
  13. 输出一个菱形(C语言)
  14. 解决matplotlib问题: 没有‘Times New Roman‘字体
  15. 草根程序员转型做项目管理走过的点点滴滴之_华为裁员感想
  16. 取模 乘法和除法运算在CPU和GPU上的效率
  17. 聊聊你不知道的Java变量转型
  18. ccf 201903-5 317号子任务【60分】
  19. 关于elementui上传图片 隐藏上传按钮
  20. 蓝牙解析(part5):BLE的广播通信

热门文章

  1. 猿辅导、作业帮忙“圈钱”,跟谁学、有道、51Talk狂“烧钱”,在线教育钱途在哪?
  2. 贩卖知识的“成功学”,大师“卖拐”几时休?
  3. 本土品牌“资源诅咒”之下,为何李宁逆袭,达芙妮跌落?
  4. 事物的开始和结束命令分别是什么_人教版小学四年级语文下册期末测试题及答案[1]...
  5. 安卓系统PHP MYSQL服务器,安卓手机搭建网站服务器【Php+Mysql+Lighttpd】
  6. java使用druid maven_SpringMVC+Spring+Mybatis整合,使用druid连接池,声明式事务,maven配置...
  7. ajax 下拉框 保留,Ajax生成select级联下拉框和清空多余选项
  8. excel取整函数_Excel中的这些烧脑问题,你遇到过几种?
  9. 修改 oracle dbid,更改数据库DBID
  10. Python 调用pyaudio库录制以及播放wav音频文件