在scrapyd部署爬蟲

一簡介
別人的爬蟲部署文章
部署爬蟲的時候需要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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章