分布式爬虫系统
分布式爬虫系统
一、架构
二、原理
1.分布式原理:
利用scrapy-redis实现分布式,利用主从模式,把自己核心服务器称为master,用于跑爬虫程序的机器称为slave。我们知道,采用scrapy框架抓取网页,需要首先给定一些start_urls,爬虫首先访问start_urls里面的url,再根据具体逻辑对里面的元素、或者其他二级、三级页面进行抓取。而要实现分布式,需要在start_urls里面做文章。
在master上搭建一个redis数据库(这个数据库只用于url的存储,不用于存储数据),并对每一个需要爬取的网站类型,都开辟一个单独的列表字段。通过设置slave上scrapy-redis获取url的地址为master地址。这样的设置就是,尽管有多个slave,然而获取url的地方只有一个,那就是服务器master上的redis数据库。
并且,由于scarpy-redis自身的队列机制,slave获取链接不会相互冲突。这样各个slave在完成抓取任务之后,再把获取的结构汇总到服务器上(这时获取的数据不在是redis,而是mongodb、mysql)
posted on 2019-04-30 11:44 GuoZeping 阅读(1418) 评论(0) 编辑 收藏 举报