今天主要是来说一下怎么可视化来监控你的爬虫的状态。

相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样。今天我来讲一种可视化的方法。

关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据。

1.成品图


这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已, 如下图。


可以实现对爬虫数量,增量,大小,大小增量的实时监控。

2. 环境

InfluxDb ,是目前比较流行的时间序列数据库;

Grafana ,一个可视化面板(Dashboard),有着非常漂亮的图表和布局展示,功能齐全的度量仪表盘和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据源

Ubuntu

influxdb (pip install influxdb)

Python 2.7

3. 原理

获取要展示的数据,包含当前的时间数据,存到InfluxDb里面,然后再到Grafana里面进行相应的配置即可展示;

4. 安装

4.1 Grafana安装

官方安装指导

安装好以后,打开本地的3000端口,即可进入管理界面,用户名与密码都是 admin 。

4.2 InfulxDb安装

这个安装就网上自己找吧,有很多的配置我都没有配置,就不在这里误人子弟了。

5. InfluxDb简单操作

碰到了数据库,肯定要把增删改查学会了啊, 和sql几乎一样,只有一丝丝的区别,具体操作,大家可以参考官方的文档。

influx 进入命令行

CREATE DATABASE test 创建数据库

show databases 查看数据库

use test 使用数据库

show series 看表

select * from table_test 选择数据

DROP MEASUREMENT table_test 删表

6. 存数据

InfluxDb数据库的数据有一定的格式,因为我都是利用python库进行相关操作,所以下面将在python中的格式展示一下:


其中:

measurement, 表名

time,时间

tags,标签

fields,字段

可以看到,就是个列表里面,嵌套了一个字典。其中,对于时间字段,有特殊要求,可以参考这里, 下面是python实现方法:


所以,到这里,如何将爬虫的相关属性存进去呢?以MongoDB为例


那么现在我们已经往数据里存了数据了,那么接下来要做的就是把存的数据展示出来。