案例介绍
由于公司项目需求,我初次接触了Webmagic,一款java爬虫框架,WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来,可以帮助你快速开发出一个高效、易维护的爬虫。公司项目系统欲实现通过定时任务Scheduled全量爬取车型报价,车型报价可以通过易车网等网站爬取,项目的关注点注重对爬取数据的处理,一个爬虫项目的重点无非就是获取我们想要的对我们有价值的数据,为了达到这一目标,爬虫要正确去正则匹配获取想要的车型报价等数据,通过代理服务器多线程地完成大量的网站链接相关的页面内容的数据抓取,而数据的获取只是第一步,把爬取的原始数据转换成有价值的业务数据,无疑是项目的使命或者价值所在。公司项目对爬虫获取的大量原始数据,处理的思路为通过Pipeline管道借助队列Queue保存原始数据,再通过定时任务批处理,完成redis缓存原始数据,再从redis取出原始数据转换成业务数据,将有价值的数据入库管理,不合格的原始数据保存进队列,进行es数据展示。
爬虫架构
![](https://i-blog.csdnimg.cn/blog_migrate/658460ef0fef5c74d2a7ee7f09ce664f.png)
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。
官网地址:http://webmagic.io/
<