WebMonitor - 一款多功能网站监控程序的部署与使用
标签搜索
侧边栏壁纸
  • 累计撰写 2 篇文章
  • 累计收到 1 条评论

WebMonitor - 一款多功能网站监控程序的部署与使用

木瓜
2023-03-03 / 0 评论 / 214 阅读 / 正在检测是否收录...

简介

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
输入前方设置的账密
火狐截图_2023-03-03T08-45-08.231Z.png

1.设置通知方式
首先我们设置通知方式,下方以TGbot为例
火狐截图_2023-03-03T08-45-08.231Z.png

Telegram chat_id为你希望接收消息的TG的id,如果不知道可以使用 GetIDs Bot 获取
然后回到首页,点击Telegram bot设置bot信息
火狐截图_2023-03-03T08-52-25.638Z.png

若没有Telegram Bot Token可使用 BotFather 创建一个Bot

2.创建监控任务
RSS监控:
火狐截图_2023-03-03T09-00-27.159Z.png
直接填写任务名称,RSS地址,监控频率和通知方式即可

网页监控:
网页监控较为复杂,下方以监控一个论坛为例
火狐截图_2023-03-03T09-15-04.730Z.png

元素选择器类型选Xpath

获取Xpath:
使用Chrome打开被监控的网站
找到需要监控的内容(这里以第一个帖子标题为例)
右键检查打开控制台
屏幕截图 2023-03-03 171913.png

右键元素选择复制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为上方元素的命名

最后填写频率和通知方式即可
火狐截图_2023-03-03T09-36-59.689Z.png

最后

感谢您阅读到这里
若有任何问题请在下方评论留言
WebMonitor项目Github:

3

评论 (0)

取消