python爬虫有要求会redis么_Python爬虫之scrapy_redis概念作用和流程

本文介绍了分布式爬虫的概念,详细讲解了Scrapy.Redis组件的用途,它通过Redis实现断点续爬和分布式快速抓取。在Scrapy的基础上,Scrapy.Redis提供了更强大的功能,包括共享请求队列和去重机制。工作流程中,所有服务器共享Redis中的请求对象队列,并在存储请求前检查指纹以避免重复。Scrapy.Redis使得多台服务器能协同完成大规模数据的爬取任务。
摘要由CSDN通过智能技术生成

scrapy_redis概念作用和流程

学习目标

了解 分布式的概念及特点

了解 scarpy_redis的概念

了解 scrapy_redis的作用

了解 scrapy_redis的工作流程

在前面scrapy框架中我们已经能够使用框架实现爬虫爬取网站数据,如果当前网站的数据比较庞大, 我们就需要使用分布式来更快的爬取数据

1. 分布式是什么

简单的说 分布式就是不同的节点(服务器,ip不同)共同完成一个任务

2. scrapy_redis的概念

scrapy_redis是scrapy框架的基于redis的分布式组件

3. scrapy_redis的作用

Scrapy_redis在scrapy的基础上实现了更多,更强大的功能,具体体现在:

通过持久化请求队列和请求的指纹集合来实现:

断点续爬

分布式快速抓取

4. scrapy_redis的工作流程

4.1 回顾scrapy的流程

思考:那么,在这个基础上,如果需要实现分布式,即多台服务器同时完成一个爬虫,需要怎么做呢?

4.2 scrapy_redis的流程

在scrapy_redis中,所有的待抓取的request对象和去重的request对象指纹都存在所有的服务器公用的redis中

所有的服务器中的scrapy进程公用同一个redis中的request对象的队列

所有的request对象存入redis前,都会通过该redis中的request指纹集合进行判断,之前是否已经存入过

在默认情况下所有的数据会保存在redis中

具体流程如下:

小结

scarpy_redis的分布式工作原理

在scrapy_redis中,所有的待抓取的对象和去重的指纹都存在公用的redis中

所有的服务器公用同一redis中的请求对象的队列

所有的request对象存入redis前,都会通过请求对象的指纹进行判断,之前是否已经存入过

本文同步分享在 博客“不一样的花朵”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值