Scrapyd使用教程
先上github地址: ofollow,noindex">Scrapyd
- Scrapyd是一個服務,用來執行scrapy爬蟲的
- 它允許你部署你的scrapy專案以及通過HTTP JSON的方式控制你的爬蟲
- 官方文件: http://scrapyd.readthedocs.org/
安裝
pip install scrapyd
安裝完成後,在你當前的python環境根目錄 C:\Program Files\Python35\Scripts
下,有一個scrapyd.exe,
開啟命令列,輸入scrapyd,如下圖:

image.png
這樣scrapyd就執行起來了,訪問127.0.0.1:6800即可看到視覺化介面。
注:如果在命令列執行scrapyd報錯如下圖:

image.png
先pip list 檢視你的attrs這個包的版本 然後降到16.3 再試試,如果還不行,請評論區提問。
理解scrapyd
scrapyd其實就是一個伺服器端,真正在部署爬蟲的時候,我們需要兩個東西:
- scrapyd (安裝在伺服器端)
- scrapy-client (客戶端)
scrapy-client,它允許我們將本地的scrapy專案打包傳送到scrapyd 這個服務端
安裝 scrapy-client: pip install scrapy-client
部署scrapy專案
在scrapy專案目錄下,有一個scrapy.cfg的配置檔案:

image.png
# Automatically created by: scrapy startproject # # For more information about the [deploy] section see: # https://scrapyd.readthedocs.org/en/latest/deploy.html [settings] default = china.settings [deploy:demo] url = http://localhost:6800/ project = china
把原先註釋掉的url那一行取消註釋,這個就是我們要部署到目標伺服器的地址,
然後,把[deploy]這裡改為[deploy:demo],這裡是命名為demo,命名可以任意怎麼都可以,只要能標識出來專案就可以。
下邊的project 就是我們的工程名,到此配置檔案更改完成。
接著,執行scrapyd-deploy,這個命令在windows下是執行不了的,(在mac和linux下都是可以的)因為在我們安裝的根目錄 C:\Program Files\Python35\Scripts
中可以檢視這個檔案是沒有後綴名的:

image.png
解決方法:在同目錄下,新建檔案scrapyd-deploy.bat
@echo off "C:\Program Files\Python35\python.exe" "C:\Program Files\Python35\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
上邊程式碼是呼叫的我的環境中的python.exe路徑,大家可以根據自己環境來改變路徑做配置。
這樣就可以執行scrapyd-deploy這個命令了。
然後,進入到我們爬蟲的根目錄,執行scrapyd-deploy:

image.png
顯示這個就證明我們成功執行了scrapyd-deploy,注意:一定要進入爬蟲根目錄,就是帶有scrapy.cfg的那一層及目錄。
接著:
執行:scrapyd-deploy demo -p china
因為上邊我們已經配置過scrapy.cfg檔案了,這裡直接使用配置完的引數即可:

image.png
這裡顯示我們部署成功,可以檢視執行啟動scrapyd服務端的當先目錄下有兩個資料夾:

image.png
到這一步,只是把爬蟲專案上傳到服務端,並沒有啟動,
接下來看看如何啟動:
先執行命令檢視服務端狀態:curl http://localhost:6800/daemonstatus.json

image.png
返回的資訊告訴我們:都為0
再執行啟動命令:
curl http://localhost:6800/schedule.json -d project=china -d spider=china
然後檢視網頁127.0.0.1:6800

image.png
再點jobs,

image.png
這邊就是我們爬蟲執行的狀態以及日誌。
後續補充:
我們在生產環境中,一般scrapyd是部署在伺服器,而我們一般會從本地直接傳送到伺服器端,這時需要調整
vim /usr/lib/python3/site-packages/scrapyd/default_scrapyd.conf
scrapyd的預設配置檔案:
預設scrapyd啟動bind繫結的ip地址是127.0.0.1埠是:6800,
將ip地址設定為0.0.0.0
開啟配置檔案不需要翻頁就能夠找到bind_address
還有更多更好用的命令,請查閱官方文件,這裡只介紹基本用法。