前情提要
偶有需求会需要监控某个网页,实时知道新发布的报名考试信息,于是就试了很多工具:Openwebmonitor、WebSite-Watcher、Wachete等等,还要很多稀奇古怪的在线web版,但是无一例外,免费的要么监控间隔超长,比如Wachete,虽然是web版,无需电脑挂机,但是免费版24h只监控一次;Openwebmonitor、WebSite-Watcher免费版可以新建3-5任务,虽然够用,但是都需要电脑长时间挂机,而且Openwebmonitor只能软件通知,邮件、API之类的都是VIP,VIP超贵。
破局
本着生命不息折腾不止的精神,随即反手搜索了一下github,这不,开源项目WebMonitor就来了嘛。
优势:
1、python语言编写,可在我的linux服务器上实现24h运行,不必PC挂机;
2、提醒方式多种多样,邮件、微信、telegram、pushover、slack,还有自定义API调用,超爽有木有!
开始部署
服务器环境:ubuntu-server 20.04.2
步骤真心挺简单的,跟着官方中文文档,几下就搞定:https://github.com/LogicJake/WebMonitor
1、克隆源码到本地:
源(一如既往的慢):
镜像:
2、下载完成后安装依赖
sudo apt update
sudo apt install python3-pip
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/ #更换pip为阿里源
pip3 install -r requirements.txt
3、首次运行需要迁移数据库且设置管理账号,假设账号为 admin,密码为 password,运行端口为 8000:
python3 manage.py migrate
python3 manage.py initadmin --username admin --password password
python3 manage.py runserver 0.0.0.0:8000 --noreload
非首次运行,只需指定端口:
运行后,登陆网页即可配置监控任务。
PS:为了让服务一直运行,则可以用screen运行:
设置监控
1、浏览器登陆8000端口的ip地址;
这是登陆后的页面;
2、首先新增通知方式,我这里用的是自定义API,以实现微信推送,“邮箱地址……”一栏填写你的GET或者POST请求地址即可;(将推送内容替换为{content})
3、然后新增“网页监控任务”,名称随意,网址就是监控的url,元素选择器通过chrome浏览器F12复制Xpath(后面记得加/text()以实现对文本的监控),通知方式选择你第一步新增的方式,其他默认即可;
4、保存后,程序就按照你配置的频率开始监控,一有风吹草动,就收到通知。
PS:程序还提供有Docker安装方式,此处未做尝试。
此方案部署简单,可以实现24h监控,无需PC挂机,加上花式通知方式,的确是好用,推荐有服务器、VPS、树莓派等的小伙伴使用。
再次鸣谢开源作者LogicJake
文章评论
大神您好 请问部署后怎么样才能进到网页界面呀,服务器:端口 无法连接上
@Moe 如果是云服务器,检查一下厂商提供的防火墙是否开通了你指定的端口;其次再看看linux系统防火墙;一般都是这些情况。