erlang启动参数详解_Scrapyd监控系统之SpiderKeeper和Scrapydweb详解

b089259caba5f94a696e7dbcc0469a35.png
作者:Zarten 知乎专栏:Python爬虫深入详解 知乎ID: Zarten 简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 !

概述

我们的scrapy爬虫项目可以部署在scrapyd服务器中,可以通过scrapyd提供的接口访问web主页,但这个页面比较简陋且一台scrapyd服务器提供一个主页,若多台的话,就要访问多个主页,这样会比较麻烦。

有没有开源的库可以统一管理,实现一键部署,定时任务等功能呢?下面将介绍2款比较有名的开源库:spiderkeeper和scrapydweb

这些库的共同点是:底部调用scrapyd提供的接口,二次封装成功能更加强大的系统。不同之处在于:scrapydweb相比spiderkeeper功能更加丰富一些,且有异常邮件通知功能。spiderkeeper功能简陋些,但足以应付大规模的机器,更加成熟稳定些。scrapydweb是最近(现在:2019.3)新开发的比较大的监控系统,可能会有不完善的地方,以后会更加稳定丰富。

SpiderKeeper详解

官网:DormyMo/SpiderKeeper

采用一台机器提供2个scrapyd端口6800和6801作测试来模拟分布式,spiderkeeper与scrapyd服务器装在同一台机器上。

安装

命令:

pip3 install spiderkeeper

也可以制作成docker镜像,这里将不作具体的介绍,不会的看前面我写的文章。

启动

启动的前提是必须启动了scrapyd服务(scrapyd不懂的可以看我前面写的文章)。

命令:

若scrapyd在本地机器:

spiderkeeper --server=http://localhost:6800

若scrapyd在远程机器或多端口:

提示:scrapyd的ip地址最好写真实的ip,虽然在本机也最好写真实ip

spiderkeeper --server=http://你的scrapyd的ip:6800 --server=http://你的scrapyd的ip:6801

访问

http://你的spiderkeeper的ip:5000

登录时需要授权,用户名和密码默认都是admin。若需要修改密码等配置信息,找到spiderkeeper安装包下的config.py文件

若不知道包所在的位置,可以使用如下命令:

pip3 show 包名

9ab039b92a56e786612049282a040827.png

若有特殊需求,需要改默认的5000端口,找到安装包目录下的run.py文件进行修改

bf9ecb3121d258b42f229c3cc8307b7b.png

修改完成重启即可

界面如下所示:

271437af1657690b2508bf3b465bf68d.png

scrapy项目部署

若使用scrpayd-deploy工具部署后,spiderkeeper无法自动识别出部署的项目,必须在网页中手动部署,首先通过命令生成egg文件再上传egg文件即可。这点个人觉得挺麻烦的。

步骤:

1.在scrpay项目中scrapy.cfg文件中写好scrapyd服务器信息

2.生成egg文件命令:

scrapyd-deploy --build-egg output.egg

3.上传文件

06f9cacbd0a1798729ef73ed7ecfb3ed.png

运行项目

可以一次运行和定时周期运行。有个不足之处是:每次只能运行一台scrapyd机器上的项目。

  • 一次运行

0d21dfc0f6e4dbf9af4f3dafdb22ac41.png

如下图为运行状态:

241dfce75a977418023b1757c608e70d.png
  • 定时周期运行

9cc3e87e479a6fef28e273ae78b37473.png

总结

其他功能将不作介绍,总体看来界面比较简洁清爽,功能比较简单

scrapydweb详解

官网:my8100/scrapydweb

采用一台机器提供2个scrapyd端口6800和6801作测试来模拟分布式,scrapydweb与scrapyd服务器装在同一台机器上。

这个库内容更丰富一些,并且做了大量的日志记录功能

安装

pip3 install scrapydweb

也可制作docker镜像。由于官方需要第一次自动生成配置文件scrapydweb_settings_v8.py,修改配置文件后,再次启动,这里制作镜像时事先提取出此文件了。

Docker构建的原文件:

https://pan.baidu.com/s/1viPC-Zxl_ZAGxYQAWbF0zQ

提取码: pgg0

构建前修改 SCRAPYD_SERVERS的信息和用户名密码信息,也可构建完成后进入容器修改

启动

启动前必须确保对应的scrapyd服务已经启动

命令:

scrapydweb

首次启动后生成配置文件,需要修改scrapyd服务器信息。

若通过上面的docker方式启动,若构建前已经配置好,则不需修改;若没有配置好,也可进入容器内修改。

访问

http://你的scrapydweb的ip:5000

界面

e03a7a3916cf118903cf1836385cb17d.png

scrapy项目部署

scrapydweb可以使用scrapyd-deploy工具直接部署,scrapydweb会自动识别项目,也可在主页中Deploy Project菜单来部署。不过本人更青睐使用scrapyd-deploy直接部署,方便快捷。

命令部署

scrapyd-deploy 别名

网页部署界面:

a84f18cea85d94116405ae82053b8505.png

运行项目

运行项目分为一次运行和定时周期运行。但是scrapydweb就可以通过multinodes同时启动多个机器的scrapy项目

  • 一次运行

可以设置settings文件和传入的参数

b7caf1542517bd393be9f4cdd81abf27.png
  • 定时周期运行

从下图可以看到,通过timer task可以设置定时周期运行

d1429cf2374ef110e3af030a560123fa.png

这个定时任务内部使用的是apscheduler库实现, 定时的参数设置可以参考这里

例如我要设置每2分钟爬一次,其他都设置为‘*’,minute那里设置为‘*/2’

总结

spiderkeeper更加简洁清爽一些,若要求不高,可以使用这个。

scrapydweb库更加丰富强大,相比spiderkeeper,优势是可以:

1.使用工具scrapyd-deploy部署,scrapydweb能自动识别

2.可以同时启动多台机器的项目

3.定时功能采用apscheduler库,定时更加强大

4.采用日志记录系统及历史情况

5.有邮件通知功能

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值