scrapy入门教程()部署爬虫项目

scrapyd部署爬虫项目

  1. scrapyd介绍
  2. scrapyd安装
  3. scrapyd部署

1、scrapyd介绍

它就相当于是一个服务器,用于将自己本地的爬虫代码,打包上传到服务器上,让这个爬虫在服务器上运行,可以实现对爬虫的远程管理(远程启动爬虫,远程关闭爬虫,远程查看爬虫的一些日志等)。

2、scrapyd安装
使用命令pip install scrapyd进行安装即可。
scrapy入门教程()部署爬虫项目_第1张图片
此处安装的版本是scrapyd==1.2.0
在这里插入图片描述

3、scrapyd部署
(1)、既然要部署,那么就需要将本地的爬虫项目打包上传至scrapyd服务。那么问题来了?怎么将爬虫项目上传至scrapyd服务呢?这就需要用到scrapyd服务客户端(类似于redis的redis-cli.exe,MongoDB数据库的client)。使用scrapyd-client这个客户端工具对scrapyd这个服务进行操作。
scrapyd-client下载地址:https://github.com/scrapy/scrapyd-client

(2)安装scrapyd-client工具,使用命令pip install scrapyd-client进行安装即可。
scrapy入门教程()部署爬虫项目_第2张图片
此处安装的版本是scrapyd-client==1.1.0
在这里插入图片描述

①值得注意的一点是:服务端scrapyd和客户端scrapyd-client安装的版本一定要保持一致,不然会出现兼容性的问题等等。
②我们上一步安装的scrapyd(版本是1.2.0)和scrapyd-client(版本是1.1.0),版本不一致,为了保持一致,我们需要下载1.2.0版本的scrapyd-client客户端工具。
③回到我们之前说的scrapyd-client的下载地址,点击进去查看最新版的scrapyd-client客户端工具。

scrapy入门教程()部署爬虫项目_第3张图片

④既然已经知道了最新版本的版本号,那么我们只需指定版本安装。即使用pip install scrapyd-client==1.2.0a1命令进行安装即可。

scrapy入门教程()部署爬虫项目_第4张图片
scrapy入门教程()部署爬虫项目_第5张图片

此时的scrapyd版本(==1.2.0)与scrapyd-client(==1.2.0a1)的版本已经一致。

(3)上述scrapyd服务安装好之后,就可以启动scrapyd服务了。使用命令scrapyd即可。
scrapy入门教程()部署爬虫项目_第6张图片
此时,我们可以看到服务已经启动,使用的是127.0.0.1,即本地的localhost,端口是6800.
scrapy入门教程()部署爬虫项目_第7张图片
打开浏览器输入地址:http://127.0.0.1:6800 或 http://localhost:6800 即可访问到如下内容:
scrapy入门教程()部署爬虫项目_第8张图片

(4)此时,我们就可以配置爬虫项目,配置完成以后,通过addversion.json进行打包。
找到爬虫项目下的scrapy.cfg文件。
scrapy入门教程()部署爬虫项目_第9张图片
(5)修改scrapy.cfg文件。
[deploy:bole] ----->给部署的爬虫在scrapyd中设置名称。
url= http://localhost:6800/ ------->去掉这一行的注释,表示爬虫项目要不熟的scrapyd服务的地址。
project=jobbolespider ------>表示我们的项目名称。
scrapy入门教程()部署爬虫项目_第10张图片
(6)上面打开的scrapyd服务窗口不要关闭,另起一个cmd窗口。用于使用scrapyd-client连接scrapyd服务。

①进入到项目根目录,然后输入scrapyd-deploy命令,查看scrapyd-client服务是否可用。

scrapy入门教程()部署爬虫项目_第11张图片

②查看当前可用于打包上传的项目。命令scrapyd-deploy -l
scrapy入门教程()部署爬虫项目_第12张图片
③使用命令上传。scrapyd-deploy bole -p jobbolespider
scrapy入门教程()部署爬虫项目_第13张图片

获得一个响应结果:
{“node_name”: “9MEUNFQYK0DNVAM”, “status”: “ok”, “project”:“jobbolespider”, “version”: “1538049912”, “spiders”: 1}
其参数表示如下含义:
Status: “ok”/”error” 项目上传状态
Project: 上传的项目名称
Version: 项目的版本号,值是时间戳
Spiders: 项目Project包含的爬虫个数

④通过调用api接口,查看已经上传至scrapyd服务的项目。
命令:curl http://localhost:6800/listprojects.json

值得注意的一点:curl是linux下的命令,想要在cmd中运行,如果你是anaconada的环境可以直接使用此命令。如果你用的是python3.x的环境,可以到这个网站上下载curl-7.33.0-win64-nossl.zip 直接使用。
网址:https://curl.haxx.se/download/archeology/
scrapy入门教程()部署爬虫项目_第14张图片
为了方便在命令窗口任意目录下使用curl,最好配置一下环境变量:
a、增加CURL_HOME环境变量:如D:\curl-7.3.0\curl (值是对应curl.exe所在的目录)
b、在PATH环境变量里加上%CURL_HOME%;

此时,在运行命令:curl http://localhost:6800/listprojects.json 即可查看已经上传至scrapyd服务的项目。
Projects: [] 所有已经上传的爬虫项目,都会显示在这个列表中。
scrapy入门教程()部署爬虫项目_第15张图片

值得注意的一点是:如果项目上传失败,需要先将爬虫项目中打包生成的文件删除(build、project.egg-info、setup.py),然后再重新打包上传。

⑤通过调用api接口,查看某一个项目中的所有爬虫名称;
命令:curl http://localhost:6800/listspiders.json?project=jobbolespider
scrapy入门教程()部署爬虫项目_第16张图片
⑥通过调用api接口,启动爬虫。
命令:curl http://localhost:6800/schedule.json -d project=爬虫项目名称 -d spider=项目中某一个爬虫名称
scrapy入门教程()部署爬虫项目_第17张图片

Jobid: 是根据项目(jobbolespider)和爬虫(bole)生成的一个id,将来用于取消爬虫任务。

此时在浏览器进行查看当前运行的项目。
scrapy入门教程()部署爬虫项目_第18张图片
⑦通过调用api接口,取消爬虫。
命令:curl http://localhost:6800/cancel.json -d project=爬虫项目名称 -d job=jobid(爬虫启动的额时候分配的)
⑧其他命令就不一一尝试了。下文列出。

检查服务的负载状态。
命令:curl http://localhost:6800/daemonstatus.json
获取项目列表
命令:curl http://127.0.0.1:6800/listprojects.json
获取某项目下的爬虫列表
命令:curl http://127.0.0.1:6800/listspiders.json?project=myproject
获取某爬虫的运行状态
命令:curl http://127.0.0.1:6800/listjobs.json?project=myproject
删除某一项目,包括该项目下的所有爬虫
命令:curl http://127.0.0.1:6800/delproject.json -d project = myproject
删除项目版本。如果给定项目没有更多可用版本,则该项目也将被删除。
命令:curl http://localhost:6800/delversion.json -d project=myproject -d version=r99

你可能感兴趣的:(scrapy)