zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然PYTHON爬虫:用API爬出天气预报信息

    天气预报网址:https://id.heweather.com/,这个网站是需要注册获取一个个人认证后台密钥key的,并且每个人都有访问次数的限制,这个key就是访问API的钥匙。

     

     

     

     

     这个key现在是要自己创建的,名称自己写,key值可以不写,创建的时候会自动生成。

    接下来就是要阅读这个API文档。

     包括上面怎么创建获取这个key这个API文档也有介绍的。

     选择API这部分来阅读。

    接口地址:

     

    #获取城市列表
    import requests
    
    url = 'https://cdn.heweather.com/china-city-list.txt'
    response = requests.get(url)
    response.encoding='utf8'
    data = response.text
    data_1 = data.split('
    ')
    print(data_1)

     

    for i in range(3):
        data_1.remove(data_1[0])
    for item in data_1:
        print(item[0:11])

     获取城市ID后,下一步就是调用接口获取数据。

    #获取城市数据
    import time
    import requests
    
    url = 'https://cdn.heweather.com/china-city-list.txt'
    response = requests.get(url)
    response.encoding='utf8'
    data = response.text
    data_1 = data.split('
    ')
    for i in range(3):
        data_1.remove(data_1[0])
    for item in data_1:
        url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91'
        strhtml = requests.get(url)
        time.sleep(3)
        print(strhtml.text)

     可以看到数据是以json数据格式返回的。如果要将返回的数据解析出来可以使用for循环。

    可以使用JSON在线结构化的工具观察数据结构,网址:http://www.json.org.cn/tools/JSONEditorOnline/index.htm

     

     上图左边是原Json数据,右边显示的是它的保存数据的结构。

    #获取城市数据
    import os
    import time
    import requests
    
    url = 'https://cdn.heweather.com/china-city-list.txt'
    response = requests.get(url)
    response.encoding='utf8'
    data = response.text
    data_1 = data.split('
    ')
    for i in range(3):
        data_1.remove(data_1[0])
        
    temp = 1
    for item in data_1:
        url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91'
        strhtml = requests.get(url)
        time.sleep(3)
        dic = strhtml.json()
        if(temp>3):
            #获取风向值
            print(dic['HeWeather6'][0]['daily_forecast'][0]['wind_dir'])
            #获取最低气温
            print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_min'])
            #获取最高气温
            print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_max'])
            print('================')
        else:
            temp+=1

  • 相关阅读:
    idea的tomcat配置
    idea设置类文件的头部信息
    设置idea注释颜色
    Idea设置字体
    python 全栈开发,Day11(函数名应用,闭包,装饰器初识,带参数以及带返回值的装饰器)
    python 全栈开发,Day10(动态参数,命名空间,作用域,函数嵌套)
    python 全栈开发,Day9(函数的初始,返回值,传参,三元运算)
    python 全栈开发,Day8(文件操作)
    python 全栈开发,Day7(元组转换,列表以及字典的坑,集合,关系测试,深浅copy,编码补充)
    python 全栈开发,Day6补充(is,小数据池,编码转换)
  • 原文地址:https://www.cnblogs.com/tszr/p/12186529.html
Copyright © 2011-2022 走看看