天天看點

Scrapyd使用教程

先上github位址: Scrapyd

安裝

pip install scrapyd

安裝完成後,在你目前的python環境根目錄

C:\Program Files\Python35\Scripts

下,有一個scrapyd.exe,

打開指令行,輸入scrapyd,如下圖:

Scrapyd使用教程

image.png

這樣scrapyd就運作起來了,通路127.0.0.1:6800即可看到可視化界面。

注:如果在指令行運作scrapyd報錯如下圖:

Scrapyd使用教程

先pip list 檢視你的attrs這個包的版本 然後降到16.3 再試試,如果還不行,請評論區提問。

了解scrapyd

scrapyd其實就是一個伺服器端,真正在部署爬蟲的時候,我們需要兩個東西:

  1. scrapyd (安裝在伺服器端)
  2. scrapy-client (用戶端)

scrapy-client,它允許我們将本地的scrapy項目打包發送到scrapyd 這個服務端

安裝 scrapy-client:

pip install scrapy-client

部署scrapy項目

在scrapy項目目錄下,有一個scrapy.cfg的配置檔案:

Scrapyd使用教程
# 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

中可以檢視這個檔案是沒有字尾名的:

Scrapyd使用教程

解決方法:在同目錄下,建立檔案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:

Scrapyd使用教程

顯示這個就證明我們成功執行了scrapyd-deploy,注意:一定要進入爬蟲根目錄,就是帶有scrapy.cfg的那一層及目錄。

接着:

運作:scrapyd-deploy demo -p china

因為上邊我們已經配置過scrapy.cfg檔案了,這裡直接使用配置完的參數即可:

Scrapyd使用教程

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

Scrapyd使用教程

到這一步,隻是把爬蟲項目上傳到服務端,并沒有啟動,

接下來看看如何啟動:

先運作指令檢視服務端狀态:

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

Scrapyd使用教程

傳回的資訊告訴我們:都為0

再執行啟動指令:

curl http://localhost:6800/schedule.json -d project=china -d spider=china

然後檢視網頁127.0.0.1:6800

Scrapyd使用教程

再點jobs,

Scrapyd使用教程

這邊就是我們爬蟲運作的狀态以及日志。

後續補充:

我們在生産環境中,一般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

還有更多更好用的指令,請查閱官方文檔,這裡隻介紹基本用法。

繼續閱讀