大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。

人生苦短 我用Python

扩大
缩小

分布式爬虫系统

分布式爬虫系统

一、架构

二、原理

   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  阅读(1406)  评论(0编辑  收藏  举报

导航