Webmagic+Redis+Queue+Scheduled案例分析

案例介绍 

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

爬虫架构

webmagic架构图

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/

<
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值