用docker在树莓派上部署网页监控软件WebMonitor

WebMonitor是一款python写的网页监控程序,优点是UI简洁,可视化操作简单,通知方式多样。弄了个支持树莓派(arm32v7)的镜像方便部署。

网页监控软件比较

Page Monitor

➕可视化选择网页监控位置
➕免费,功能无限制
➖只支持Chrome插件,官方已停止开发
➖仅能通过浏览器发声来提醒
➖无法对抓取内容进行判定,如只提醒降价
visualping.io提供的网页监控插件,已停止插件开发,转向web服务。如果你的通知必须以某台机器已开Chrome为前提处理倒是适用。

Distill

➕可视化选择网页监控位置
➕多平台支持
➕通知方式多样
➕可云端同步
➕可对抓取内容进行判定,如只提醒降价
➖免费版功能受限
付费的话Distill就是网页监控的最终选择。免费版如果是选择浏览器插件离线跑则基本无限制。但我需要一些24*7监控间隔小于6小时且通知到手机的任务。

Huginn

➕定制程度高,有Java Script Agent这种万能插件
➕可对抓取内容进行判定,如只提醒降价
➕可模拟浏览器抓取,但要利用第三方服务PhantomJs Cloud
➖硬件要求高,官方推荐至少2C 2G,docker容器占用至少0.5G内存
不支持ARM,排除掉树莓派和一些arm64的NAS之类的低功耗设备(已支持)
➖设置任务略复杂
在x64的机子上试用过,建了一些简单的网页监控任务发送到Server酱,只是这些机器不适合24*7开机。如果能支持树莓派的话这就现已支持ARM是自建网页监控的最终选择。

WebMonitor

➕操作简单
➕通知方式多样
➕可用内置PhantomJs直接模拟浏览器抓取
➕轻量,docker容器仅占用不到100M内存
➕支持设置监控规则
➖暂不支持对特定网站走代理
其实刚试用时已经很好用,不过我自己也有一些需求,做了些改进:优化docker镜像大小 #43增加arm64支持 #45增加Bark通知方式 #46增加自定义GET/POST通知方式 #50
在增加对arm支持时本来想一并对树莓派的arm32v7提供,结果由于arm32v7下的依赖有点特殊,不易在不影响其他架构镜像的情况下整合到一起,故单独构建了。
一开始也试过在树莓派上直接运行,但要解决一些raspbian上gcc编译报错的问题,比较繁琐。如果每次重装系统都要这样就有点浪费时间,故还是docker部署方便。

部署docker镜像

1
docker run -d --name webmonitor -v /home/yourname/docker/webmonitor:/app/db -p 8000:8000 -e PORT=8000 -e USERNAME=yourname -e PASSWORD=yourpassword mjysci/webmonitor:arm32v7

注:arm32v7的tag是针对树莓派的,其他平台换成latest即可。

使用示例

注册WxPusher

首先要增加通知方式,这里以WxPusher为例展示自定义GET/POST通知
打开上述页面微信扫码登录。右上角点击创建新的应用,如下图所示只需填必填的三项即可。

创建完毕后会显示appToken,只会显示一次,记下来。
打开左边栏应用管理——关注应用,微信扫码关注你刚创建的应用。然后点用户管理——用户列表查看你的UID,如下图所示记下来。

添加通知方式

打开http://IP:8000,输入部署时设定的用户名和密码登录管理页面。
点击设置——通知方式——增加,如下图所示增加自定义通知

自定义网址格式如下,appTokenuids换成刚才记下的内容。

1
2
3
4
5
6
7
http://wxpusher.zjiecode.com/api/send/message{data={
"appToken":"AT_xxx",
"content":{content},
"summary":{header},
"contentType":3,
"uids":["UID_xxxx"]
}}

添加网页监控任务

我这里监控的是搬瓦工最具性价比的50刀CN2 GIA套餐,先到该网页取得监控位置的XPath
F12调出开发者工具,按左上角的小箭头(Ctrl+Shift+C)开启选择模式,选定区域后右键高亮的代码,COPY——COPY XPath,如下图所示。

点击任务管理——网页监控管理——增加。填写相关信息,如下图所示,然后点保存

保存任务后不会立即执行,像上图那样5分钟后手机微信将收到第一次抓取的信息,之后有变化才会再次通知。

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 网页监控软件比较
    1. 1.1. Page Monitor
    2. 1.2. Distill
    3. 1.3. Huginn
    4. 1.4. WebMonitor
  2. 2. 部署docker镜像
  3. 3. 使用示例
    1. 3.1. 注册WxPusher
    2. 3.2. 添加通知方式
    3. 3.3. 添加网页监控任务
,