Python实现灾害预警信息即时推送
原理
主要采用requests爬取国家预警中心的API,检测本地灾害预警信息,格式化并推送Qmsg酱(QQ机器人),在服务器端
利用Crontab定时执行代码,实现动态监测功能。
平台
- Linux 平台
- python 3.9
- pip3 (requests)
代码
#!/usr/bin/python3
import requests
import json
#qmsg推送函数
#详情请查看 https://qmsg.zendee.cn/
def qmsg_push(wa):
url2 = "您自己的推送URL"
msg = '预警:\n'+str(wa)+'@'
params = {"msg": msg}
res = requests.post(url2, data=params)
json2 =res.json()
if json2['success']== True :
print('Qmsg酱推送成功')
print(res.text)
else:
print('Qmsg酱推送失败')
print(res.text)
#获取预警信息
url = "http://www.12379.cn/data/alarm_list_all.html"
res = requests.post(url,timeout=None)
res.encoding = 'utf-8'
json2 = res.json()
warning=[]
#判断是否有对应城市预警信息已经对应类型
#一般预警平台会存在多条信息,第一条是最新的
for i in json2['alertData']:
if ('荔城区' in i['headline'] or '荔城区' in i['description']) and '暴雨' in i['headline']:
warning.append(i['description'])
break
#无预警退出
#有预警格式化并推送信息
if warning==[] :
print('无预警')
else:
wa = json.dumps(warning,ensure_ascii=False)
print(wa)
qmsg_push(wa)
服务器部署
- Linux服务器
- Python3
- pip3安装requests
pip3 install requests
- 创建文件
利用VIM或其他编辑器,写入代码到yujing
文件内,添加执行权限。
chmod +x yujing
- 定时脚本
Crontab设置定时任务
找到yujing
文件位置,比如/root/yujing
,新建一个log
文件 然后cronrab -e
进入编辑输入以下命令
*/60 * * * * /root/yy > /root/log
- 查看日志
cat /root/log
实现效果
注意
本文为Billyme原创,不允许任何形式的转载,本文地址https://www.cnblogs.com/billyme/p/15104031.html。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
2020-08-05 堆排序算法的具体分析和实现