基于Scrapy_redis部署scrapy分布式爬虫

本文详细介绍如何使用Scrapy_redis部署分布式爬虫项目,包括配置调度器、过滤器、远程数据库连接,以及解决防火墙和保护模式问题。

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

基于Scrapy_redis部署scrapy分布式爬虫

1.使用命令行工具下载工具包 scrapy_redis(若是虚拟环境可下载在虚拟环境中)

2.准备一个写好的没有错误的爬虫项目(这里以51job为例)

3.使用pycharm打开项目,找到settings文件,配置scrapy项目使用的调度器及过滤器

4.修改spider爬虫文件

 5.如果连接的有远程服务,例如MySQL,Redis等,需要将远程服务连接开启,保证在其他主机上能够成功连接

将root主机的host改成 % 即可在远程使用该账户访问MySQL,更改完成后保存

保存完成后刷新权限

 6.配置远程连接的MySQL及redis地址

打开cmd命令行进入redis安装目录启用redis服务

如果主机防火墙开启,则需要将其关闭

 

由于电脑基本上都默认设置的有防火墙,如果redis想访问远程的redis服务器,需要解除保护模式
做法
1) 在远程服务器登录redis-cli
2) 输入命令
config set protected-mode "no"  回车

 7.连接成功后可运行爬虫文件

 8.打开redis查看结果

 

 9.打开数据库查看结果

到此51job的分布式爬虫项目已部署完毕,简单总结一下redis部署主从关系

Redis属于非关系型数据库

修改配置文件(找到redis下的redis.windows.conf)
     1. 修改主的配置文件  搜索bind,将后面的ip改成当前服务器ip
        2. 修改从的配置文件  搜索slaveof,将该代码解注释,然后添加 ip和端口号。注意:端口号必须写
2) 重启主和从的redis服务  

进入文件夹路径下:shift 右键 在此处打开命令窗口

在cmd终端输入     redis-server redis.windows.conf

如果输入报错:bind:no error   

重开一个终端输入redis-cli 回车 输入shutdown 回车 输入 exit退出

然后再重新输入输入redis-server.exe redis.windows.conf运行服务器    

通过redis-cli重新链接

主开启redis服务器, 通过redis-cli -h 主的ip -p端口号6379
4) 从开启redis服务器,通过redis-cli链接

主设置set name zhangsan ,从能获取到 get name 返回zhangsan 说明链接成功

查看从的个数,主输入info,确认是否连接成功

如果redis想访问远程的redis服务器,需要解除保护模式

做法

1) 在远程服务器登录redis-cli

2) 输入命令

config set protected-mode "no"  回车

附:

分布式用到的代码应该是同一套代码
1) 先把项目配置为分布式
2) 把项目拷贝到多台服务器中
3) 把所有爬虫项目都跑起来
4) 在redis-cli中lpush你的网址即可
5) 效果:所有爬虫都开始运行,并且数据还都不一样

 

 

 

Scrapy Redis是一个用于分布式爬取网页的Python框架。它是基于Scrapy框架的扩展,采用Redis作为分布式队列,可以在多个爬虫节点之间共享任务和数据。通过引入scrapy_redis.spider文件中的RedisSpider类,可以将原来继承的scrapy.Spider类改为RedisSpider类,从而实现对分布式爬虫的支持。 在使用分布式爬虫的过程中,首先需要将项目配置为分布式将项目拷贝到多台服务器中。然后启动所有的爬虫项目,这样每个爬虫节点都可以独立运行。接下来,在主redis-cli中使用lpush命令将需要爬取的网址推送到Redis队列中。这样,所有的爬虫节点都会开始运行,同时获取不同的任务和数据,实现分布式爬取的效果。 要使用Scrapy Redis进行分布式爬取,首先需要安装scrapy_redis包。可以通过在CMD工具中执行命令"pip install scrapy_redis"来进行安装。安装完成后,就可以在项目中使用scrapy_redis进行分布式爬取了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Scrapy基于scrapy_redis实现分布式爬虫部署](https://blog.youkuaiyun.com/baoshuowl/article/details/79701303)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值