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
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:部署scrapy爬虫 - Python技术站