吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1872|回复: 27
上一主题 下一主题
收起左侧

[Python 原创] 彩云天气API 获取实时及当日天气等内容

  [复制链接]
跳转到指定楼层
楼主
chh322 发表于 2024-10-15 12:06 回帖奖励
本帖最后由 chh322 于 2024-10-15 12:16 编辑


[Python] 纯文本查看 复制代码
import requests
 # 用户输入的秘钥和经纬度(以逗号分隔)
api_key = ""  # 这里输入用户自己的秘钥
location = ""  # 输入用户的经纬度

# 抓取天气信息的函数
def get_weather_info(api_key, location):
    try:
        # 实时天气API
        realtime_url = f"https://api.caiyunapp.com/v2.6/{api_key}/{location}/realtime"
        # 当日天气API
        daily_url = f"https://api.caiyunapp.com/v2.6/{api_key}/{location}/daily?dailysteps=1"

        # 获取实时天气数据
        realtime_response = requests.get(realtime_url)
        # 获取当日天气数据
        daily_response = requests.get(daily_url)

        if realtime_response.status_code == 200 and daily_response.status_code == 200:
            realtime_data = realtime_response.json().get('result', {}).get('realtime', {})
            daily_data = daily_response.json().get('result', {}).get('daily', {})

            # 提取实时天气数据
            temperature = realtime_data.get('temperature')
            humidity = realtime_data.get('humidity')
            skycon = realtime_data.get('skycon')
            wind = realtime_data.get('wind', {})
            apparent_temperature = realtime_data.get('apparent_temperature')
            precipitation = realtime_data.get('precipitation', {})
            local_precip = precipitation.get('local', {})
            nearest_precip = precipitation.get('nearest', {})

            # 提取当日天气数据
            daily_temp = daily_data.get('temperature', [{}])[0]
            daily_humidity = daily_data.get('humidity', [{}])[0]
            daily_skycon = daily_data.get('skycon', [{}])[0].get('value', '未知')

            # 天气状况翻译
            skycon_translation = {
                "CLEAR_DAY": "晴天",
                "CLEAR_NIGHT": "晴夜",
                "PARTLY_CLOUDY_DAY": "多云",
                "PARTLY_CLOUDY_NIGHT": "多云夜晚",
                "CLOUDY": "阴天",
                "LIGHT_HAZE": "轻度雾霾",
                "MODERATE_HAZE": "中度雾霾",
                "HEAVY_HAZE": "重度雾霾",
                "LIGHT_RAIN": "小雨",
                "MODERATE_RAIN": "中雨",
                "HEAVY_RAIN": "大雨",
                "STORM_RAIN": "暴雨",
                "FOG": "雾",
                "LIGHT_SNOW": "小雪",
                "MODERATE_SNOW": "中雪",
                "HEAVY_SNOW": "大雪",
                "STORM_SNOW": "暴雪",
                "DUST": "浮尘",
                "SAND": "沙尘",
                "WIND": "大风"
            }

            # 翻译天气状况
            skycon_desc = skycon_translation.get(skycon, "未知天气状况")

            # 构建输出字符串
            weather_info = (
                f"实时天气情况: {skycon_desc}\n"
                f"实时温度: {round(temperature)}°C (体感: {round(apparent_temperature)}°C)\n"
                f"每秒风速: {wind.get('speed')}米\n"
            )

            # 判断降水状况
            if local_precip.get('intensity', 0) == 0 and nearest_precip.get('distance', 0) > 10000:
                weather_info += "降水监测: 目前无降水(雷达显示最近降水距离超过10公里)"
            else:
                weather_info += "降水监测: 雷达显示10公里区域内存在降水"

            # 加入当日天气信息(只显示温度、湿度和天气状况)
            weather_info += (
                f"\n当日天气情况: {skycon_translation.get(daily_skycon, '未知')}\n"
                f"当日温度: {round(daily_temp.get('min'))}°C ~ {round(daily_temp.get('max'))}°C\n"
                f"当日湿度: {round(int(daily_humidity.get('min') * 100))} % ~ {round(int(daily_humidity.get('max') * 100))} %\n"
            )

            return weather_info
        else:
            return "无法获取天气数据。"

    except requests.exceptions.RequestException as e:
        print(f"抓取天气信息失败: {e}")
        return None

# 主程序入口
if __name__ == "__main__":

    # 调用天气信息函数
    weather_result = get_weather_info(api_key, location)

    if weather_result:
        print("公司总部天气信息:\n",weather_result)
    else:
        print("未能提取到天气信息。")



实际很多内容 我只提取我自己需要的

注册免费API:http://caiyunai.com/api/weather_api.html#api


最终放公司钉钉每日推送效果

免费评分

参与人数 2吾爱币 +6 热心值 +2 收起 理由
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
qq63 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
 楼主| chh322 发表于 2024-10-15 16:34 |楼主
bester 发表于 2024-10-15 15:57
油价的怎么获取

那就是另外一个思路 有个专门油价报价的网站 选择对应区域跳转当地对应网址 提取关键字 我是福建的 全国各地油价不一样 外论坛好像不让分享爬  就没分享了
推荐
lose2836 发表于 2024-10-15 15:31
也可代码模拟网页直接从气象网站请求某个地方的天气,自己解析数据就可以了。api这个更简单一些。
沙发
不忘形影 发表于 2024-10-15 12:12
3#
panpan998181 发表于 2024-10-15 12:24
大神的分享,谢谢
4#
yanaying 发表于 2024-10-15 12:31
我记得有链接,不需要密钥也能显示天气
5#
luyazhou 发表于 2024-10-15 13:31
不会用啊这个
6#
szhorse 发表于 2024-10-15 14:25
就是不会用
7#
richieshy 发表于 2024-10-15 15:00
6啊  取已所需 动手能力强
8#
alan3258 发表于 2024-10-15 15:25
钉钉怎么集成的啊?
10#
bester 发表于 2024-10-15 15:57
油价的怎么获取
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-1 09:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表