中國氣象局提供了三個天氣查詢的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可以可以關注和體驗作者寫的微信公眾號

