• python 使用API调用和风天气获取天气情况并保存


    第一步、注册
    注册免费API和阅读技术文档:

      注册地址:https://console.heweather.com

    注册完成后,激活登录后,新建应用 、新建key 
    KEY名称 密钥ID 密钥 类型
    下载城市代码,另存为 china-city-list.csv

     3-10天天气预报

    接口介绍
    最长10天天气预报数据,天气预报包含的数据:日出日落、月升月落、最高最低温度、天气白天和夜间状况、风力、风速、风向、相对湿度、大气压强、降水量、降水概率、露点温度、紫外线强度、能见度等数据

    城市覆盖范围:全球

    大客户可达14天,免费用户获得 3天预报数据,认证开发者可获得7天预报,付费用户可选 3-10天

    请求URL
    付费:https://api.heweather.net/s6/weather/forecast?parameters

    免费:https://free-api.heweather.net/s6/weather/forecast?parameters
    parameters代表请求参数,包括必选和可选参数。所有请求参数均使用&进行分隔,参数值存在中文或特殊字符的情况,需要对参数进行 url encode。

    请求参数
    参数 描述 选择 示例值
    location 需要查询的城市或地区,可输入以下值:
    1. 城市ID:城市列表
    2. 经纬度格式:经度,纬度(经度在前纬度在后,英文,分隔,十进制格式,北纬东经为正,南纬西经为负
    3. 城市名称,支持中英文和汉语拼音
    4. 城市名称,上级城市 或 省 或 国家,英文,分隔,此方式可以在重名的情况下只获取想要的地区的天气数据,例如 西安,陕西
    5. IP
    6. 根据请求自动判断,根据用户的请求获取IP,通过 IP 定位并获取城市数据 必选 1. location=CN101010100
    2. location=116.40,39.9
    3. location=北京、 location=北京市、 location=beijing
    4. location=朝阳,北京、 location=chaoyang,beijing
    5. location=60.194.130.1
    6. location=auto_ip
    lang 多语言,可以不使用该参数,默认为简体中文
    详见多语言参数 可选 lang=en
    unit 单位选择,公制(m)或英制(i),默认为公制单位
    详见度量衡单位参数 可选 unit=i
    key 用户认证key,请参考如何获取你的KEY
    支持数字签名方式进行认证,推荐使用 必选 key=xxxxxxxxxxxxxx

    打开浏览器测试 OK
    https://free-api.heweather.net/s6/weather/forecast?location=太原&key=XXXXXXXXXX

    使用下面地址可以看到所有城市信息
    https://cdn.heweather.com/china-city-list.txt

    使用python调用

    import requests
    import time
    import pandas as pd
    url='https://cdn.heweather.com/china-city-list.txt'
    strhtml = requests.get(url)
    data = strhtml.text
    data1 = data.split(" ")
    for i in range(6): #因为前六行不需要,所以没有打印
    data1.remove(data1[0])
    df_weather = pd.DataFrame(columns = ['city_name','area_name','date','tmp_max']) #创建一个空的dataframe
    for item in data1:
    # print(item[2:13])
    url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[2:13]+'&key=HE1904250910131710'
    strhtml = requests.get(url)
    time.sleep(1)
    dic = strhtml.json()
    # print(dic)
    city_name=dic["HeWeather6"][0]["basic"]["parent_city"]
    area_name = dic["HeWeather6"][0]["basic"]["location"]
    for item in dic["HeWeather6"][0]["daily_forecast"]:
    # print(city_name,area_name,item["date"],"最高气温",item["tmp_max"])
    add_data = pd.Series({'city_name':city_name,'area_name':area_name,'date':item["date"],"tmp_max":item["tmp_max"]})
    # ignore_index=True不能少
    df_weather = df_weather.append(add_data, ignore_index=True)
    path="D:\python\excel_export\"
    df_weather.to_excel(path+"weather"+".xls")

  • 相关阅读:
    MyBatis常见面试题以及解读
    如何防止sql注入攻击
    宝塔Linux面板基础命令
    Centos7配置静态ip
    宝塔Linux面板安装
    idea中安装阿里巴巴的代码规范插件
    idea中快速将类中的属性转为Json字符串的插件
    创建线程的四种方式
    sleep()方法与wait()方法的区别
    解决线程安全的几种方式
  • 原文地址:https://www.cnblogs.com/programer-xinmu78/p/10766924.html
Copyright © 2020-2023  润新知