部署scrapy爬蟲


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM