Python在Windows系統下基於Scrapyd部署爬蟲專案(本地部署)

mankvis發表於2018-03-22

部署前準備

1.準備一個支援scrapy專案的虛擬環境,確保能正常執行scrapy爬蟲,已經下載需要的各種包

2.進入虛擬環境後安裝scrapyd,scrapyd-client這兩個包,具體命令如下



安裝scrapyd,scrapyd-client包後,在虛擬環境下執行scrpayd命令

開啟瀏覽器輸入http://localhost:6800,如果顯示以下頁面則安裝成功

進行部署

3.在非C碟符下建立一個資料夾,名字為scrapyproject用來存放專案的子資料夾,建立後進入該資料夾shilt+滑鼠右鍵選擇開啟命令列工具,輸入scrapyd執行(前提必須進入虛擬環境才能執行),此時scrapyproject資料夾裡會自動建立一個dbs資料夾,用來存放爬蟲專案的資料檔案,


因為安裝了 scrapyd-client包,所以在虛擬環境中的Scripts資料夾中會有一個 scrapyd-deploy檔案,因為此檔案只能在linux中開啟,所以要自己寫一個windoes的bat檔案

scrapyd-deploy檔案中寫入以下程式碼

@echo off
"C:\Users\qianzhen\Envs\scrapySpider\Scripts\python.exe" "C:\Users\qianzhen\Envs\scrapySpider\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9


標出的兩個路徑要設定為當前虛擬環境的路徑
4.修改scrapy爬蟲專案的scrapy.cfg檔案

5.在虛擬環境的情況下在命令列中進入爬蟲專案資料夾

6.執行一下命令
1>scrapyd-deploy

2>scrapyd-deploy -l

3>scrapy list

7.執行打包上傳命令
scrapyd-deploy 專案名稱(在scrapy.cfg中設定的) -p 爬蟲專案名

8.繼續開啟http://localhost:6800,看看爬蟲有沒有部署成功

9.執行我們的爬蟲

需要下載curl工具:

連結:https://pan.baidu.com/s/18B0ODhyhvmdVpQJlraZowQ 密碼:pkwy

執行命令:

curl http://localhost:6800/schedule.json -d project=專案名稱 -d spider=爬蟲名稱


返回http://localhost:6800,點選jobs檢視

10.停止爬蟲
curl http://localhost:6800/cancel.json -d project=scrapy專案名稱 -d job=執行ID

PS:其他一些命令

刪除scrapy專案
curl http://localhost:6800/delproject.json -d project=scrapy專案名稱(要先停止)

檢視有多少個scrapy專案在api中

curl http://localhost:6800/listprojects.json

1、獲取狀態
http://127.0.0.1:6800/daemonstatus.json
2、獲取專案列表
http://127.0.0.1:6800/listprojects.json
3、獲取專案下已釋出的爬蟲列表
http://127.0.0.1:6800/listspiders.json?project=myproject
4、獲取專案下已釋出的爬蟲版本列表
http://127.0.0.1:6800/listversions.json?project=myproject
5、獲取爬蟲執行狀態
http://127.0.0.1:6800/listjobs.json?project=myproject
 6、啟動伺服器上某一爬蟲(必須是已釋出到伺服器的爬蟲)
http://127.0.0.1:6800/schedule.json (post方式,data={"project":myproject,"spider":myspider})
7、刪除某一版本爬蟲
http://127.0.0.1:6800/delversion.json 
(post方式,data={"project":myproject,"version":myversion})
8、刪除某一工程,包括該工程下的各版本爬蟲

http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})

scrapyd部署爬蟲的優勢:
1、方便監控爬蟲的實時執行狀態,也可以通過介面呼叫開發自己的監控爬蟲的頁面
2、方便統一管理,可以同時啟動或關閉多個爬蟲
3、擁有版本控制,如果爬蟲出現了不可逆的錯誤,可以通過介面恢復到之前的任意版本

相關文章