1. 程式人生 > >scrapy部署分散式爬蟲

scrapy部署分散式爬蟲

首先需要下載redis資料庫和Redis資料可的視覺化工具,將redis資料庫設定為遠端連線

  1. 開啟該檔案,修改裡面的配置資訊 在這裡插入圖片描述
  2. 修改該值為主機IP地址 主機IP地址 關閉保護模式(將yes改為no) 保護模式
  3. 如果電腦中服務已經存在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
  4. 服務問題解決後,接下來需要執行指令 測試redis服務
  5. 接下來咱們配置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中測試遠端連線是否生效(下圖)
    測試遠端連線 測試成功之後,點選確定,建立MySQL連線
  6. 修改爬蟲檔案 由於分散式爬蟲需要部署在多臺電腦上,所以起始的url就不能解除安裝某一臺電腦的start_urls中,需要指定一個redis_key這個欄位用來在redis中寫入爬蟲檔案所需要的第一個url redis_key這個欄位命名規則 redis_key = "任意的字串:start_urls"修改爬蟲檔案
  7. 修改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安裝目錄 Redis執行 接下里進入到cmd命令中輸入 redis-cli.exe -h 主機IP地址 在這裡插入圖片描述 然後輸入 lpush key value [value…] 使用redis_key的值替換key ,要爬取的第一個url替換value 然後回車,程式已經跑起來了!!! 在這裡插入圖片描述 存入的部分資料 在這裡插入圖片描述