Python3網絡爬蟲實戰---1三、部署相關庫ScrapydClient、ScrapydAPI

上一篇文章: Python3網絡爬蟲實戰---十二、部署相關庫的安裝:Docker、Scrapyd
下一篇文章: Python3網絡爬蟲實戰---1四、部署相關庫的安裝:Scrapyrt、Gerapy

ScrapydClient的安裝

在將 Scrapy 代碼部署到遠程 Scrapyd 的時候,其第一步就是要將代碼打包爲 Egg 文件,其次須要將 Egg 文件上傳到遠程主機,這個過程若是咱們用程序來實現是徹底能夠的,可是咱們並不須要作這些工做,由於 ScrapydClient 已經爲咱們實現了這些功能。
下面咱們就來過一下 ScrapydClient 的安裝過程。html

1. 相關連接

2. Pip安裝

推薦使用 Pip 安裝,命令以下:python

pip3 install scrapyd-client

3. 驗證安裝

安裝成功後會有一個可用命令,叫作 scrapyd-deploy,即部署命令。
咱們能夠輸入以下測試命令測試 ScrapydClient 是否安裝成功:git

scrapyd-deploy -h

若是出現如圖 1-87 相似輸出則證實 ScrapydClient 已經成功安裝:
clipboard.pnggithub

圖 1-87 運行結果
在後文咱們會詳細瞭解它的用法。json

ScrapydAPI的安裝

安裝好了 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

1. 相關連接

2. Pip安裝

推薦使用 Pip 安裝,命令以下:

pip install python-scrapyd-api

3. 驗證安裝

安裝完成以後即可以使用 Python 來獲取主機狀態了,因此如上的操做即可以用 Python 代碼實現:

from scrapyd_api import ScrapydAPI
scrapyd = ScrapydAPI('http://localhost:6800')
print(scrapyd.list_projects())

運行結果:

["myproject", "otherproject"]

這樣咱們即可以用 Python 直接來獲取各個主機上 Scrapy 任務的運行狀態了。

相關文章
相關標籤/搜索