pip install scrapyd
1、新建文件夾,用來放之后的項目文件
在部署的項目文件夾里開啟一個服務
cmd管理員運行:
spiderd
默認的訪問地址 是 http://localhost:6800/
如果啟動成功,可以看到jobs里面的表格內容即是要部署上去的scrapy服務,現在還沒部署
2、項目目錄里,cmd輸入 scrapyd 執行, 執行完成后新建一個dbs空文件夾, 用來存放爬蟲項目的數據文件
3、安裝scrapyd-client,這是一個類似打包工具,把我們的scrapy程序打包成egg后扔給scrapyd, 這是一個打包和部署的工具
pip install scrapy-client==1.1.0
也可以自行安裝 下載地址:https://pypi.org/project/scrapyd-client/#files
執行命令, 安裝完成后, 在python環境的scripts中會出現scrapyd-deploy無后綴文件, 這個scrapyd-deploy無后綴文件是啟動文件, 在Linux系統下可以運行, 在windows下是不能運行的, 所以我們需要編輯一下使其在windows可以運行
C:\Program Files (x86)\Python36-32\Scripts中,新建一個scrapyd-deploy.bat空白文件,兩個內容之間切記一個空格
@echo off "C:\Program Files (x86)\Python36-32\python.exe" "C:\Program Files (x86)\Python36-32\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9
4、進入到你的爬蟲項目中, 進入帶有scrapy.cfg文件的目錄, 執行scrapyd-deploy, 測試scrapyd-deploy是否可以運行, 如果出現以下提示則正常:
Unknown target: default
5、打開爬蟲項目中的scrapy.cfg文件, 這個文件就是給scrapyd-deploy使用的將url這行代碼解掉注釋, 並且設置你的部署名稱
[settings]
default = huawei.settings
[deploy:hw] # hw 自定義
url = http://localhost:6800/
project = huawei # 項目名字
6、再次執行scrapyd-deploy -l啟動服務, 可以看到設置的名稱
7、開始打包前, 執行一個命令 scrapy list, 這個命令執行成功說明可以打包了, 如果沒執行成功說明還有工作沒完成
注意執行 scrapy list命令的時候很有可能出現錯誤, 如果是python無法找到scrapy項目, 需要再scrapy項目里的settings.py配置文件里設置成python可識別路徑
# 將當前爬蟲項目的setting.py增加
import sys
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'huawei'))
如果錯誤提示:遠程計算機拒絕,說明你的scrapy項目有鏈接遠程計算機,如鏈接數據庫或者elasticsearch(搜索引擎)之類的,需要先將鏈接服務器或數據庫服務啟動或者啟動你的scrapyd,執行scrapy list 命令返回了爬蟲名稱說明一切ok了
8、到此我們就可以開始打包scrapy項目到scrapyd了, 用命令結合scrapy項目中的scrapy.cfg文件設置來打包
執行打包命令: scrapyd-deploy 部署名稱 -p 項目名稱
如: scrapyd-deploy hw -p huawei
部署成功就可以去網頁中127.0.0.1:6800 查看爬蟲運行狀態
9、運行爬蟲
命令:
curl http://localhost:6800/schedule.json -d project=PROJECT_NAME -d spider=SPIDER_NAME
示例: curl http://localhost:6800/schedule.json -dproject=huawei -d spider=hw
其他:
停止爬蟲
爬蟲執行成功后,終端會給出該爬蟲的 jobid 值,表示該爬蟲,后面停止爬蟲需要提供jobid
http://localhost:6800/jobs 可以查看jobid
curl http://localhost:6800/listjobs.json?project=huawei 可以獲取當前jobid
切記:停止后如果代碼需要修改,記得重新部署再執行。
刪除scrapy項目
注意:一般刪除scrapy項目,需要先執行命令停止項目下在遠行的爬蟲
curl http://localhost:6800/delproject.json -d project=scrapy項目名稱
常用接口:
調度爬蟲
curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider
# 帶上參數
curl http://localhost:6800/schedule.json -d project=myproject -d spider=somespider -d setting=DOWNLOAD_DELAY=2 -d arg1=val1
取消
curl http://localhost:6800/cancel.json -d project=myproject -d job=jobid
列出項目
curl http://localhost:6800/listprojects.json
列出版本
curl http://localhost:6800/listversions.json?project=myproject
列出爬蟲
curl http://localhost:6800/listspiders.json?project=myproject
列出job
curl http://localhost:6800/listjobs.json?project=myproject
刪除版本
curl http://localhost:6800/delversion.json -d project=myproject -d version=r99
刪除項目
curl http://localhost:6800/delproject.json -d project=myproject
