zoukankan      html  css  js  c++  java
  • 根据中国气象局提供的API接口实现天气查询

    根据中国气象局提供的API接口实现天气查询

     

    中国气象局提供了三个天气查询的API接口:

    【1】http://www.weather.com.cn/data/sk/101190101.html

    【2】http://www.weather.com.cn/data/cityinfo/101190101.html

    【3】http://m.weather.com.cn/data/101190101.html

    以json格式返回数据,第一和第二个接口返回当天实时的天气数据,第三个返回未来五天天气情况。

    其中地址里的加粗显示的数字表示城市的代码:101190101 代表南京(获取城市代码的方法下面会说明)

    第三个接口的返回数据示例及说明如下:

    复制代码
     1 {   
     2 weatherinfo: {   
     3 city: "南京",   
     4 city_en: "nanjing",   
     5 date_y: "2013年9月8日",   
     6 date: "",   
     7 week: "星期日",   
     8 fchh: "18",   
     9 cityid: "101190101",                     //城市代码   
    10 temp1: "22℃~30℃",                     //第一天(当天)最高喝最低温度(摄氏温度)   
    11 temp2: "23℃~29℃",                     //第二天最高喝最低温度(摄氏温度)   
    12 temp3: "22℃~28℃",                     //第三天最高喝最低温度(摄氏温度)   
    13 temp4: "23℃~30℃",                     //第四天最高喝最低温度(摄氏温度)   
    14 temp5: "24℃~28℃",                     //第五天最高喝最低温度(摄氏温度)   
    15 temp6: "23℃~28℃",                     //第六天最高喝最低温度(摄氏温度)   
    16 tempF1: "71.6℉~86℉",                //第一天(当天)最高喝最低温度(华氏温度)   
    17 tempF2: "73.4℉~84.2℉",             //第二天最高喝最低温度(华氏温度)   
    18 tempF3: "71.6℉~82.4℉",             //第三天最高喝最低温度(华氏温度)   
    19 tempF4: "73.4℉~86℉",                //第四天最高喝最低温度(华氏温度)   
    20 tempF5: "75.2℉~82.4℉",             //第五天最高喝最低温度(华氏温度)   
    21 tempF6: "73.4℉~82.4℉",             //第六天最高喝最低温度(华氏温度)   
    22 weather1: "多云转阴",                    //第一天(当天)天气   
    23 weather2: "小雨",                          //第二天天气   
    24 weather3: "小雨",   
    25 weather4: "阴",   
    26 weather5: "小雨转中雨",   
    27 weather6: "中雨转阴",   
    28 img1: "1",                            //第一天的天气图片代码1   
    29 img2: "2",                            //第一天的天气图片代码2   
    30 img3: "7",                           //第二天的天气图片代码1   
    31 img4: "99",                          //第二天的天气图片代码2   
    32 img5: "7",   
    33 img6: "99",   
    34 img7: "2",   
    35 img8: "99",   
    36 img9: "7",   
    37 img10: "8",   
    38 img11: "8",   
    39 img12: "2",   
    40 img_single: "2"  
    41 img_title1: "多云",                    //第一天的天气图片1的标题   
    42 img_title2: "阴",                       //第一天的天气图片2的标题   
    43 img_title3: "小雨",                    //第二天的天气图片1的标题   
    44 img_title4: "小雨",                    //第二天的天气图片2的标题   
    45 img_title5: "小雨",   
    46 img_title6: "小雨",   
    47 img_title7: "阴",   
    48 img_title8: "阴",   
    49 img_title9: "小雨",   
    50 img_title10: "中雨",   
    51 img_title11: "中雨",   
    52 img_title12: "阴",   
    53 img_title_single: "阴",   
    54 wind1: "东风3-4级",                      //第一天风向范围   
    55 wind2: "东风3-4级",                      //第二天风向范围   
    56 wind3: "北风转东北风3-4级",   
    57 wind4: "东北风3-4级",   
    58 wind5: "东北风转西风3-4级",   
    59 wind6: "西南风转西风3-4级",   
    60 fx1: "东风",   
    61 fx2: "东风",   
    62 fl1: "3-4级",                                     //第一天风级范围                        
    63 fl2: "3-4级",   
    64 fl3: "3-4级",   
    65 fl4: "3-4级",   
    66 fl5: "3-4级",   
    67 fl6: "3-4级",   
    68 index: "热",                                                                                //二十四小时穿衣指数   
    69 index_d: "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。",  //建议   
    70 index48: "热",                                                                           //四十八小时穿衣指数   
    71 index48_d: "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。", //建议   
    72 index_uv: "弱",                              //二十四小时紫外线   
    73 index48_uv: "弱",                          //四十八小时紫外线   
    74 index_xc: "不宜",                           //洗车   
    75 index_tr: "适宜",                           //旅游   
    76 index_co: "较舒适",                       //舒适度   
    77 st1: "30",   
    78 st2: "20",   
    79 st3: "27",   
    80 st4: "19",   
    81 st5: "26",   
    82 st6: "18",   
    83 index_cl: "较适宜",                        //晨练   
    84 index_ls: "不太适宜",                     //晾晒   
    85 index_ag: "极易发"                        //过敏   
    86 }   
    87 }
    复制代码

    获取城市代码的方法:

    1.首先获取省份列表

    http://www.weather.com.cn/data/city3jdata/china.html

    这个链接以json格式返回一个包含省份代码和省份名称的数组

    {   
    10101: "北京",   
    10102: "上海",   
    ....   ,
    10119: "江苏",
    }

    2.通过上面获得的省份代码获取城市列表:

    如江苏的城市代码为:10119,通过下面的链接可以获得江苏省的城市列表

    http://www.weather.com.cn/data/city3jdata/provshi/10119.html

    1 {   
    2 10: "连云港",   
    3 11: "常州",   
    4 ...   
    5 01: "南京",
    6 }

    3.获取城市下的区域信息

    通过上一步可获取城市代码 如:南京为 01

    把01接到第一步获得的省份代码后 获得 1011901 代表江苏省南京市

    通过下面的链接可获取江苏省南京市的区域信息,加粗部分为刚刚生成的代码

    http://www.weather.com.cn/data/city3jdata/station/1011901.html

    复制代码
    1 {   
    2 01: "南京",   
    3 02: "溧水",   
    4 03: "高淳",   
    5 04: "江宁",   
    6 05: "六合",   
    7 06: "江浦",   
    8 07: "浦口"  
    9 }
    复制代码

    4.获取区域代码

    把上面获得的区域代码如:01(代表南京市区) 接到第三步获得的江苏省南京市的代码 1011901

    得到 101190101 代表江苏省南京市南京市区的代码。

    这串代码就是我们需要的。

    http://m.weather.com.cn/data/101190101.html

    放到这个链接里我们就能获得江苏省南京市南京市区的天气信息啦!

  • 相关阅读:
    作业07-Java GUI编程
    作业06-接口、内部类
    作业05-继承、多态、抽象类与接口
    作业14-数据库
    作业13-网络
    作业12-流与文件
    作业11-多线程
    作业10-异常
    作业09-集合与泛型
    作业08-集合
  • 原文地址:https://www.cnblogs.com/wang-sai-sai/p/12987337.html
Copyright © 2011-2022 走看看