scrapy_redis概念作用和流程

news2024/12/27 1:48:49

scrapy_redis概念作用和流程

学习目标
  1. 了解 分布式的概念及特点
  2. 了解 scarpy_redis的概念
  3. 了解 scrapy_redis的作用
  4. 了解 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前,都会通过请求对象的指纹进行判断,之前是否已经存入过

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192883.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

制药行业中各种化合物的净化,大孔吸附净化氨基酸

基于吸附功能的聚苯乙烯特种树脂 Tulsimer ADS-600 是一款没有离子官能基的,由交联聚苯乙烯合成的功能强大的吸附型树脂。 Tulsimer ADS-600 主要应用于水溶液中吸附酚及其化合物,氯代烃等含氯物质,表面活性剂,氨基酸&#…

【C++修炼之路】C++入门(中)—— 函数重载和引用

👑作者主页:安 度 因 🏠学习社区:StackFrame 📖专栏链接:C修炼之路 文章目录一、前言二、函数重载1、重载规则2、函数名修饰规则三、引用1、区分2、本质3、特性4、应用a、做参数b、做返回值5、效率比较6、常…

windows安装cnpm

文章目录1 cnpm简介2 cnpm 安装步骤1 cnpm简介 npm下载速度比较慢,可以通过cnpm下载node包 2 cnpm 安装步骤 找到nodejs的安装路径: 使用nvm安装和管理node 直接安装node的方式 直接通过安装包安装node的方式,node会被安装在某个实际目录下…

docker pull nginx

取最新版的 Nginx 镜像 docker pull nginx:latest 查看本地镜像 使用以下命令来查看是否已安装了 nginx: $ docker images 运行容器 安装完成后,我们可以使用以下命令来运行 nginx 容器: $ docker run --name nginx-door -p 8080:80 -…

VS code的使用指南

VS code的使用指南 VS code的安装与下载 VS Code的安装地址的 在下面选择版本的位置进行安装(一般选择Stable进行安装,这个软件是跨系统的安装与设置相关的内容信息)。 插件安装 直接点击这个位置,选择自己需要的相应的插件 这些都是常用的…

软件工程(四)——结构化设计、模块独立性、面向对象设计、软件测试与维护

目录 一、界面设计 二、结构化设计 1.概要设计 2模块独立性 三、面向对象设计 1.面向对象设计的五大基本原则(SOLID)和其他5个原则 2.设计模式 三、软件测试与维护 1.白盒测试和黑盒测试 2.测试的阶段 3.软件维护阶段 四、系统演化策略 一、界面设计 人机界面设计&…

50条必背JAVA知识点(一)

1.编写:编写的Java代码保存在以“.java”结尾的源文件中。 2.编译:使用javac.exe命令编译java源文件,生成字节码文件。格式:javac 源文件名.java 3.运行:使用java.exe命令解释运行字节码文件。格式:java …

深入浅出PyTorch-PyTorch的主要组成模块

目录1.基本配置2.数据读入3.模型构建3.1神经网络的构造3.2神经网络中常见的层常见网络层的构造常见的网络层3.3模型示例卷积神经网络(LeNet)深度卷积神经网络(AlexNet)4.模型初始化5.损失函数6.训练和评估深度学习和机器学习在流程…

python小游戏——塔防小游戏代码开源

♥️作者:小刘在这里 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿所有的美好&#…

TCP/IP网络编程——优雅的断开套接字的连接

完整版文章请参考: TCP/IP网络编程完整版文章 文章目录第 7 章 优雅的断开套接字的连接7.1 基于 TCP 的半关闭7.1.1 单方面断开连接带来的问题7.1.2 套接字和流(Stream)7.1.3 针对优雅断开的 shutdown 函数7.1.4 为何要半关闭7.1.5 基于半关闭…

AST入门与反混淆初体验

文章目录1.什么是AST?2. AST反混淆的目的3. babel库安装4. 直观的理解AST5.如何用AST解混淆?思路是什么?6. babel库的学习7. AST反混淆初体验-常量折叠1.什么是AST? ​ 在计算机科学中,抽象语法树(Abstrac…

【服务器数据恢复】raid5中3块磁盘先后掉线的数据恢复案例

服务器数据恢复环境&故障: 某单位同友存储设备,该存储有大于5台的虚拟机,其中有3台linux系统虚拟机存储重要数据。存储设备中组建的raid5由于未知原因崩溃导致存储无法启动。 存储结构: 服务器数据恢复过程: 1、对…

C语言进阶——字符函数和字符串函数(上)

目录 一、前言 二、正文 1.求字符串长度 ♥strlen 2.长度不受限制的字符串函数 ♥strcpy ♥strcat ♥strcmp 三、结语 一、前言 一日不见,如隔三秋;几日不见,甚是想念。猜想小伙伴们在平常进行有关字符的练习时遇到有关字符的操作却无从下手…

GEC6818 移植 rtl8723bu wifi驱动

文章目录1. 配置内核2、RTL8723BU 模块驱动编译2.1 下载解压2.2 配置编译3. openssl 移植3.1 下载解压3.2 配置3.3 编译安装4. libnl 移植4.1 下载解压4.2 进入源码目录并配置4.3 编译安装5. wpa_supplicant 移植5.1 解压源码5.2 配置5.3 make编译6. 启动wifi网卡6.1 配置WiFi连…

Python调用Go语言编译的动态链接库(CGO)【待续】

CGO C 语言作为一个通用语言,很多库会选择提供一个 C 兼容的 API,然后用其他不同的编程语言实现。Go 语言通过自带的一个叫 CGO 的工具来支持 C 语言函数调用,同时我们可以用 Go 语言导出 C 动态库接口给其它语言使用。 hello world程序 p…

【定时同步系列11】各种开环定时同步算法与MCRB性能对比的MATLAB仿真

重要声明:为防止爬虫和盗版贩卖,文章中的核心代码和数据集可凭【CSDN订阅截图或公z号付费截图】私信免费领取,一律不认其他渠道付费截图! 引言 开环定时同步包括内插控制、定时误差估计等环节,其中内插控制在之前的博客里有详细的描述,请翻阅之前的博客! 【定时同步系…

Python编程技巧分享:6 个必知必会高效 Python

编写更好的Python 代码需要遵循Python 社区制定的最佳实践和指南。遵守这些标准可以使您的代码更具可读性、可维护性和效率。 本文将展示一些技巧,帮助您编写更好的 Python 代码 遵循 PEP 8 风格指南 PEP 8 是 Python 代码的官方风格指南。它提供了一组用于格式化…

Maven parent多项目打包找不到reversion变量问题

项目结构:packagetest:顶级父级c1:子项目(web项目)c2:子项目(jar包)c1依赖c2的jar包。在父级maven中deploy成功,package也成功,私服上有都有包了。但是在c1上package的时候&#xff…

二十、操纵管道

本章将讨论如何在应用程序中使用多种方式操作管道。本章的部分内容都是很底层的,所以在开始阅读之前,请确保你需要一些编程知识,并对GStreamer有很好的理解。 这里将讨论的主题包括如何从应用程序向管道中插入数据,如何从管道中读…

电商项目之Mailgun邮件退信率升高

文章目录1 项目背景2 前言3 采取的措施4 排查的思路5 原因6 技术实现方案1 项目背景 运维人员进行日常巡检发现Mailgun邮件代发渠道的退信率不寻常,在某个时间段会飙高。这会有2个影响: (1)针对运维的角度,Mailgun官方…