基于scrapy_redis部署scrapy分布式爬虫(详细步骤)

本文介绍如何使用Scrapy结合Redis实现分布式爬虫,包括配置步骤、远程连接、数据库设置及爬虫运行流程。通过修改配置文件、启动服务、设置远程连接,最终在命令行中触发爬虫,实现数据的高效抓取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 使用命令行工具下载工具包 scrapy_redis,在命令行敲下面代码并回车, 出现Success类字符表示下载成功
    在这里插入图片描述

  2. 使用pycharm 打开项目,找到settings文件,配置scrapy项目使用的
    调度器及过滤器! 这里数据存储到redis中可以不用存储,(看自己意愿)

在这里插入图片描述
在这里插入图片描述

  1. 修改spider爬虫文件, 这里的redis_key在后面执行爬虫命令时需要用到,要记住!from scrapy_redis.spiders import RedisSpider
    类需要继承自RedisSpider(记的继承!!!)
    把start_urls给注释掉,设置一个redis_key
    在这里插入图片描述

  2. 如果连接的有远程服务,例如MySQL,Redis等,需要将远程服务连接开启,
    保证其他主机能够成功连接上,下图是设置MySQL的方法,(作为主机时,从属机能连接到主机的MySQL)
    在这里插入图片描述
    !!!切记 这里设置完之后一定要刷新权限,否则还是会连接失败。
    在这里插入图片描述

  3. 配置远程连接的 MySQL 及 redis 地址
    (这里的MySQL数据库以及redis地址均为你的本机地址(redis默认端口为6379), 记得数据库密码正确!!!)如果不知道自己电脑的ip地址, 打开cmd命令行工具, 输入: ipconfig 即可查询
    在这里插入图片描述
    注:分布式用到的代码应该是统一套代码!(大概为以下4步)

    1. 先把项目配置为分布式,2. 把项目拷贝到多台服务器中, 3. 把所有爬虫项目都跑起来, 4. redis中lpush你的网址即可,。 效果: 所有爬虫都开始运行,并且数据都不一样。
      以上配置的爬虫项目,下面是在cmd命令行准备执行爬虫。设置redis!

redis的配置
redis属于非关系型数据库
1。修改配置文件(找到redis下的redis.windows.conf 双击打开,找到bind 并修改为0.0.0.0(这里注意有一个为举例的bind 看清楚不要修改错误))
在这里插入图片描述
在这里插入图片描述
当你的电脑作为主机时需要时刻开着redis服务,下面是打开redis服务的配置
(1) 打开cmd命令行 进入redis的安装目录,输入redis-server.exe redis.windows.conf 回车。
如果出现bind:no error 如下图2(在redis目录下输入redis-cli 回车 输入shutdown 回车 输入 exit退出)然后再重新输入输入redis-server.exe redis.windows.conf运行服务器
在这里插入图片描述在这里插入图片描述
(2)主机开启redis服务之后,不要断开,切记!!! 进入redis安装目录,输入:redis-cli.exe -h 主机(或者别人的)ip地址(-p 端口号6379(可以不用写))用来测试是否可以远程连接redis(如果回车之后没有出现如图效果,检查自己的bind是否修改以及redis服务是否被自己关闭)出现如下表示可以远程连接redis ,
在这里插入图片描述
(3) 查看连接从属机的个数, 主机输入 info 确认是否连接成功,(这里可以省略不写,直接ctrl+c)
然后: ctrl+c

(4) 如果redis想访问远程的redis服务器,需要接触保护模式。(上一步如果连接别人的IP地址不出现上图效果,先执行这一步,在执行上一步!!!)如下:
1)在远程服务器登陆redis-cli , 2)输入命令:config set protected-mode “no” 回车
在这里插入图片描述
(5)接下来就是准备运行爬虫项目, 现在爬虫项目中运行爬虫会开始等待。。。从属机也开始运行爬虫并等待。。。。
这个时候在cmd命令行中输入: redis-cli 回车, 输入lpush 会出现 : lpush key value [value …]
这里的key 为reidis_key, value为起始地址, 如果想要发多个地址, 每个起始地址间空格隔开, 然后回车,出现下图效果爬虫就开始自动运行了。。
在这里插入图片描述

从属机在执行主机分布的爬虫项目时需要连接到主机的数据库:打开MySQL数据库- 点击连接选择MySQL
在这里插入图片描述
注: 当你把代码发给从属机, 从属机运行代码时会等待直到你输完
第(5)步命令,从属机开始自动运行!!!

但是如果这个时候你发现从属机或者主机在没有你输入代码就直接开始运行了:
打开你的redis软件,点击你的本地连接右键,Reload更新一下,并且检查你的db0下面是否有请求request,
如果有的话直接删除,再重新运行爬虫就ok了!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

day>day>up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值