1.1 jsoup 概念

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,

可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

1.2 WebMagic 概念

  • 完全模块化的设计,强大的可扩展性。
  • 核心简单但是涵盖爬虫的全部流程,灵活而强大,也是学习爬虫入门的好材料。
  • 提供丰富的抽取页面API。
  • 无配置,但是可通过POJO+注解形式实现一个爬虫。
  • 支持多线程。
  • 支持分布式。
  • 支持爬取js动态渲染的页面。
  • 无框架依赖,可以灵活的嵌入到项目中去。

架构

WebMagic的四个组件:

1.Downloader

Downloader负责从互联网上下载页面,以便后续处理。WebMagic默认使用了Apache HttpClient作为下载工具。

2.PageProcessor

PageProcessor负责解析页面,抽取有用信息,以及发现新的链接。WebMagic使用Jsoup作为HTML解析工具,并基于其开发了解析XPath的工具Xsoup。

在这四个组件中,PageProcessor对于每个站点每个页面都不一样,是需要使用者定制的部分。

3.Scheduler

Scheduler负责管理待抓取的URL,以及一些去重的工作。WebMagic默认提供了JDK的内存队列来管理URL,并用集合来进行去重。也支持使用Redis进行分布式管理。

除非项目有一些特殊的分布式需求,否则无需自己定制Scheduler。

4.Pipeline

Pipeline负责抽取结果的处理,包括计算、持久化到文件、数据库等。WebMagic默认提供了“输出到控制台”和“保存到文件”两种结果处理方案。

Pipeline定义了结果保存的方式,如果你要保存到指定数据库,则需要编写对应的Pipeline。对于一类需求一般只需编写一个Pipeline。

jsoup教程_1 简介相关推荐

  1. Nacos教程_1 简介和安装

    教程原稿–https://gitee.com/fakerlove/joker-nacos 文章目录 nacos 教程 1. 简介 1.1 介绍 1.2 安装 下载 linux版本 windows版本 ...

  2. Git教程_1 简介

    https://gitee.com/fakerlove/git 文章目录 git 教程 1. 简介 1.1 介绍 1.2 环境准备 1.3 安装 1. 设置 用户名和密码: 2. 然后看本地目录是否有 ...

  3. docker教程_1 简介和安装

    https://gitee.com/fakerlove/docker 文章目录 Docker 教程 1. 简介 1.1 概念 1.2 优点 1.3 安装 环境准备 安装 Docker 教程 1. 简介 ...

  4. jenkins教程_1 简介

    文章内容 https://gitee.com/fakerlove/jenkins 文章目录 1. 简介 1.1 介绍 1.2 环境准备 1.2.1 安装jenkins 1) 离线安装 2) docke ...

  5. C和C++Everything教程的简介

    C和C++Everything教程的简介 C和C++Everything教程的简介 C和C++Everything教程的简介 该专栏包含了以下专栏的全部博文 C和C++完整教程(该专栏目前已有八百多篇 ...

  6. JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser

    转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫  是爬sina 的数据,用的就是 htmlparser  可 ...

  7. spring-mvc教程_使用MVC模式制作游戏-教程和简介

    spring-mvc教程 游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,它的用途很快就会被注意到,因为 ...

  8. 使用MVC模式制作游戏-教程和简介

    游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,其实用性很快就会被注意到,因为它允许快速更改内容,而无需 ...

  9. SpringSecurity入门到入土教程_1

    https://gitee.com/fakerlove/spring-security 文章目录 SpringSecurity 教程 1. 简介 1.1 概念 1.2 入门案例 1.3 自定义登录逻辑 ...

最新文章

  1. sql增删改查_增删改查!sql2pandas方法手册
  2. Content-Type, Data-Type
  3. python【数据结构与算法】战争之城(分支限界法)
  4. linux下diff、patch制作补丁
  5. 解决Yum下载慢 的问题
  6. 对话阿里云:解锁视频云的新技术、新场景
  7. lost connection to MySQL server at waiting for initial communication packet,system error:o
  8. Laravel服务提供器
  9. ge linux安装apt_linux – 一个通用的bash脚本,用于安装apt-ge...
  10. 七牛云删除图片接口_Thinkphp连接七牛云存储空间删除图片
  11. EasyUI +MVC +EF实现增删改查
  12. Leetcode 110.平衡二叉树
  13. Maven—Windows操作系统中安装配置Maven环境
  14. 余世维+金正昆+陈安之+曾仕强+张锦贵等资料集
  15. Codeforces Round #540 (Div. 3)--B. Tanya and Candies(前缀和的运用与变化)
  16. 双系统Window+Linux,卸载Linux
  17. 无穷小微积分理论的“根”扎的有多深?
  18. 湖仓一体化:铁打的数据仓 流水的数据湖产品
  19. Java监听mysql的binlog详解(mysql-binlog-connector)
  20. Navicat服务器间的数据库迁移

热门文章

  1. android7.0+关闭wifi连接CA验证
  2. 线性回归与分类, 解决与区别
  3. Scheme学习系列一 :源码安装Gambit
  4. start_kernel之前的调用流程(head.s)
  5. 由树莓派折腾中联想到的一个需求---基于Wiki的分布式协同编辑百科学习笔记本
  6. java 容易犯错_写Java程序最容易犯错误有哪些呢?
  7. 计算机学业水平测试网,学业水平测试
  8. mac 强制退出程序_Mac OS系统如何强制退出应用程序
  9. 简单html源码_HTML 文本格式化
  10. 开发这么久你真知道for循环内部执行顺序吗?