影刀RPA 天气API接入实战:定时获取天气预报并自动通知
·
影刀RPA 天气API接入实战:定时获取天气预报并自动通知
作者:林焱
这篇讲一个完整的自动化场景:每天早上7点自动获取当天天气,生成天气简报,推送到微信或钉钉群。涉及定时调度、API调用、格式化输出和消息推送——一个典型的端到端RPA流程。
天气API选哪个?
推荐两个免费接口,无需注册:
1. 和风天气(推荐)
免费版每天1000次调用,够用:
https://devapi.qweather.com/v7/weather/now?location=101010100&key=你的KEY

拼多多店群自动化上架方案
注册地址:dev.qweather.com,在控制台创建应用拿Key,选择"免费订阅"。
2. wttr.in(零门槛)
不需要注册,不需要Key,直接访问:
https://wttr.in/Beijing?format=j1
返回JSON格式的天气数据。缺点是更新频率不如和风天气稳定。
实战:用和风天气获取天气
import requests
# 城市ID(北京=101010100,上海=101020100,可在和风天气文档里查)
city_id = "101010100"
api_key = "你的Key"
# 实时天气
url_now = f"https://devapi.qweather.com/v7/weather/now"
params = {"location": city_id, "key": api_key}
resp = requests.get(url_now, params=params)
data = resp.json()
now = data["now"]
temp = now["temp"] # 温度
feels = now["feelsLike"] # 体感温度
text = now["text"] # 天气描述(晴/多云/雨)
humidity = now["humidity"] # 湿度
print(f"当前{text},温度{temp}℃,体感{feels}℃,湿度{humidity}%")
获取未来3天预报

url_3d = "https://devapi.qweather.com/v7/weather/3d"
resp = requests.get(url_3d, params={"location": city_id, "key": api_key})
data = resp.json()
forecast = data["daily"]
for day in forecast:
date = day["fxDate"]
high = day["tempMax"]
low = day["tempMin"]
text_day = day["textDay"]
print(f"{date}: {text_day},{low}℃ ~ {high}℃")
生成天气简报并推送
# 组合成一条消息
msg_parts = [
f"📅 {forecast[0]['fxDate']} 天气播报",
f"☀️ 白天:{forecast[0]['textDay']},最高{forecast[0]['tempMax']}℃",
f"🌙 夜间:{forecast[0]['textNight']},最低{forecast[0]['tempMin']}℃",
f"💧 湿度:{now['humidity']}%",
]
# 下雨提醒
if '雨' in forecast[0]['textDay']:
msg_parts.append("⚠️ 今天有雨,记得带伞!")
# 降温提醒
if int(forecast[0]['tempMax']) < 10:
msg_parts.append("🧥 今天降温,多穿点!")
weather_msg = "\n".join(msg_parts)
# 通过钉钉群机器人发送
webhook_url = "https://oapi.dingtalk.com/robot/send?access_token=xxx"
requests.post(webhook_url, json={
"msgtype": "text",
"text": {"content": weather_msg}
})
完整影刀流程架构

影刀定时触发器(每天早上7:00)
↓
Python代码块:调用和风天气API
↓
Python代码块:格式化天气消息
↓
条件判断:是否有雨?→ 是 → 加提醒
↓
发送钉钉/微信/邮件
↓
写入日志:今天已推送
踩坑实录
坑1:和风天气的城市ID不是邮政编码
TEMU店群如何管理运营?
和风天气用的是自己的LocationID,不是邮编。101010100是北京,101020100是上海。在官网文档里查城市信息表。
坑2:免费版接口域名不同
和风天气免费订阅用的是devapi.qweather.com,付费版是api.qweather.com。域名错了直接404。
坑3:API返回的字段有时缺失
比如某些城市可能没有feelsLike字段。用.get()而不是直接用键访问:

feels = now.get("feelsLike", now.get("temp", "N/A"))
坑4:wttr.in的返回格式不稳定
wttr.in虽然方便,但偶尔会改格式或限速。如果是生产环境,建议用和风天气。
扩展思路

- 穿衣建议:根据温度范围匹配穿衣指数
- 空气质量:加AQI指数(和风天气也提供空气API)
- 多城市:循环多个城市ID,生成对比表格
- 历史记录:每天存入数据库,月底生成天气月报
写在最后
天气推送是最适合RPA新手练手的完整项目——涉及定时、API调用、条件判断、消息推送,流程不长但五脏俱全。跑通一次,你就掌握了RPA自动化80%的核心技能。

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)