根據中國氣象局提供的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

放到這個鏈接里我們就能獲得江蘇省南京市南京市區的天氣信息啦!

該接口可以應用在微信公眾平台,掃描下面的二維碼或者搜索公眾平台號xiaopihailaotou可以可以關注和體驗作者寫的微信公眾號

城市代碼下載地址

查看示例


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM