【分佈式爬蟲】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 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章