webmagic总体架构分析

WebMagic爬虫框架详解
本文深入探讨WebMagic爬虫框架的四大核心组件:PageProcessor、Pipeline、Downloader和Scheduler的功能与作用,解析其如何协同工作完成网页抓取、数据处理及存储。

在笔记(2)、笔记(3)里,我们对webmagic的eclipse开发环境进行了配置并完成了第一个小爬虫的编写,以上算是对webmagic进行了一次感性的认识。从本篇博文开始,开始学习webmagic的实现细节。 
一下内容是我在使用了webmagic进行一些小爬虫编写的基础上的一些自己的认识,很大一部分受官方的使用手册影响。说白了,就是自己在理解的基础上重新打了一遍。 
首先,祭出总体架构图。 
 
从图中很明显看出webmagic的四大组件:PageProcessor、Pipeline、Downloader、Scheduler。

1.PageProcessor 
对于像我这样的小白来说PageProcessor是实现整个爬虫的需要自己编写的核心代码 。PageProcessor负责解析页面,并根据自己的需求抽取有用信息(包括新的链接)。如果是简单的爬虫,只需要自己定制这一部分即可。

2.Pipeline 
Pipeline负责了抽取结果的处理。比如你想把爬取的数据保存至数据库就可以通过Pipeline实现(需要自己写对应的Pipeline),webmagic默认提供了输出至控制台和保存到文件两种方案。例子如每爬取一个新的页面,源码会自动通过ConsolePipeline将本页面的URL输出至控制台,如下图: 


3.Downloader 
Downloader负责从互联网下载页面Page,交给Pageprocessor进行后续处理。webmagic默认使用Apache HttpClient作为下载工具。
4.Schedule 
Schedule负责管理待抓取的URL,除此URL的去重也由Schedule负责完成。就是说,我们不用担心一个URL被多次抓取了怎么办,Schedule已经帮我们把这些工作做好了。
总结:WebMagic的结构按照页面的爬取流程分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。 
Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值