影刀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%的核心技能。
在这里插入图片描述
在这里插入图片描述

Logo

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

更多推荐