- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
webmagic中文文档
WebMagic in Action
Little book of WebMagic.
WebMagic 是我业余开发的一款简单灵活的爬虫框架。基于它你可以很容易的编写一个爬虫。
这本小书以WebMagic 入手,一方面讲解WebMagic 的使用方式,另一方面讲解爬虫开发的
一些惯用方案。
文章预览请点http://webmagic.io/docs/,页面基于gitbook 进行构建。
此文档仍在编写中,所有的章节安排请点这里。
本文档遵循CC-BYNC 协议。
1.WebMagic 概览
WebMagic 项目代码分为核心和扩展两部分。核心部分(webmagic-core)是一个精简的、模块
化的爬虫实现,而扩展部分则包括一些便利的、实用性的功能。WebMagic 的架构设计参照
了Scrapy ,目标是尽量的模块化,并体现爬虫的功能特点。
这部分提供非常简单、灵活的API ,在基本不改变开发模式的情况下,编写一个爬虫。
扩展部分(webmagic-extension)提供一些便捷的功能,例如注解模式编写爬虫等。同时内置了
一些常用的组件,便于爬虫开发。
另外WebMagic 还包括一些外围扩展和一个正在开发的产品化项目webmagic-avalon 。
2. 微内核和高可扩展性
WebMagic 由四个组件(Downloader、PageProcessor、Scheduler、Pipeline)构成,核心代码非常
简单,主要是将这些组件结合并完成多线程的任务。这意味着,在WebMagic 中,你基本上
可以对爬虫的功能做任何定制。
WebMagic 的核心在webmagic-core 包中,其他的包你可以理解为对WebMagic 的一个扩展
——这和作为用户编写一个扩展是没有什么区别的。
3. 注重实用性
虽然核心需要足够简单,但是WebMagic 也以扩展的方式,实现了很多可以帮助开发的便捷
功能。例如基于注解模式的爬虫开发,以及扩展了 XPath 语法的 Xsoup 等。这些功能在
WebMagic 中是可选的,它们的开发目标,就是让使用者开发爬虫尽可能的简单,尽可能的
易维护。
1.1 WebMagic 的设计思想
1. 一个框架,一个领域
一个好的框架必然凝聚了领域知识。WebMagic 的设计参考了业界最优秀的爬虫Scrapy ,而
实现则应用了HttpClient、Jsoup 等Java 世界最成熟的工具,目标就是做一个Java 语言Web
爬虫的教科书般的实现。
如果你是爬虫开发老手,那么 WebMagic 会非常容易上手,它几乎使用 Java 原生的开发方
式,只不过提供了一些模块化的约束,封装一些繁琐的操作,并且提供了一些便捷的功能。
如果你是爬虫开发新手,那么使用并了解WebMagic 会让你了解爬虫开发的常用模式、工具
链、以及一些问题的处理方式。熟练使用之后,相信自己从头开发一个爬虫也不是什么难事。
因为这个目标,WebMagic 的核心非常简单——在这里,功能性是要给简单性让步的。
1.2 总体架构
WebMagic 的结构分为Downloader、PageProcessor、Scheduler、Pipeline 四大组件,并由Spider
将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。
WebMagic 的设计参考了Scapy ,但是实现方式更Java 化一些。
而Spider 则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider
是一个大的容器,它也是WebMagic 逻辑的核心。
WebMagic 总体架构图如下:
1.2.1 WebMagic 的四个组件
1.Downloader
Downloader 负责从互联网上下载页面,以便后续处理。WebMagic 默认使用了 Apache
HttpClient 作为下载工具。
2.PageProcessor
PageProcessor 负责解析页面,抽取有用信息,以及发现新的链接。WebMagic 使用Jsoup 作
为HTML 解析工具,并基于其开发了解析XPath 的工具Xsoup 。
在这四个组件中,PageProcessor 对于每个站点每个页面都不一样,是需要使用者定制的部
分。
3.Scheduler
Scheduler 负责管理待抓取的URL,以及一些去重的工作。WebMagic 默认提供了JDK 的内存
队列来管理URL,并用集合来进行
文档评论(0)