十二、scrapyd的介绍
1.scrapyd的介绍
scrapyd是一个用于部署和运行scrapy爬虫的程序,它允许你通过JSON API来部署爬虫项目和控制爬虫运行,scrapyd是一个守护进程,监听爬虫的运行和请求,然后启动进程来执行它们。
2.scrapy的安装
scrapyd服务端:pip install scrapyd
scapryd客户端:pip install scrapyd-client
3.启动scrapyd服务
1.在scapryd项目目录下 :sudo scrapyd
2.启动之后就可以打开本地运行的scrapyd,浏览器中访问本地6800端口可以查看scrapyd的监控页面
4.scrpay项目部署
4.1配置需要部署的项目
编辑需要部署的项目的scrapy.cfg文件(需要将哪一个爬虫部署到scrapyd中,就配置该项目的该文件)
[deploy:部署名()]
url = http://localhost:6800/
project = 项目名(创建爬虫项目时使用的名称)
4.2部署项目到scrapyd
同样在scrapy项目路径下执行:scrapyd-deploy -p 项目名
4.3管理scrapy项目
- 启动项目:curl http://localhost:6800/schedule.json -d project=peoject_name -d spider=spider_name
- 关闭爬虫:curl http://localhost:6800/cancel.json -d project=project_name -d job=jobid
4.4 使用requests模块控制scrapy项目
import requests
# 启动爬虫
url = 'http://localhost:6800/schedule.json'
data = {
'project':项目名,
'spider':爬虫名,
}
resp = requests.post(url,datat=data)
# 停止爬虫
url = 'http://localhost:6800/cancel.json'
data = {
'project':项目名,
'job':启动爬虫时返回的jobid,
}
resp = requests.post(url, data=data)
十三、Gerapy
1.Gerapy介绍
Gerapy是一款分布式爬虫管理框架,支持python3,基于scrapy、scrapyd、scrapyd-client、scrapy-redis、scrapy-api、scrapy-splash、jinjia2、django、vue.js开发,Gerapy可以帮助我们:
- 1.更方便的控制爬虫运行
- 2.更直观的查看爬虫状态
- 3.更实时地查看爬取结果
- 4.更简单的实现项目部署
- 5.更统一地实现主机管理
2.Gerapy的安装
pip install gerapy
3.Gerapy配置启动
1.新建一个项目
gerapy init
执行完该命令之后会在当前目录下生成一个gerapy文件夹,进入该文件夹,会找到一个名为projects的文件夹
2.对数据库进行初始化(在gerapy目录中操作),执行如下命令
gerapy migrate
对数据库是初始化之后会生成一个SQLite数据库,数据库保存主机配置信息和部署版本等
3.启动gerapy服务
gerapy runserver
此时启动gerapy服务的这台机器的8000端口上开启了Gerapy服务,在浏览器中输入 http://localhost:8000就能进入Gerapy管理页面,在管理页面就可以进行主机管理和界面管理
4.通过Gerapy配置管理scrapy项目
主机管理
- 1.点击主机管理,右边的创建
- 2.输入信息
- 3.创建
- 4.点击右边的调度
- 5.然后点击运行
项目管理
- 1.配置Projects,我们可以将scrapy项目直接放到/gerapy/projects下
- 2.点击项目管理、右边的deploy
- 3.然后输出描述 点击build
- 4.选择节点,然后点击部署
- 5.点击主机管理,点击调度,然后运行爬虫
Gerapy与scrpayd有什么关联吗?
我们仅仅使用scrapyd是可以调用scrapyd进行爬虫,只是需要使用懵了开启爬虫curl http://127.0.0.1:6800/schedule.json -d projcet = 工程名 -d spider = 爬虫名 ,使用Gerapy就是为了将使用命令行开启爬虫变成“小手一点”。我们在gerapy中配置了scrapy掉后,不需要使用命令行,可以通过图形化界面直接开启爬虫。