手把手教你实现Scrapy-Redis分布式爬虫:从配置到最终运行的实战指南

news/2024/11/10 14:40:50/文章来源:https://www.cnblogs.com/CodeRealm/p/18355236

1.scrapy-redis的环境准备

pip install scrapy-redis

安装完毕之后确保其可以正常导入使用即可。

2. 实现

接下来我们只需要简单的几步操作就可以实现分布式爬虫的配置了。

2.1修改 Scheduler

在前面的课时中我们讲解了 Scheduler 的概念,它是用来处理 Request、Item 等对象的调度逻辑的,默认情况下,Request 的队列是在/内存/中的,为了实现分布式,我们需要将队列迁移到 Redis 中,这时候我们就需要修改 Scheduler,修改非常简单,只需要在 settings.py 里面添加如下代码即可:

SCHEDULER = "scrapy_redis.scheduler.Scheduler"

这里我们将 Scheduler 的类修改为 Scrapy-Redis 提供的 Scheduler 类,这样在我们运行爬虫时,Request 队列就会出现在 Redis 中了。

2.2修改 Redis 连接信息

另外我们还需要修改下 Redis 的连接信息,这样 Scrapy 才能成功连接到 Redis 数据库,修改格式如下:

REDIS_URL = 'redis://[user:pass]@hostname:9001'

在这里我们需要根据如上的格式来修改,由于我的 Redis 是在本地运行的,所以在这里就不需要填写用户名密码了,直接设置为如下内容即可:

REDIS_URL = 'redis://localhost:6379'

2.3修改去重类

既然 Request 队列迁移到了 Redis,那么相应的去重操作我们也需要迁移到 Redis 里面,前一节课我们讲解了 Dupefilter 的原理,这里我们就修改下去重类来实现基于 Redis 的去重:

DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"

2.4配置持久化

一般来说开启了 Redis 分布式队列之后,我们不希望爬虫在关闭时将整个队列和去重信息全部删除,因为很有可能在某个情况下我们会手动关闭爬虫或者爬虫遭遇意外终止,为了解决这个问题,我们可以配置 Redis 队列的持久化,修改如下:

SCHEDULER_PERSIST = True

好了,到此为止我们就完成分布式爬虫的配置了。

3.运行

上面我们完成的实际上并不是真正意义的分布式爬虫,因为 Redis 队列我们使用的是本地的 Redis,所以多个爬虫需要运行在本地才可以,如果想实现真正意义的分布式爬虫,可以使用远程 Redis,这样我们就能在多台主机运行爬虫连接此 Redis 从而实现真正意义上的分布式爬虫了。

更多精致内容

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

建站过程中很容易让人忽视的三大细节

一个网站的建设是需要专业性、技术性很强的人才能够做的,并不是敲打一些代码、上传一些图片就可以的了,如果在建设网站的时候设计不当,很有可能不会让搜索引擎收录,所以用户也就不可能通过检索来访问网站了。在网站建设中大家都很忽视一些关键的细节,比如:关键词的分布,…

帝国CMS列表页面调用关键字TAG的方法

$nsmalltext=$r[smalltext]; $ntext=strip_tags($nsmalltext);//去除内容简介里的HTML标签 $newtext=esub($ntext,100,...) ;//限制100字 $keyboard=$r[keyboard]; $r_tag=explode(",",$keyboard); $tempid=1;//这里是搜索模板ID for($i=0;$i<count($r_tag);$i++)…

帝国cms数据表删除之后怎么找回来

如果不小心删除了帝国cms数据表,可以尝试以下步骤进行恢复: 1. 从备份中恢复 如果已对数据库进行了备份,则可以从备份中还原数据。确定备份的时间点是否包含要恢复的数据。根据备份类型选择合适的恢复方法,例如使用phpmyadmin、mysqldump或innodb recovery tool。2. 使用“…

暑假集训CSP提高模拟19

暑假集训CSP提高模拟19\(T1\) P173. 数字三角形 \(20pts\)原题: CF1517C Fillomino 2 部分分\(20pts\) :剪枝搜索。点击查看代码 int p[510],c[510],ans[510][510],dx[5]={0,1,-1,0,0},dy[5]={0,0,0,-1,1}; void dfs(int pos,int x,int y,int num,int n) {if(pos==n+1){for(i…

【算法学习】排序算法汇总

冒泡排序 1、冒泡排序简介冒泡排序的英文Bubble Sort,是一种最基础的交换排序。之所以叫做冒泡排序,因为每一个元素都可以像小气泡一样,根据自身大小一点一点向数组的一侧移动冒泡排序的原理:冒泡轮数:每一轮只能将该轮中最大的数排至最后面。即第一轮只能确定将末位上的数…

安装local-path-provisioner基于HostPath动态制备PV

目录一、背景二、安装local-path-provisioner1、地址2、更改 local-path-provisioner 使用的默认存储路径3、创建文件并提权4、创建 NameSpace5、应用 local-path-storage6、验证相关资源状态三、设置 local-path 为default SC四、使用 StorageClass 动态制备 PV1、创建PVC2、创…

CogVideoX环境搭建推理测试

​引子 智谱AI版Sora开源,首个可商用,18G显存即可运行。前文写了Open-Sora1.2的博文,感兴趣的童鞋请移步(Open-Sora1.2环境搭建&推理测试_open sora 1.2-CSDN博客)。对于这种占用资源少,且效果不错的多模态模型那么肯定不容错过。OK,我们开始吧。 一、模型介绍 CogV…

【Linux学习】Ubuntu配置

1、如何在Ubuntu18.04上面安装VMware-tools实现屏幕适配,以及文件拖拽、复制、粘贴功能 先设置以下:此处一定要设置路径保证客户机隔离选项两个勾选将主机桌面文件夹设置为共享 点击VMware顶部菜单,“虚拟机” > “安装VMware Tools”,桌面会出现光盘图标“VMware Tools…

使用 OpenSSH 登录远程服务器

打开开始菜单进入设置界面,搜索“可选功能”,点击“添加可选功能”,查找“OpenSSH” 找到这两个安装 安装成功后以管理员方式打开Windows PowerShell 输入命令 Start-Service sshd ssh user@example.com user 是远程服务器的用户名,example.com 是远程服务器的域名或 IP …

【算法学习】算法时间复杂度

时间复杂度的计算 时间复杂度简单计算(一层、两层、多层循环) 相当于轨迹追踪法:设执行次数为k,按照循环条件阿布算法课学习链接01 区别算法(Algorithm)和程序(Program)算法程序设计阶段 实施阶段相关领域知识 程序员任何语言、伪代码 编程语言独立于硬件/操作系统 与硬件/…

《数据资产管理核心技术与应用》读书笔记-第三章:数据血缘

数据资产管理核心技术与应用《数据资产管理核心技术与应用》是清华大学出版社出版的一本图书,全书共分10章,第1章主要让读者认识数据资产,了解数据资产相关的基础概念,以及数据资产的发展情况。第2~8章主要介绍大数据时代数据资产管理所涉及的核心技术,内容包括元数据的采…