之前运行爬虫都是直接通过命令行启动,但当爬虫部署到服务器上再通过命令行启动会十分不方便。最好能够直接在网页上进行操作,scrapyd库正好可以满足该需求,使用scrapyd可以接通过http控制爬虫的启动和停止,且可以同时管理多个爬虫,每个爬虫可以拥有多个版本。
安装
安装scrapyd:pip install scrapyd
安装打包工具scrapyd-client:pip install scrapyd-client
部署项目
1.修改scrapy.cfg文件
默认配置:1
2
3[deploy]
#url = http://localhost:6800/
project = Spider
deploy节点可配置参数如下:
- url:
url
为scrapyd服务器的地址 - project:
project
为项目名称,可随便定义 - version:默认会根据当前时间戳生成项目的版本信息,如需自定义则在最后加上
version
参数 - target:deploy后面可加上target名称,指定不同的scrapyd服务器
修改后的scrapy.cfg如下:
1 | [deploy:demo] |
2.查看所有配置
使用scrapyd-deploy -l
查看所有配置项
windows下可能会提示 ‘scrapyd-deploy’ 不是内部或外部命令。
打开python安装目录下的Scripts文件夹,新建scrapyd-deploy.bat文件,将如下内容填入该bat文件(注意替换成自己的目录)
@echo off
“D:\Developer Tools\python\python.exe” “D:\Developer Tools\python\Scripts\scrapyd-deploy” %1 %2 %3 %4 %5 %6 %7 %8 %9
3.部署
使用scrapyd
命令启动scrapyd服务器,cd
到scrapy项目根目录,使用如下命令部署指定项目到指定的scrapyd服务器中:
1 | scrapyd-deploy <target> -p <project> |
如果一个项目需要部署到多个target,可使用如下命令:
1 | scrapyd-deploy -a -p <project> |
返回如下信息表示部署成功:
1 | Deploying to project "Spider" in http://localhost:6800/addversion.json |
API
- 查看服务器状态(get)
- 上传的项目列表(get)
- 获取某一项目所有版本列表(get)
- 获取项目某一版本下所有的爬虫(get)
- 获取所有的jobs(get)
- 删除某一版本(post)
- http://localhost:6800/delversion.json
- 参数:project 项目名称,version 项目版本
- 删除项目(post)
- http://localhost:6800/delproject.json
- 参数:project 项目名称
- 开启爬虫(post)
- http://localhost:6800/schedule.json
- 参数:project 项目名称,spider 爬虫名称
- 返回job id,停止爬虫时需要该参数
- 取消爬虫(post)
- http://localhost:6800/cancel.json
- 参数:project 项目名称,job 启动时返回的id