马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
本帖最后由 蓝小白 于 2026-2-24 14:10 编辑
一、功能简介
本脚本通过接口盒子API获取中国地震台网官方数据,实现:
- ✅ 实时地震监控(每5分钟同步一次)
- ✅ 智能地区过滤(只关注指定省份/城市)
- ✅ 震级阈值设置(低于设定值不打扰)
- ✅ 企业微信推送(多人群机器人支持)
- ✅ 动态IP优选(自动获取最快节点)
- ✅ 防重复推送(同一地震只提醒一次)
接口限制:免费用户每分钟最多调用10次,建议设置6分钟以上间隔。
二、准备工作
1. 注册接口盒子账号(获取API密钥)
⚠️ 重要:不要使用公共ID(88888888),共享频率限制会影响使用! 2. 创建企业微信机器人(获取Webhook)
- 在企业微信群聊中点击右上角"..." → "添加群机器人"
- 选择"新创建一个机器人",命名如"地震监控"
- 复制Webhook地址,提取key参数:
- https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
复制代码 三、青龙面板部署
1. 安装依赖
进入青龙面板 → 依赖管理 → Python3 → 添加: 2. 创建脚本文件
方法一:直接创建 - 进入脚本管理 → 点击"+"新建文件
- 文件名:quake_monitor.py
- 将完整脚本代码粘贴保存
方法二:上传文件
- 将脚本保存为本地文件
- 通过青龙面板"上传"功能导入到/ql/scripts/目录
3. 配置环境变量
进入环境变量 → 添加以下变量:
🔴 必填变量
变量名
| 示例值
| 说明
| QUAKE_APIHZ_ID
| 10000000
| 接口盒子用户中心的数字ID
| QUAKE_APIHZ_KEY
| 15he5h15ty854j5sr152hs2
| 接口盒子通讯秘钥
| QUAKE_WECOM_KEY
| xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
| 企业微信机器人Key
| 🟡 可选变量
变量名
| 示例值
| 默认值
| 说明
| QUAKE_MIN_MAG
| 3.0
| 3.0
| 最小推送震级(如填4.0则只推送4级以上)
| QUAKE_REGIONS
| 四川,云南,西藏
| 空(全国)
| 只推送这些地区的地震(多个用逗号分隔)
| QUAKE_MENTIONED_MOBILE
| 13800138000
| 空
| 需要@提醒的手机号(多个用逗号分隔)
| QUAKE_ENABLED
| true
| true
| 是否启用推送(false为仅测试不推送)
| 配置示例(四川地区4级以上地震):
- export QUAKE_APIHZ_ID="12345678"
- export QUAKE_APIHZ_KEY="a1b2c3d4e5f6g7h8"
- export QUAKE_WECOM_KEY="693a91f6-7xxx-4xxx-8xxx-xxxxxxxxxxxx"
- export QUAKE_MIN_MAG="4.0"
- export QUAKE_REGIONS="四川,云南,甘肃"
复制代码
4. 创建定时任务
进入定时任务 → 创建新任务:
配置项
| 建议值
| 说明
| 任务名称
| 地震预警监控
| 自定义
| 命令
| task quake_monitor.py
| 对应脚本文件名
| 定时规则
| */6 * * * *
| 每6分钟执行一次(安全频率)
|
⚠️ 频率警告:接口免费限制10次/分钟,建议设置为:
- */6 * * * * → 每6分钟(每小时10次,安全)
复制代码 四、测试运行
1. 手动执行测试
在定时任务列表中找到任务,点击"运行"按钮。
正常输出示例:
- 🌍 地震预警监控启动(青龙面板版)
- ⏰ 当前时间:2025-02-11 14:30:00
- --------------------------------------------------
- ⚠ 【重要提醒】接口盒子免费用户限制:每分钟调用不能超过10次!
- ⚠ 建议青龙定时规则设置为:*/6 * * * * (每6分钟一次)
- --------------------------------------------------
- 📊 配置信息:
- 用户ID:12345678
- 最小震级:4.0级
- 监控地区:四川,云南,甘肃(仅推送这些地区)
- 推送状态:启用
- --------------------------------------------------
- 🌐 正在获取最优IP接口地址...
- ✅ 获取最优接口成功:http://101.35.2.25/api/tianqi/dizhen.php
- 🎯 实际请求地址:http://101.35.2.25/api/tianqi/dizhen.php
- --------------------------------------------------
- 📋 已加载 15 条历史推送记录
- 🔍 正在请求地震数据...
- ✅ 成功获取 20 条地震记录
- ✅ 推送成功:🔴 强震预警:四川泸定发生4.3级地震
- --------------------------------------------------
- ✅ 执行完成:推送 1 条,跳过 19 条
- 📊 跳过原因统计:
- - 地区[西藏阿里地区改则县]不在监控列表['四川', '云南', '甘肃']中: 3条
- - 已推送过: 12条
- - 震级3.6低于阈值4.0: 4条
- 🏠 记录文件:/ql/data/scripts/quake_apihz_records.json
复制代码
2. 检查企业微信
如果配置正确,企业微信群会收到类似消息:
- 🔴 强震预警:四川泸定发生4.3级地震
- 🎯 震中位置:四川泸定
- 📈 地震等级:4.3级
- 🕳 震源深度:10km(浅源地震)
- 🌍 震中坐标:29.53°N 101.97°E
- 🕐 发生时间:2025-02-11 12:13:27
- 📊 数据同步:2025-02-11 12:24:14
- > 🟠 重要提醒:显著地震,震感强烈!
复制代码
五、高级配置
1. 多地区监控语法
支持中文逗号、英文逗号、顿号分隔:
- # 以下写法均有效:
- QUAKE_REGIONS="四川,云南,西藏"
- QUAKE_REGIONS="四川,云南,西藏"
- QUAKE_REGIONS="四川、云南、西藏"
- QUAKE_REGIONS="四川" # 仅监控一个省
复制代码 匹配规则:模糊匹配,包含即命中
- 配置"四川" → 匹配"四川成都"、"四川泸定"、"四川宜宾"
- 配置"台湾" → 匹配"台湾花莲"、"台湾台东"
2. 多手机号提醒
支持@多人:
- QUAKE_MENTIONED_MOBILE="13800138000,13900139000,13700137000"
复制代码 3. 记录文件说明
脚本会自动生成 quake_apihz_records.json 文件用于去重,位于: - 新版青龙:/ql/data/scripts/quake_apihz_records.json
- 旧版青龙:/ql/scripts/quake_apihz_records.json
手动清空记录:
如需重新推送历史地震(测试用),删除该文件即可。
六、故障排查
问题1:提示"获取最优接口失败,使用默认域名接口"
原因:api.apihz.cn 获取IP接口偶尔不稳定
解决:正常现象,脚本会自动回退到域名接口,不影响功能
问题2:"API错误:请求过于频繁"
原因:每分钟调用超过10次被限流
解决:调整定时规则为 */6 * * * * 或更慢
问题3:"推送失败:invalid webhook url"
原因:企业微信Key错误或机器人被删除
解决:
- 检查Key是否完整(32位字符)
- 在企微群重新添加机器人获取新Key
问题4:一直提示"已推送过"但没有收到消息
原因:记录文件已存在,但之前推送失败
解决:
- 删除记录文件:rm /ql/data/scripts/quake_apihz_records.json
- 重新运行脚本
问题5:SSL证书警告(InsecureRequestWarning)
现象:日志中出现黄色警告但不影响执行
原因:IP接口需要关闭SSL验证(接口盒子CC防火墙策略)
解决:正常现象,脚本已自动抑制警告,无需处理
七、注意事项
- 免费用户限制:接口盒子免费账号每分钟最多10次调用,务必设置合理定时(建议6分钟)
- 数据延迟:地震数据每5分钟同步一次,非实时秒级
- IP接口有效期:动态获取的IP地址可能变动,脚本已内置自动获取逻辑,无需手动更新
- 记录文件大小:自动保留最近200条记录,防止文件过大
- 地区准确性:依赖接口返回的"weizhi"字段,部分地震可能显示为"某某附近海域"
八、更新日志
- v1.0(2025-02-11):初始版本,支持基础推送和地区过滤
- v1.1(2025-02-11):增加动态IP获取,优化SSL警告处理,取消强制频率限制改为提醒模式
按照以上步骤部署后,你的青龙面板就能自动监控地震并在发生符合条件地震时第一时间推送到企业微信了!建议首次部署后观察1-2小时确认运行正常。
点击链接下载脚本:地震预警+企微推送脚本.py
|