Python實現災害預警信息即時推送


原理

主要采用requests爬取國家預警中心的API,檢測本地災害預警信息,格式化並推送Qmsg醬(QQ機器人),在服務器端
利用Crontab定時執行代碼,實現動態監測功能。

平台

  1. Linux 平台
  2. python 3.9
  3. 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)

服務器部署

  1. Linux服務器
  2. Python3
  3. pip3安裝requests
pip3 install requests
  1. 創建文件
    利用VIM或其他編輯器,寫入代碼到yujing文件內,添加執行權限。
chmod +x yujing
  1. 定時腳本
    Crontab設置定時任務
    找到yujing文件位置,比如/root/yujing,新建一個log文件 然后cronrab -e進入編輯輸入以下命令
*/60 * * * * /root/yy > /root/log
  1. 查看日志
cat /root/log

實現效果

image
bilibili演示地址

注意

本文為Billyme原創,不允許任何形式的轉載,本文地址https://www.cnblogs.com/billyme/p/15104031.html。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM