原理
主要采用requests爬取国家预警中心的API,检测本地灾害预警信息,格式化并推送Qmsg酱(QQ机器人),在服务器端
利用Crontab定时执行代码,实现动态监测功能。
平台
- Linux 平台
- python 3.9
- pip3 (requests)
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| import requests import json
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
- 创建文件
利用VIM或其他编辑器,写入代码到yujing
文件内,添加执行权限。
- 定时脚本
Crontab设置定时任务
找到yujing
文件位置,比如/root/yujing
,新建一个log
文件 然后cronrab -e
进入编辑输入以下命令1
| */60 * * * * /root/yy > /root/log
|
- 查看日志
实现效果
bilibili演示地址
注意
本文为Billyme原创,不允许任何形式的转载,本文地址https://www.cnblogs.com/billyme/p/15104031.html。