一簡介
別人的爬蟲部署文章
部署爬蟲的時候需要scrapyd和scrapy client,scrapy client允許我們把我們的scrapy打包發送到scrapyd裏面。
scrapyd是一個用來運行spider的service,可以通過scrapyd來部署爬蟲項目,並且通過json控制spider。
二、service
首先要在開發scrapy項目的虛擬環境裏安裝一個scrapyd.
pip install scrapyd
安裝成功會在當前虛擬環境的script目錄下安裝一個scrapyd.exe文件,然後再虛擬環境輸入scrapyd,它就會運行起來了,然後會在當前目錄下生成一個dbs文件夾。
服務器地址http://127.0.0.1:6800,進入jobs就可以看到內容。
三、client
在命令行輸入 pip install scrapyd-client
不用進入虛擬環境來安裝。安裝後會放一個scrapyd-deploy文件到當前python的script下,
安裝好之後cd 到spider項目的目錄之下,找到scrapy項目裏面的scrapy.cfg文件,找到:
[deploy]
#url = http://localhost:6800/
project = NgaSpider
打開這個url。deploy裏面可以命名,[deploy:wdh]
在用虛擬環境安裝一遍scrapyd-client,然後就會拷貝一個scrapyd-deploy在當前虛擬環境的script下,在linux中可以直接運行scrapyd-deploy,但是win中不行,因爲沒有後綴。
在同目錄下新建一個同名的.bat後綴的文件,在裏面添加;
@echo off
“E:\Envs\ngaSpider\Scripts\python.exe” “E:\Envs\ngaSpider\Scripts\scrapyd-deploy” %1 %2 %3 %4 %5 %6 %7 %8 %9
然後保存
然後在虛擬環境下運行scrapyd-deploy就可以用了
輸入scrapyd-deplo -l
會出現[deploy:wdh]這裏的名字和url,同時注意要在工程項目的根目錄cmd能運行scrapy list 命令,如果不能的話就在spider項目中的settings中加入:
import sys
BASE_DIR = os.path.dirname(os.path.abspath(os.path.dirname(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'NgaSpider'))
scrapy list 和scrapyd-deploy都要在工程項目的根目錄下cmd,就是在和包含scrapy.cfg文件同級的目錄。
然後在啓動了scrapyd服務器的同時在根目錄下運行 :
scrapyd-deploy wdh -p NgaSpider # scrapyd-deploy deploy後面的名字 -p [deploy]後面的project的值
然後再在虛擬環境中的根目錄下把項目的spider打包發送到服務器
curl http://127.0.0.1:6800/daemonstatus.json
運行某一個項目下的spider
curl http://127.0.0.1:6800/schedule.json -d project=NgaSpider -d spider=douyu
會返回:
{"node_name": "DESKTOP-3UEPD36", "status": "ok", "jobid": "2bd490de38bd11e9b4a9e0db55c7cbe9"}
這個id很重要,要記住
此時訪問http://127.0.0.1:6800/jobs就會看到我們的spider運行了。可以查看log