Scrapyd 使用详解 爬虫相关
Scrapyd 使用详解
Scrapyd 使用详解
注意:爬虫文件中不能有其他的py文件获取其他问价,只能有爬虫项目,否则无法运行
---ONE Goal , ONE Passion !
前言:
必须清楚一点的是,scrapyd 不是scrapy.
scarpy是一个爬虫框架, 而scrapyd是一个网页版管理scrapy的工具, scrapy爬虫写好后,可以用命令行运行,但是如果能在网页上操作就比较方便. scrapyd就是为了解决这个问题,能够在网页端查看正在执行的任务,也能新建爬虫任务,和终止爬虫任务,功能比较强大. 还有一个更加强大的国产工具 gerapy!
Scrapyd 使用详解:
一. 安装scrapyd
pip install
- 1
2.安装scrapyd-client
pip install scrapyd-client
1
3.运行scrapyd
首先切换命令行路径到Scrapy项目的根目录下,
要执行以下的命令,需要先在命令行里执行scrapyd,将scrapyd运行起来
$ scrapyd $的意思是.在命令行下
4.发布工程到scrapyd
- 4.1 : 修改爬虫的scapy.cfg文件
# Automatically created by: scrapy startproject
#
# For more information about the [deploy] section see:
# https://scrapyd.readthedocs.io/en/latest/deploy.html
[settings]
default = CZBK.settings
[deploy]
url = http://localhost:6800/ 将#注释掉
project = CZBK
[deploy:服务器名随意设置(trager)],一般情况用在需要同时发布爬虫到多个目标服务器时,可以通过指定名字的方式发布到指定服务器。相当于服务器名.
- 4.2 : 检查scrapy配置是否正确
scrapyd-deploy -l # 注意是小写的 L,不是数字1

5. 发布爬虫
scrapyd-deploy <target> -p <project> --version <version> 。 #这里的targer就是上边提到的 .cgf文件中的[deploy] 里边写的内容 因为没写 所以下边可以为空
target就是前面配置文件里deploy后面的的target名字。
project 可以随意定义,跟爬虫的工程名字无关。
version自定义版本号,不写的话默认为当前时间戳。
注意,爬虫目录下不要放无关的py文件,放无关的py文件会导致发布失败,但是当爬虫发布成功后,会在当前目录生成一个setup.py文件,可以删除掉。
$scrapyd-deploy -p cz $的意思是.在命令行下.注意刚刚启动scrapyd的命令行不要关闭
发布成功后信息:
Packing version 1523349647
Deploying to project "cz" in http://localhost:6800/addversion.json
Server response (200):
{"project": "cz", "node_name": "ubuntu", "status": "ok", "spiders": 1, "version": "1523349647"}
6.启动爬虫
curl http://127.0.0.1:6800/schedule.json -d project=工程名 -d spider=爬虫名
在发布成功的信息中可以找到工程名(这个工程名不是项目,而是发布时-p后的参数)
$curl http://127.0.0.1:6800/schedule.json -d project=cz -d spider=cz
成功信息:
{"node_name": "ubuntu", "status": "ok", "jobid": "23be21443cc411e89c37000c29e9c505"}
运行后,可以在http://127.0.0.1:6800/jobs 查看运行的爬虫的详细信息
7. 取消爬虫
curl http://127.0.0.1:6800/cancel.json -d project=cz -d job=jobid #jobid不要带""
curl http://localhost:6800/cancel.json -dproject=scrapy项目名称 -d job=运行ID
注: gerapy 持续更新
删除scrapy项目
注意:一般删除scrapy项目,需要先执行命令停止项目下在远行的爬虫
curl http://localhost:6800/delproject.json-d project=scrapy项目名称
查看有多少个scrapy项目在api中
curl http://localhost:6800/listprojects.json
查看指定的scrapy项目中有多少个爬虫
curlhttp://localhost:6800/listspiders.json?project=scrapy项目名称
总结几个请求url
1、获取状态
http://127.0.0.1:6800/daemonstatus.json
2、获取项目列表
http://127.0.0.1:6800/listprojects.json
3、获取项目下已发布的爬虫列表
http://127.0.0.1:6800/listspiders.json?project=myproject
4、获取项目下已发布的爬虫版本列表
http://127.0.0.1:6800/listversions.json?project=myproject
5、获取爬虫运行状态
http://127.0.0.1:6800/listjobs.json?project=myproject
6、启动服务器上某一爬虫(必须是已发布到服务器的爬虫)
http://127.0.0.1:6800/schedule.json (post方式,data={"project":myproject,"spider":myspider})
7、删除某一版本爬虫
http://127.0.0.1:6800/delversion.json
(post方式,data={"project":myproject,"version":myversion})
8、删除某一工程,包括该工程下的各版本爬虫
http://127.0.0.1:6800/delproject.json(post方式,data={"project":myproject})
---------------------