scrapyd是一個用於部署和運行scrapy爬蟲的程序,它容許你經過JSON API來部署爬蟲項目和控制爬蟲運行
scrapyd是一個守護進程,監聽爬蟲的運行和請求,而後啓動進程來執行它們
安裝擴展
pip install scrapyd
pip install scrapyd-client
首先修改項目的 scrapy.cfg 文件
原始內容爲
[deploy]
#url = http://localhost:6800/
project = funsion
修改成
[deploy:funsion]
url = http://localhost:6800/
project = funsion
scrapyd部署的核心三步驟(藍色加粗內容)
執行 nohup scrapyd > /dev/null 2>&1 &
檢查配置, 列出當前可用的服務器 scrapyd-deploy -l
列出服務器上全部的項目, 須要確保服務器上的scrapyd命令正在執行,不然會報鏈接失敗.首次運行的話,能夠看到只有一個default項目
scrapyd-deploy -L funsion
在爬蟲項目根目錄下執行下面的命令, 其中target爲上一步配置的服務器名稱,project爲項目名稱,能夠根據實際狀況本身指定。
用法 scrapyd-deploy <target> -p <project>html
在項目根目
錄下輸入
scrapyd-deploy funsion -p funsion
獲得如下結果
Packing version 1496109534
Deploying to project "funsion" in http://localhost:6800/addversion.json
Server response (200):
{"status": "ok", "project": "funsion", "version": "1496109534", "spiders": 1, "node_name": "localhost.localdomain"}
部署操做會打包你的當前項目,若是當前項目下有setup.py文件,就會使用它,沒有的會就會自動建立一個。
若是後期項目須要打包的話,能夠根據本身的須要修改裏面的信息,也能夠暫時無論它。
從返回的結果裏面,咱們能夠看到部署的狀態,項目名稱,版本號和爬蟲個數,以及當前的主機名稱
檢查部署結果 scrapyd-deploy -L funsionnode
調度爬蟲,在項目根目錄下
curl http://localhost:6800/schedule.json -d project=funsion -d spider=funsion
若是配置了多個服務器的話,能夠將項目直接部署到多臺服務器
scrapyd-deploy -a -p <project>
補充說明:
curl http://localhost:6800/listprojects.json (列出項目)
curl http://localhost:6800/listspiders.json?project=funsion (列出爬蟲)
curl http://localhost:6800/listjobs.json?project=funsion (列出job)
curl http://localhost:6800/cancel.json -d project=myproject -d job=你的jobId (取消爬蟲)
而後訪問
http://localhost:6800/jobs 能夠查詢圖像化界面,成功後應該和下圖相似
更多參考