上一篇文章: Python3網絡爬蟲實戰---十二、部署相關庫的安裝:Docker、Scrapyd
下一篇文章: Python3網絡爬蟲實戰---1四、部署相關庫的安裝:Scrapyrt、Gerapy
在將 Scrapy 代碼部署到遠程 Scrapyd 的時候,其第一步就是要將代碼打包爲 Egg 文件,其次須要將 Egg 文件上傳到遠程主機,這個過程若是咱們用程序來實現是徹底能夠的,可是咱們並不須要作這些工做,由於 ScrapydClient 已經爲咱們實現了這些功能。
下面咱們就來過一下 ScrapydClient 的安裝過程。html
推薦使用 Pip 安裝,命令以下:python
pip3 install scrapyd-client
安裝成功後會有一個可用命令,叫作 scrapyd-deploy,即部署命令。
咱們能夠輸入以下測試命令測試 ScrapydClient 是否安裝成功:git
scrapyd-deploy -h
若是出現如圖 1-87 相似輸出則證實 ScrapydClient 已經成功安裝:
github
圖 1-87 運行結果
在後文咱們會詳細瞭解它的用法。json
安裝好了 Scrapyd 以後,咱們能夠直接請求它提供的 API 便可獲取當前主機的 Scrapy 任務運行情況。segmentfault
如某臺主機的 IP 爲 192.168.1.1,則能夠直接運行以下命令獲取當前主機的全部 Scrapy 項目:api
curl http://localhost:6800/listprojects.json
運行結果:網絡
{"status": "ok", "projects": ["myproject", "otherproject"]}
返回結果是 Json 字符串,經過解析這個字符串咱們即可以獲得當前主機全部項目。curl
可是用這種方式來獲取任務狀態仍是有點繁瑣,因此 ScrapydAPI 就爲它作了一層封裝,下面咱們來看下它的安裝方式。scrapy
推薦使用 Pip 安裝,命令以下:
pip install python-scrapyd-api
安裝完成以後即可以使用 Python 來獲取主機狀態了,因此如上的操做即可以用 Python 代碼實現:
from scrapyd_api import ScrapydAPI scrapyd = ScrapydAPI('http://localhost:6800') print(scrapyd.list_projects())
運行結果:
["myproject", "otherproject"]
這樣咱們即可以用 Python 直接來獲取各個主機上 Scrapy 任務的運行狀態了。