scrapy入門教程()部署爬蟲專案

cf313995發表於2018-09-27

scrapyd部署爬蟲專案

  1. scrapyd介紹
  2. scrapyd安裝
  3. scrapyd部署

1、scrapyd介紹

它就相當於是一個伺服器,用於將自己本地的爬蟲程式碼,打包上傳到伺服器上,讓這個爬蟲在伺服器上執行,可以實現對爬蟲的遠端管理(遠端啟動爬蟲,遠端關閉爬蟲,遠端檢視爬蟲的一些日誌等)。

2、scrapyd安裝
使用命令pip install scrapyd進行安裝即可。
在這裡插入圖片描述
此處安裝的版本是scrapyd==1.2.0
在這裡插入圖片描述

3、scrapyd部署
(1)、既然要部署,那麼就需要將本地的爬蟲專案打包上傳至scrapyd服務。那麼問題來了?怎麼將爬蟲專案上傳至scrapyd服務呢?這就需要用到scrapyd服務客戶端(類似於redis的redis-cli.exe,MongoDB資料庫的client)。使用scrapyd-client這個客戶端工具對scrapyd這個服務進行操作。
scrapyd-client下載地址:https://github.com/scrapy/scrapyd-client

(2)安裝scrapyd-client工具,使用命令pip install scrapyd-client進行安裝即可。
在這裡插入圖片描述
此處安裝的版本是scrapyd-client==1.1.0
在這裡插入圖片描述

①值得注意的一點是:服務端scrapyd和客戶端scrapyd-client安裝的版本一定要保持一致,不然會出現相容性的問題等等。
②我們上一步安裝的scrapyd(版本是1.2.0)和scrapyd-client(版本是1.1.0),版本不一致,為了保持一致,我們需要下載1.2.0版本的scrapyd-client客戶端工具。
③回到我們之前說的scrapyd-client的下載地址,點選進去檢視最新版的scrapyd-client客戶端工具。

在這裡插入圖片描述

④既然已經知道了最新版本的版本號,那麼我們只需指定版本安裝。即使用pip install scrapyd-client==1.2.0a1命令進行安裝即可。

在這裡插入圖片描述
在這裡插入圖片描述

此時的scrapyd版本(==1.2.0)與scrapyd-client(==1.2.0a1)的版本已經一致。

(3)上述scrapyd服務安裝好之後,就可以啟動scrapyd服務了。使用命令scrapyd即可。
在這裡插入圖片描述
此時,我們可以看到服務已經啟動,使用的是127.0.0.1,即本地的localhost,埠是6800.
在這裡插入圖片描述
開啟瀏覽器輸入地址:http://127.0.0.1:6800http://localhost:6800 即可訪問到如下內容:
在這裡插入圖片描述

(4)此時,我們就可以配置爬蟲專案,配置完成以後,通過addversion.json進行打包。
找到爬蟲專案下的scrapy.cfg檔案。
在這裡插入圖片描述
(5)修改scrapy.cfg檔案。
[deploy:bole] ----->給部署的爬蟲在scrapyd中設定名稱。
url= http://localhost:6800/ ------->去掉這一行的註釋,表示爬蟲專案要不熟的scrapyd服務的地址。
project=jobbolespider ------>表示我們的專案名稱。
在這裡插入圖片描述
(6)上面開啟的scrapyd服務視窗不要關閉,另起一個cmd視窗。用於使用scrapyd-client連線scrapyd服務。

①進入到專案根目錄,然後輸入scrapyd-deploy命令,檢視scrapyd-client服務是否可用。

在這裡插入圖片描述

②檢視當前可用於打包上傳的專案。命令scrapyd-deploy -l
在這裡插入圖片描述
③使用命令上傳。scrapyd-deploy bole -p jobbolespider
在這裡插入圖片描述

獲得一個響應結果:
{“node_name”: “9MEUNFQYK0DNVAM”, “status”: “ok”, “project”:“jobbolespider”, “version”: “1538049912”, “spiders”: 1}
其參數列示如下含義:
Status: “ok”/”error” 專案上傳狀態
Project: 上傳的專案名稱
Version: 專案的版本號,值是時間戳
Spiders: 專案Project包含的爬蟲個數

④通過呼叫api介面,檢視已經上傳至scrapyd服務的專案。
命令:curl http://localhost:6800/listprojects.json

值得注意的一點:curl是linux下的命令,想要在cmd中執行,如果你是anaconada的環境可以直接使用此命令。如果你用的是python3.x的環境,可以到這個網站上下載curl-7.33.0-win64-nossl.zip 直接使用。
網址:https://curl.haxx.se/download/archeology/
在這裡插入圖片描述
為了方便在命令視窗任意目錄下使用curl,最好配置一下環境變數:
a、增加CURL_HOME環境變數:如D:\curl-7.3.0\curl (值是對應curl.exe所在的目錄)
b、在PATH環境變數里加上%CURL_HOME%;

此時,在執行命令:curl http://localhost:6800/listprojects.json 即可檢視已經上傳至scrapyd服務的專案。
Projects: [] 所有已經上傳的爬蟲專案,都會顯示在這個列表中。
在這裡插入圖片描述

值得注意的一點是:如果專案上傳失敗,需要先將爬蟲專案中打包生成的檔案刪除(build、project.egg-info、setup.py),然後再重新打包上傳。

⑤通過呼叫api介面,檢視某一個專案中的所有爬蟲名稱;
命令:curl http://localhost:6800/listspiders.json?project=jobbolespider
在這裡插入圖片描述
⑥通過呼叫api介面,啟動爬蟲。
命令:curl http://localhost:6800/schedule.json -d project=爬蟲專案名稱 -d spider=專案中某一個爬蟲名稱
在這裡插入圖片描述

Jobid: 是根據專案(jobbolespider)和爬蟲(bole)生成的一個id,將來用於取消爬蟲任務。

此時在瀏覽器進行檢視當前執行的專案。
在這裡插入圖片描述
⑦通過呼叫api介面,取消爬蟲。
命令:curl http://localhost:6800/cancel.json -d project=爬蟲專案名稱 -d job=jobid(爬蟲啟動的額時候分配的)
⑧其他命令就不一一嘗試了。下文列出。

檢查服務的負載狀態。
命令:curl http://localhost:6800/daemonstatus.json
獲取專案列表
命令:curl http://127.0.0.1:6800/listprojects.json
獲取某專案下的爬蟲列表
命令:curl http://127.0.0.1:6800/listspiders.json?project=myproject
獲取某爬蟲的執行狀態
命令:curl http://127.0.0.1:6800/listjobs.json?project=myproject
刪除某一專案,包括該專案下的所有爬蟲
命令:curl http://127.0.0.1:6800/delproject.json -d project = myproject
刪除專案版本。如果給定專案沒有更多可用版本,則該專案也將被刪除。
命令:curl http://localhost:6800/delversion.json -d project=myproject -d version=r99

相關文章