jsoup教程_1 简介
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 简介相关推荐
- Nacos教程_1 简介和安装
教程原稿–https://gitee.com/fakerlove/joker-nacos 文章目录 nacos 教程 1. 简介 1.1 介绍 1.2 安装 下载 linux版本 windows版本 ...
- Git教程_1 简介
https://gitee.com/fakerlove/git 文章目录 git 教程 1. 简介 1.1 介绍 1.2 环境准备 1.3 安装 1. 设置 用户名和密码: 2. 然后看本地目录是否有 ...
- docker教程_1 简介和安装
https://gitee.com/fakerlove/docker 文章目录 Docker 教程 1. 简介 1.1 概念 1.2 优点 1.3 安装 环境准备 安装 Docker 教程 1. 简介 ...
- jenkins教程_1 简介
文章内容 https://gitee.com/fakerlove/jenkins 文章目录 1. 简介 1.1 介绍 1.2 环境准备 1.2.1 安装jenkins 1) 离线安装 2) docke ...
- C和C++Everything教程的简介
C和C++Everything教程的简介 C和C++Everything教程的简介 C和C++Everything教程的简介 该专栏包含了以下专栏的全部博文 C和C++完整教程(该专栏目前已有八百多篇 ...
- JSOUP 教程—— Java爬虫,简易入门,秒杀htmlparser
转载自 JSOUP 教程-- Java爬虫,简易入门,秒杀htmlparser 关于爬虫,之前一直用做第一个站的时候,记得那时候写的 爬虫 是爬sina 的数据,用的就是 htmlparser 可 ...
- spring-mvc教程_使用MVC模式制作游戏-教程和简介
spring-mvc教程 游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,它的用途很快就会被注意到,因为 ...
- 使用MVC模式制作游戏-教程和简介
游戏开发中一种有用的体系结构模式是MVC(模型视图控制器)模式. 它有助于分离输入逻辑,游戏逻辑和UI(渲染). 在任何游戏开发项目的早期阶段,其实用性很快就会被注意到,因为它允许快速更改内容,而无需 ...
- SpringSecurity入门到入土教程_1
https://gitee.com/fakerlove/spring-security 文章目录 SpringSecurity 教程 1. 简介 1.1 概念 1.2 入门案例 1.3 自定义登录逻辑 ...
最新文章
- sql增删改查_增删改查!sql2pandas方法手册
- Content-Type, Data-Type
- python【数据结构与算法】战争之城(分支限界法)
- linux下diff、patch制作补丁
- 解决Yum下载慢 的问题
- 对话阿里云:解锁视频云的新技术、新场景
- lost connection to MySQL server at waiting for initial communication packet,system error:o
- Laravel服务提供器
- ge linux安装apt_linux – 一个通用的bash脚本,用于安装apt-ge...
- 七牛云删除图片接口_Thinkphp连接七牛云存储空间删除图片
- EasyUI +MVC +EF实现增删改查
- Leetcode 110.平衡二叉树
- Maven—Windows操作系统中安装配置Maven环境
- 余世维+金正昆+陈安之+曾仕强+张锦贵等资料集
- Codeforces Round #540 (Div. 3)--B. Tanya and Candies(前缀和的运用与变化)
- 双系统Window+Linux,卸载Linux
- 无穷小微积分理论的“根”扎的有多深?
- 湖仓一体化:铁打的数据仓 流水的数据湖产品
- Java监听mysql的binlog详解(mysql-binlog-connector)
- Navicat服务器间的数据库迁移
热门文章
- android7.0+关闭wifi连接CA验证
- 线性回归与分类, 解决与区别
- Scheme学习系列一 :源码安装Gambit
- start_kernel之前的调用流程(head.s)
- 由树莓派折腾中联想到的一个需求---基于Wiki的分布式协同编辑百科学习笔记本
- java 容易犯错_写Java程序最容易犯错误有哪些呢?
- 计算机学业水平测试网,学业水平测试
- mac 强制退出程序_Mac OS系统如何强制退出应用程序
- 简单html源码_HTML 文本格式化
- 开发这么久你真知道for循环内部执行顺序吗?