【分布式爬虫】scrapy_redis enhance - 支持配置使用redis-server上不同的数据库

Desc: scrapy_redis1 默认(仓库)只支持 redis server 上的 db=0 数据库,对此做 enhance


前言

scrapy_redis1 默认(仓库)只支持 redis server 上的 db=0 数据库2,对此做 enhance。



Enhance

n/a

该图片外链地址备份:https://i.loli.net/2020/04/30/VmwBgLz1cuEqlxQ.png

如图所示,只需要修改一行代码就可以使 redis_server 支持在项目的配置中配置使用不同的数据库。

在我提交 pull request3 之后注意到这个仓库已经数年没有更新代码了。
所以这个 pull request 很可能短期不会被 merge 进去。

这是我 fork 修改的仓库地址:https://github.com/RDpWTeHM/scrapy-redis。
如果哪一天我闲 clone 下来 install 麻烦的话,可能会在我自己的 fork 仓库上 release 一版,但是目前似乎没有这个必要。


Usage

安装 enhance 后的代码

首先需要将 scrapy_redis 的代码 git clone4 下来。

  1. 可以从原始仓库 🔗 clone 下来,然后像本文上一节一样修改一行代码。
  2. 也可以从我 fork 修改的仓库上 clone 下来,这样就不需要修改代码直接安装即可。

在上面所述的代码准备好了之后,就可以安装 scrapy_redis 了。
如果之前已经通过 pip install scrapy_redis 之类的方式安装过了的话,则安装之前需要卸载: pip uninstall scrapy_redis
然后安装:

$ cd <path>/<to>/<your>/<git clone dir>/scrapy-redis/
$ python3 setup.py sdist  # optional step
$ python3 setup.py install

注意: 上文默认你知道如何适当调整命令使适合安装到 LINUX 系统下的“全局环境”或“用户本地环境”或“python 虚拟环境(全局或本地)”。

在 scrapy 项目中使用

默认还是使用 db=0 的 redis server 数据库。对此不需要调整任何原本的 scrapy 项目代码。

如果想要使用 redis server 上其它的数据库2,比如 db=7;那么只要在项目的 settings.py 文件中增加一行 REDIS_DB=7 即可。

如果使用 REDIS_URL 的方式的话,那么无需更新 scrapy-redis 代码就可以使用不同的数据库。 not introduce the way.

即,原本的 settings.py 如:

REDIS_HOST = "93.214.102.22"
REDIS_PORT = 6379
# REDIS_PARAMS = 

修改后:

REDIS_HOST = "93.214.102.22"
REDIS_PORT = 6379
REDIS_DB = 7
# REDIS_PARAMS = 

至此,就完成了使用 redis server 的 db 7 数据库。



Reference - N/A

n/a


  1. 🔗 : https://github.com/rmax/scrapy-redis ↩︎ ↩︎

  2. redis server 默认有 16 个数据库。具体请参见 redis 官方文段等。 ↩︎ ↩︎

  3. pull #166 ↩︎

  4. git clone - N/A ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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.csdn.net/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、付费专栏及课程。

余额充值