如何学习可视化监控你的爬虫!爬虫一个不小心就会犯法的!
好,开始今天的文章。 今天主要是来说一下怎么可视化来 监控你的爬虫的状态 。 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以 爬多少页面 , 多大的数据量 ,当然查询的方式多种多样。今天我来讲一种可视化的方法。 关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据,大家可以通过关注我的公众号以后, 回复“ 可视化” 即可获取脚本地址 。 1.成品图 进群:548377875? 即可获取小编精心准备的大礼包一份哦! 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M。爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样而已。 2. 环境
3. 原理 获取要展示的数据,包含当前的时间数据,存到InfluxDb里面,然后再到Grafana里面进行相应的配置即可展示; 4. 安装 4.1 Grafana安装 官方安装指导 安装好以后,打开本地的3000端口,即可进入管理界面,用户名与密码都是 admin 。 4.2 InfulxDb安装 这个安装就网上自己找吧,有很多的配置我都没有配置,就不在这里误人子弟了。 5. InfluxDb简单操作 碰到了数据库,肯定要把增删改查学会了啊, 和sql几乎一样,只有一丝丝的区别,具体操作,大家可以参考官方的文档。
6. 存数据 InfluxDb数据库的数据有一定的格式,因为我都是利用python库进行相关操作,所以下面将在python中的格式展示一下: json_body = [ { "measurement": "crawler","time": current_time,"tags": { "spider_name": collection_name },"fields": { "count": current_count,"increase_count": increase_amount,"size": co_size,"increase_size": increase_co_size 其中:
可以看到,就是个列表里面,嵌套了一个字典。其中,对于时间字段,有特殊要求,可以参考 这里 , 下面是python实现方法: from datetime import datetime current_time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ') 所以,到这里,如何将爬虫的相关属性存进去呢?以MongoDB为例 mongodb_client = pymongo.MongoClient(uri) for db_name,collection_name in dbs_and_cos.iteritems(): # 数据库操作 db = mongodb_client[db_name] co = db[collection_name] # 集合大小 co_size = round(float(db.command("collstats",collection_name).get('size')) / 1024 / 1024,2) # 集合内数据条数 current_count = co.count() 完整代码,关注上面的公众号,发送“” 可视化 “”即可获取。 那么现在我们已经往数据里存了数据了,那么接下来要做的就是把存的数据展示出来。 7.展示数据 7.1 配置数据源 以admin登录到Grafana的后台后,我们首先需要配置一下数据源。点击左边栏的最下面的按钮,然后点击DATA SOURCES,这样就可以进入下面的页面: 点击ADD DATA SOURCE,进行配置即可,如下图: 其中,name自行设定;Type 选择InfluxDB;url为默认的http://localhost:8086, 其他的因为我前面没有进行配置,所以默认的即可。然后在InfluxDB Details里的填入Database名,最后点击测试,如果没有报错的话,则可以进入下一步的展示数据了; 7.2 展示数据 点击左边栏的+号,然后点击GRAPH 接着点击下图中的edit进入编辑页面: 从上图中可以发现:
7.2.1 配置数据
因为下面的配置实质就是sql查询语句,所以大家按照自己的需求,进行选择配置即可,当配置完以后,就可以在中间的面板里面看到数据了。 8. 总结 到这里,本篇文章就结束了。其中,对于Grafana的操作我没有介绍的很详细,因为本篇主要讲的是怎么利用这几个工具完成我们的任务。 同时,里面的功能确实很多,还有可以安装的插件。我自己目前还是仅仅对于用到的部分比较了解,所以大家可以查询官方的或者别的教程资料来对Grafana进行更深入的了解,制作出更加好看的可视化作品来。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |