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

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

Overview

    • 前言
    • Enhance
    • Usage
      • 安装 enhance 后的代码
      • 在 scrapy 项目中使用
    • Reference - N/A


前言

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



Enhance

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

该图片外链地址备份: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 ↩︎

你可能感兴趣的:(爬虫,#,Scrapy)