GitHub Action构建实时监控网页排名
最近有需求监控一个的活动中某个参赛作品的排名情况,尴尬的是该活动自己没有一个排名页面,活动数据是分页且无序的。因此这里想到了用GitHub Action来构建一个实时监控网页排名的工具。
实现思路
- GitHub Action设置schedule cron定时任务,比如每10分钟执行一次。
- 执行脚本请求网页的API接口,获取数据信息,这里我想对熟悉JS,因此采用nodejs来实现。
- 根据数据信息,计算排名情况,处理成需要的数据。
- 根据数据,更新到HTML。
- SSH连接到服务器,上传HTML文件。
- 同时发送数据到TG,做到IM即时通知。
最终产物
- HTML页面,展示排名信息,每10分钟刷新一次
- TG机器人,发送排名信息
GitHub Action使用补充
- GitHub Action的cron表达式目前
不支持设置时区
- GitHub Action针单个账号/组织,非public仓库,执行是有额度的,目前为2000分钟,如果超了将停止使用
额度情况:https://github.com/settings/billing/summary - GitHub Action中执行环境有MacOS,如果有需要可以配置选择使用Mac环境
写在最后
搭建上述一套连带开发也就个把小时时间,不得不说GitHub Action确实强大,借此可以玩出很多花样,上述的定时Job和爬虫也只是冰山一角,后续可以继续深入。