使用scrapyd部署scrapy爬虫

scrapyd是一款可以用来管理scrapy爬虫的工具。它通过发送http请求来管理爬虫,控制爬虫项目的启停。
scrapyd在github上的地址为:https://github.com/scrapy/scrapyd

安装scrapyd

pip install scrapyd

在shell或cmd中输入scrapyd,然后就可以在网页上通过127.0.0.1:6800查看你的爬虫项目了。页面如下:
使用scrapyd部署scrapy爬虫_第1张图片

要想将爬虫项目打包部署到scrapyd中,我们还需要安装scrapyd-client

pip install scrapyd-client

部署scrapyd

windows用户若要部署scrapyd,还需新建一个scrapyd-deploy.bat文件。该文件在相应python环境中下的python.exe同级目录中。
新建该文件的原因是windows环境中无法直接执行scrapyd-deploy(scrapyd-deploy是安装scrapyd时会安装到相应的python环境中)
scrapyd-deploy.bat内容为:

@echo off

"E:\somehow\python\virtualenv\py3scrapy\Scripts\python.exe" "E:\somehow\python\virtualenv\py3scrapy\Scripts\scrapyd-deploy" %1 %2 %3 %4 %5 %6 %7 %8 %9

配置好之后,就能和linux用户一样使用scrapyd-deploy了。

  • 可以在命令行输入
scrapyd-deploy l

查看已经启动的scrapyd服务

  • 可以跳转到项目目录下,输入
scrapyd-deploy list

查看项目列表

接下来就是部署的一般步骤

  1. 修改scrapy.cfg文件,如要部署的project为DoubanSpider,命名为somehow,可以配置如下
[deploy:somehow]
url = http://localhost:6800/
project =DoubanSpider
  1. 将项目打包到scrapyd中,使用命令
scrapyd-deploy somehow -p DoubanSpider

如果打包结果类似

Packing version 1525356467
Deploying to project "DoubanSpider" in http://localhost:6800/addversion.json
Server response (200):
{"node_name": "somehow", "status": "ok", "project": "DoubanSpider", "version": "1525356467", "spiders": 5}

说明你的爬虫项目就部署好了。

通过http请求控制爬虫项目

可以通过在shell中发送http请求来控制爬虫项目的运行(非常可惜,一般情况下,windows不支持发送curl指令,可以尝试下载使用cmder来运行)。
scrapyd相关的api文档也很健全:http://scrapyd.readthedocs.io/en/stable/api.html。
这里简要列举出几个常用请求

启动project(同时设置下载延时)

curl http://localhost:6800/schedule.json -d project=DoubanSpider -d spider=douban -d setting=DOWNLOAD_DELAY=20

查看project状态

curl http://localhost:6800/daemonstatus.json

删除project

curl http://localhost:6800/delproject.json -d project=DoubanSpider

取消任务(job id为启动时返回的id)

curl http://localhost:6800/cancel.json -d project=DoubanSpider -d job=9218dc3648f611e8b7ec00163e0cf49e                  1

查看所有project

curl http://localhost:6800/listprojects.json

查看特定project具体的spider

curl http://localhost:6800/listspiders.json?project=DoubanSpider

查看job

curl http://localhost:6800/listjobs.json?project=DoubanSpider | python -m json.tool

查看所有上传到scrapy服务器上的project

curl http://localhost:6800/listprojects.json

你可能感兴趣的:(Python)