使用scrapyd部署scrapy爬虫

之前运行爬虫都是直接通过命令行启动,但当爬虫部署到服务器上再通过命令行启动会十分不方便。最好能够直接在网页上进行操作,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
2
3
4
[deploy:demo]
url = http://localhost:6800/
project = Spider
version = 1.1

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
2
3
Deploying to project "Spider" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "USER-U2VF9HUJ65", "status": "ok", "project": "Spider", "version": "1.0", "spiders": 4}

API

参考