scrapy部署分散式爬蟲
阿新 • • 發佈:2018-12-12
首先需要下載redis資料庫和Redis資料可的視覺化工具,將redis資料庫設定為遠端連線
- 開啟該檔案,修改裡面的配置資訊
- 修改該值為主機IP地址 關閉保護模式(將yes改為no)
- 如果電腦中服務已經存在redis服務,需要將redis服務解除安裝之後,重新啟動,並設定為自啟。 相關的redis命令如下: a> 安裝服務 redis-server --service-install redis.windows-service.conf --loglevel verbose b> 啟用服務 redis-server --service-start c> 停止使用redis服務 redis-server --service-stop d> 解除安裝redis相關服務 redis-server --service-uninstall
- 服務問題解決後,接下來需要執行指令
- 接下來咱們配置MySQL資料庫,首先需要安裝MySQL相關程式以及服務,並且建立root使用者。由於root使用者只能連線localhost,所以需要通過root使用者建立一個具有一定許可權的新使用者,用來建立遠端的資料庫連線。
建立新使用者的相關指令以及操作:
a> 建立新使用者
create user “資料庫使用者名稱稱”@"%" identified by “使用者密碼”;(一定不要忘記語句末尾的英文分號)
b> 給新使用者授予許可權
GRANT ALL PRIVILEGES ON . TO ‘使用者名稱’@‘host名稱(即主機IP地址)’;
c> 重新整理許可權
FLUSH PRIVILEGES;
d> 接下來進入到windows服務中重啟MySQL服務即可
可以進入到Navicat中測試遠端連線是否生效(下圖)
- 修改爬蟲檔案
由於分散式爬蟲需要部署在多臺電腦上,所以起始的url就不能解除安裝某一臺電腦的start_urls中,需要指定一個redis_key這個欄位用來在redis中寫入爬蟲檔案所需要的第一個url
redis_key這個欄位命名規則
redis_key = "任意的字串:start_urls"
- 修改settinfs檔案 更換scrapy內建的排程器檔案,使用scrapy-redis包中的scheduler排程器檔案
SCHEDULER = "scrapy_redis.scheduler.Scheduler"
更換scrapy內建的去重檔案,使用scrapy-redis包中的dupefilter檔案
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
配置遠端主機的連線地址
# 配置REDIS_URL = '(redis://redis資料庫使用者(預設是root):redis資料庫連線密碼(預設為空))@(redis的連線地址):(redis的埠號)'
REDIS_URL = 'redis://root:@遠端主機IP地址:6379'
如果為非同步儲存資料庫,如下圖 如果為同步儲存,如下圖
當所有配置完成之後,拷貝檔案到其它電腦上,然後點選main函式執行,此時程式所有電腦程式應處於等待狀態(等待redis接收第一個url) 接下來進入到redis安裝目錄 接下里進入到cmd命令中輸入 redis-cli.exe -h 主機IP地址 然後輸入 lpush key value [value…] 使用redis_key的值替換key ,要爬取的第一個url替換value 然後回車,程式已經跑起來了!!! 存入的部分資料