一款爬虫框架
WebMagic项目代码分为核心和扩展两部分。
核心部分是一个精简的、模块化的爬虫实现
扩展部分则是包括一些便利的、实用性的功能
-
架构介绍
WebMagic的结构分为四部分:Downloader、PageProcessor、
Scheduler、Pipeline四大组件,并有Spider将他们彼此组织起来。这四大组件应对爬虫生命周期中的下载、处理、管理和持久化等功能。其设计参考了Scapy,但是实现方式更java化一些
而Spider则将四大组件组织起来,让他们之间可以相互交互,流程化的执行,可以认为Spider是一个大容器,它也是WebMagic逻辑的核心
-
四大组价的作用
-
Downloader负责从互联网上下载页面,以便后续处理。WebMagic默认是用了HttpClient作为下载工具
-
PageProcessor负责页面的解析,抽取有用的信息,以及发现新的连接。WebMagic是用Jsoup作为Html解析工具,并基于其开发了解析Xpath的工具Xsoup
-
注意:PageProcessor对于每个站点每个页面都不一样,是需要使用者定制的部分
-
-
Scheduler负责管理抓取的url,以及一些去重的工作。WebMagic默认提供了JDK的内从队列来管理URL,并用集合来进行去重。也支持使用Redis进行分布式管理
-
Pipeline定义了结果的保存方式,如果要保存到指定的数据库,则需要编写对应的Pipeline.对于一类需求一般只需要编写一个Pipeline
-
-
用于数据流转的对象
-
request:是对URL地址的一层封装,一个request对应一个URl地址,是Pageprocessor与Downloder交互的载体,也是P控制D的唯一方式
-
Page:代表了从Downloder下载到的一个页面---可能是HTML,也可能是Json或者其他文本格式的内容,page是Webmagci抽取过程中的核心对象,他提供一些方法可供抽取,结果保存等
-
-