前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式爬虫的部署之Gerapy分布式管理

分布式爬虫的部署之Gerapy分布式管理

作者头像
崔庆才
发布2018-06-25 11:37:31
9910
发布2018-06-25 11:37:31
举报
文章被收录于专栏:进击的Coder

我们可以通过Scrapyd-Client将Scrapy项目部署到Scrapyd上,并且可以通过Scrapyd API来控制Scrapy的运行。那么,我们是否可以做到更优化?方法是否可以更方便可控?

我们重新分析一下当前可以优化的问题。

  • 使用Scrapyd-Client部署时,需要在配置文件中配置好各台主机的地址,然后利用命令行执行部署过程。如果我们省去各台主机的地址配置,将命令行对接图形界面,只需要点击按钮即可实现批量部署,这样就更方便了。
  • 使用Scrapyd API可以控制Scrapy任务的启动、终止等工作,但很多操作还是需要代码来实现,同时获取爬取日志还比较烦琐。如果我们有一个图形界面,只需要点击按钮即可启动和终止爬虫任务,同时还可以实时查看爬取日志报告,那这将大大节省我们的时间和精力。

所以我们的终极目标是如下内容。

  • 更方便地控制爬虫运行;
  • 更直观地查看爬虫状态;
  • 更实时地查看爬取结果;
  • 更简单地实现项目部署;
  • 更统一地实现主机管理。

上述所有的工作均可通过Gerapy来实现。

Gerapy是一个基于Scrapyd、Scrapyd API、Django、Vue.js搭建的分布式爬虫管理框架。接下来将简单介绍它的使用方法。

一、准备工作

请确保已经正确安装好了Gerapy。

二、使用说明

利用gerapy命令新建一个项目,命令如下:

代码语言:javascript
复制
gerapy init

在当前目录下生成一个gerapy文件夹。进入gerapy文件夹,会发现一个空的projects文件夹,后文会提及。

这时先对数据库进行初始化:

代码语言:javascript
复制
gerapy migrate

这样会生成一个SQLite数据库,数据库保存各个主机配置信息、部署版本等。

启动Gerapy服务,命令如下:

代码语言:javascript
复制
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项目的部署、管理等操作,可以大大提高效率。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、准备工作
  • 二、使用说明
  • 三、结语
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档