简介
WebMonitor是一款多功能的网站监控程序,并支持多种消息渠道推送
支持requests请求网页,支持使用PhantomJS抓取异步加载的网页
支持 xpath 和 css selector 选择器,支持 JsonPath 提取 json 数据
支持邮件,pushover,微信提醒(support by server酱),Bark推送,自定义GET/POST通知, Slack 通知以及 Telegram 通知
支持一个任务多个选择器提取信息
支持自定义消息模板
简洁的UI,可视化操作
支持自定义请求头,抓取需要登录的网页
支持设置监控规则
监控RSS更新
- 数据导入导出
使用 Docker 部署
1.安装 Docker
pip install docker-compose
2.下载 WebMonitor 镜像
docker pull logicjake/webmonitor
3.通过 docker 文件夹映射参数 -v,将数据库文件保存到主机
假设映射的主机目录为 /etc/webmonitor
其中admin为账号,password为密码,8000为运行端口
docker run -d --name webmonitor -v /etc/webmonitor:/app/db -p 8000:8000 -e PORT=8000 -e USERNAME=admin -e PASSWORD=password logicjake/webmonitor
docker stop webmonitor
手动部署
1.下载 WebMonitor 源码
git clone https://github.com/LogicJake/WebMonitor.git
cd WebMonitor
2.安装依赖
pip install -r requirements.txt
3.运行
首次运行需要迁移数据库且设置管理账号
其中admin为账号,password为密码,8000为运行端口
python manage.py migrate
python manage.py initadmin --username admin --password password
python manage.py runserver 0.0.0.0:8000 --noreload
非首次运行,只需指定端口
python manage.py runserver 0.0.0.0:8000 --noreload
使用
打开ip:8000
输入前方设置的账密
1.设置通知方式
首先我们设置通知方式,下方以TGbot为例
Telegram chat_id为你希望接收消息的TG的id,如果不知道可以使用 GetIDs Bot 获取
然后回到首页,点击Telegram bot设置bot信息
若没有Telegram Bot Token可使用 BotFather 创建一个Bot
2.创建监控任务
RSS监控:
直接填写任务名称,RSS地址,监控频率和通知方式即可
网页监控:
网页监控较为复杂,下方以监控一个论坛为例
元素选择器类型选Xpath
获取Xpath:
使用Chrome打开被监控的网站
找到需要监控的内容(这里以第一个帖子标题为例)
右键检查打开控制台
右键元素选择复制Xpath
获取元素文本信息,在浏览器得到的选择器后加/text(),如
//*[@id="id3"]/h3 => //*[@id="id3"]/h3/text()
获取元素属性信息,在浏览器得到的选择器后加/@属性名,如想获取元素href值
//*[@id="id3"]/h3 => //*[@id="id3"]/h3/@href
获取元素及其子元素的所有文本信息,在浏览器得到的选择器后加/string(),如
//*[@id="id3"]/h3 => //*[@id="id3"]/h3/string()
举例:获取到的Xpath为 /html/body/div[2]/div[2]/div/div[1]/div[3]/ul/li[1]/h2/a[2]
我想要获取这个元素的文本信息,然后将这个元素命名为title
此时应在元素选择器填写 title{/html/body/div[2]/div[2]/div/div[1]/div[3]/ul/li[1]/h2/a[2]/text()}
设置消息体模板:
以监控上方论坛新帖为例,只需要在消息体模板处填写 标题:{title}
即可,其中title为上方元素的命名
最后填写频率和通知方式即可
最后
感谢您阅读到这里
若有任何问题请在下方评论留言
WebMonitor项目Github:
评论 (0)