咱们能够经过Scrapyd-Client将Scrapy项目部署到Scrapyd上,而且能够经过Scrapyd API来控制Scrapy的运行。那么,咱们是否能够作到更优化?方法是否能够更方即可控?
git
咱们从新分析一下当前能够优化的问题。github
使用Scrapyd-Client部署时,须要在配置文件中配置好各台主机的地址,而后利用命令行执行部署过程。若是咱们省去各台主机的地址配置,将命令行对接图形界面,只须要点击按钮便可实现批量部署,这样就更方便了。数据库
使用Scrapyd API能够控制Scrapy任务的启动、终止等工做,但不少操做仍是须要代码来实现,同时获取爬取日志还比较烦琐。若是咱们有一个图形界面,只须要点击按钮便可启动和终止爬虫任务,同时还能够实时查看爬取日志报告,那这将大大节省咱们的时间和精力。浏览器
因此咱们的终极目标是以下内容。bash
更方便地控制爬虫运行;框架
更直观地查看爬虫状态;分布式
更实时地查看爬取结果;优化
更简单地实现项目部署;spa
更统一地实现主机管理。命令行
上述全部的工做都可经过Gerapy来实现。
Gerapy是一个基于Scrapyd、Scrapyd API、Django、Vue.js搭建的分布式爬虫管理框架。接下来将简单介绍它的使用方法。
请确保已经正确安装好了Gerapy。
利用gerapy
命令新建一个项目,命令以下:
gerapy init复制代码
在当前目录下生成一个gerapy文件夹。进入gerapy文件夹,会发现一个空的projects文件夹,后文会说起。
这时先对数据库进行初始化:
gerapy migrate复制代码
这样会生成一个SQLite数据库,数据库保存各个主机配置信息、部署版本等。
启动Gerapy服务,命令以下:
gerapy runserver复制代码
这样便可在默认8000端口上开启Gerapy服务。咱们用浏览器打开:http://localhost:8000,便可进入Gerapy的管理页面,这里提供了主机管理和项目管理的功能。
在主机管理中添加各台主机的Scrapyd运行地址和端口,并加以名称标记。以后各台主机便会出如今主机列表中。Gerapy会监控各台主机的运行情况并加以不一样的状态标识,以下图所示。
刚才咱们提到在gerapy目录下有一个空的projects文件夹,它就是存放Scrapy目录的文件夹。若是想要部署某个Scrapy项目,只须要将该项目文件放到projects文件夹下便可。
这里我放了两个Scrapy项目,以下图所示。
从新回到Gerapy管理界面,点击项目管理,便可看到当前项目列表,以下图所示。
因为此处有过打包和部署记录,这里分别予以显示。
Gerapy提供了项目在线编辑功能。点击编辑,便可可视化地对项目进行编辑,以下图所示。
若是项目没有问题,能够点击部署进行打包和部署。部署以前须要打包项目,打包时能够指定版本描述,以下图所示。
打包完成以后,直接点击部署按钮便可将打包好的Scrapy项目部署到对应的云主机上,同时也能够批量部署,以下图所示。
部署完毕以后就能够回到主机管理页面进行任务调度。点击调度便可进入任务管理页面,能够查看当前主机全部任务的运行状态,以下图所示。
咱们经过点击新任务、中止等按钮来实现任务的启动和中止等操做,同时也能够经过展开任务条目查看日志详情,以下图所示。
这样咱们就能够实时查看到各个任务运行状态。
以上内容即是Gerapy功能的简单介绍。经过Gerapy,咱们能够更加方便地管理、部署和监控Scrapy项目,尤为是对分布式爬虫来讲,使用Gerapy会更加方便。
更多信息能够查看Gerapy的GitHub地址:https://github.com/Gerapy。
本节咱们介绍了Gerapy的简单用法,利用它咱们能够方便地实现Scrapy项目的部署、管理等操做,能够大大提升效率。