分布式爬虫是在多台机器上运通同一个爬虫在爬取

Scrapy-Redis分布式爬虫组件

Scrapy是一个框架,他本身是不支持分布式的。如果我们想要做分布式的爬虫,就需要借助一个组件叫做Scrapy-Redis,这个组件正是利用了Redis可以分布式的功能,集成到Scrapy框架中,使得爬虫可以进行分布式。可以充分的利用资源(多个ip、更多带宽、同步爬取)来提高爬虫的爬行效率。

分布式爬虫的优点:

可以充分利用多台机器的带宽。

可以充分利用多台机器的ip地址。

多台机器做,爬取效率更高。

分布式爬虫必须要解决的问题:

分布式爬虫是好几台机器在同时运行,如何保证不同的机器爬取页面的时候不会出现重复爬取的问题。

同样,分布式爬虫在不同的机器上运行,在把数据爬完后如何保证保存在同一个地方。

Scrapy-redis架构图

在原先的架构中加了redis,所有爬下来的数据全部交给redis

Redis服务器的主要工作:

管理爬虫的请求URL,进行去重工作

存储爬虫爬取下来的数据

爬虫端的主要工作:

从redis获取请求,然后把爬虫爬取下来的数据发送给redis