国家气象局提供的天气预报接口

【转载自】https://www.cnblogs.com/wangjingblogs/p/3192953.html

国家气象局提供的天气预报接口

接口地址:

http://www.weather.com.cn/data/sk/101010100.html

http://www.weather.com.cn/data/cityinfo/101010100.html

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

对于第三个接口,返回信息比较全面,也是以json格式提供,格式如下

{"weatherinfo":

    {
        //基本信息;
        "city":"北京","city_en":"beijing",
        "date_y":"2012年2月16日",
        "date":"", "week":"星期四",
        "fchh":"11",
        "cityid":"101010100",
        //摄氏温度
        "temp1":"2℃~-7℃",
         "temp2":"1℃~-7℃",
         "temp3":"4℃~-7℃",
         "temp4":"7℃~-5℃",
         "temp5":"5℃~-3℃",
         "temp6":"5℃~-2℃",
         //华氏温度;
         "tempF1":"35.6℉~19.4℉"
         , "tempF2":"33.8℉~19.4℉",
         "tempF3":"39.2℉~19.4℉"
         , "tempF4":"44.6℉~23℉",
         "tempF5":"41℉~26.6℉",
         "tempF6":"41℉~28.4℉",
         //天气描述;
         "weather1":"晴",
         "weather2":"晴",
         "weather3":"晴",
         "weather4":"晴转多云",
         "weather5":"多云",
         "weather6":"多云转阴",
         //天气描述图片序号
         "img1":"0",
         "img2":"99",
         "img3":"0",
         "img4":"99",
         "img5":"0",
         "img6":"99",
         "img7":"0",
         "img8":"1",
         "img9":"1",
         "img10":"99",
         "img11":"1",
         "img12":"2",
         "img_single":"0",
         //图片名称;
         "img_title1":"晴",
         "img_title2":"晴",
         "img_title3":"晴",
         "img_title4":"晴",
         "img_title5":"晴",
         "img_title6":"晴",
         "img_title7":"晴",
         "img_title8":"多云",
         "img_title9":"多云",
         "img_title10":"多云",
         "img_title11":"多云",
         "img_title12":"阴",
         "img_title_single":"晴",
         //风速描述
         "wind1":"北风3-4级转微风",
         "wind2":"微风",
         "wind3":"微风",
         "wind4":"微风",
         "wind5":"微风",
         "wind6":"微风",
         //风速级别描述
         "fx1":"北风",
         "fx2":"微风",
         "fl1":"3-4级转小于3级",
         "fl2":"小于3级",
         "fl3":"小于3级",
         "fl4":"小于3级",
         "fl5":"小于3级",
         "fl6":"小于3级",
         //今天穿衣指数;
         "index":"冷",
         "index_d":"天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。",
         //48小时穿衣指数
         "index48":"冷",
         "index48_d":"天气冷,建议着棉衣、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣或冬大衣。",
         //紫外线及48小时紫外线
         "index_uv":"弱",
         "index48_uv":"弱",
         //洗车
         "index_xc":"适宜",
         //旅游
         "index_tr":"一般",
         //舒适指数
         "index_co":"较不舒适",
         "st1":"1",
         "st2":"-8",
         "st3":"2",
         "st4":"-4",
         "st5":"5",
         "st6":"-5",
         //晨练
         "index_cl":"较不宜",
         //晾晒
         "index_ls":"基本适宜",
         //过敏
         "index_ag":"极不易发"
     }
 }

1. XML接口

http://flash.weather.com.cn/wmaps/xml/china.xml 这个是全国天气的根节点,列出所有的省,其中的pyName字段是各个省XML的文件名,比如北京的是beijing,那就意味着北京的XML地址为 http://flash.weather.com.cn/wmaps/xml/beijing.xml 一个省的天气,其中列出该省各个市的数据,北京就列出各个区。 tmp1是最低温低,tmp2是最高温度,url非常重要,我们一会儿再说。state1和state2是神马转神马,每个数代表一个天气现象。天气现象非常多,我本想全部分析出来,后来直接放弃了这个想法。因为我看到了一个城市的天气现象的编码是26...我现在知道的有0.晴 1.多云 2.阴 6.雨夹雪 7.小雨 8.中雨 13.阵雪 14.小雪 其中后来发现知道这个没用,这个数字的主要作用是检索图片的!!!

2. 图片接口

http://m.weather.com.cn/img/c0.gif http://m.weather.com.cn/img/b0.gif

http://www.weather.com.cn/m/i/weatherpic/29x20/d0.gif

http://www.weather.com.cn/m2/i/icon_weather/29x20/n00.gif

这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。

c打头的图片是20*20像素的,

b打头的是50*46像素的,

d打头的是反白的图标,29*20像素,

n打头的是夜间反白图标,29*20像素,

注意这里的文件名是两位数字! 也许还有更多的图标,等待大家发掘啦~

3. JSON接口

真没想到~居然有JSON接口~JSON在iPhone上分析起来要比XML简单很多

http://m.weather.com.cn/data/101010200.html 这个是北京的JSON数据,

那个HTML的名字是根据上文XML中的url得到的。这个JSON中包含了实时数据、7天天气预报、气象指数等丰富的数据


获取省级代码:

http://www.weather.com.cn/data/list3/city.xml?level=1 获取城市代码(比如安徽是22):http://www.weather.com.cn/data/list3/city22.xml?level=2 获取区域代码(比如安庆是2206):http://www.weather.com.cn/data/list3/city2206.xml?level=3 获取到安徽省安庆市望江县的代码是220607 然后去加上中国代码请求URL:http://m.weather.com.cn/data/101220607.html 就可以获取当地天气。

另外再给几个有用的探索得到的URL: 天气 FLASH实况:http://flash.weather.com.cn/sk2/101220607.xml 实况FLASH:http://flash.weather.com.cn/sk2/shikuang.swf?id=101220607

三级选择菜单(注明,这里有四个INPUT,其中有一个被隐藏了,可用FIREFOX改下源代码查看):http://www.weather.com.cn/static/custom/search3.htm 实时天气(很有用哦):http://www.weather.com.cn/data/sk/101220607.html

 

全国各城市代码如下:

 

北京:        101010100
朝阳:        101010300
顺义:        101010400
怀柔:        101010500
通州:        101010600
昌平:        101010700
延庆:        101010800
丰台:        101010900
石景山:        101011000
大兴:        101011100
房山:        101011200
密云:        101011300
门头沟:        101011400
平谷:        101011500
八达岭:        101011600
佛爷顶:        101011700
汤河口:        101011800
密云上甸子:    101011900
斋堂:        101012000
霞云岭:        101012100
北京城区:    101012200
海淀:        101010200
天津:        101030100
宝坻:        101030300
东丽:        101030400
西青:        101030500
北辰:        101030600
蓟县:        101031400
汉沽:        101030800
静海:        101030900
津南:        101031000
塘沽:        101031100
大港:        101031200
武清:        101030200
宁河:        101030700
上海:        101020100
宝山:        101020300
嘉定:        101020500
南汇:        101020600
浦东:        101021300
青浦:        101020800
松江:        101020900
奉贤:        101021000
崇明:        101021100
徐家汇:        101021200
闵行:        101020200
金山:        101020700
石家庄:        101090101
张家口:        101090301
承德:        101090402
唐山:        101090501
秦皇岛:        101091101
沧州:        101090701
衡水:        101090801
邢台:        101090901
邯郸:        101091001
保定:        101090201
廊坊:        101090601
郑州:        101180101
新乡:        101180301
许昌:        101180401
平顶山:        101180501
信阳:        101180601
南阳:        101180701
开封:        101180801
洛阳:        101180901
商丘:        101181001
焦作:        101181101
鹤壁:        101181201
濮阳:        101181301
周口:        101181401
漯河:        101181501
驻马店:        101181601
三门峡:        101181701
济源:        101181801
安阳:        101180201
合肥:        101220101
芜湖:        101220301
淮南:        101220401
马鞍山:        101220501
安庆:        101220601
宿州:        101220701
阜阳:        101220801
亳州:        101220901
黄山:        101221001
滁州:        101221101
淮北:        101221201
铜陵:        101221301
宣城:        101221401
六安:        101221501
巢湖:        101221601
池州:        101221701
蚌埠:        101220201
杭州:        101210101
舟山:        101211101
湖州:        101210201
嘉兴:        101210301
金华:        101210901
绍兴:        101210501
台州:        101210601
温州:        101210701
丽水:        101210801
衢州:        101211001
宁波:        101210401
重庆:        101040100
合川:        101040300
南川:        101040400
江津:        101040500
万盛:        101040600
渝北:        101040700
北碚:        101040800
巴南:        101040900
长寿:        101041000
黔江:        101041100
万州天城:    101041200
万州龙宝:    101041300
涪陵:        101041400
开县:        101041500
城口:        101041600
云阳:        101041700
巫溪:        101041800
奉节:        101041900
巫山:        101042000
潼南:        101042100
垫江:        101042200
梁平:        101042300
忠县:        101042400
石柱:        101042500
大足:        101042600
荣昌:        101042700
铜梁:        101042800
璧山:        101042900
丰都:        101043000
武隆:        101043100
彭水:        101043200
綦江:        101043300
酉阳:        101043400
秀山:        101043600
沙坪坝:        101043700
永川:        101040200
福州:        101230101
泉州:        101230501
漳州:        101230601
龙岩:        101230701
晋江:        101230509
南平:        101230901
厦门:        101230201
宁德:        101230301
莆田:        101230401
三明:        101230801
兰州:        101160101
平凉:        101160301
庆阳:        101160401
武威:        101160501
金昌:        101160601
嘉峪关:        101161401
酒泉:        101160801
天水:        101160901
武都:        101161001
临夏:        101161101
合作:        101161201
白银:        101161301
定西:        101160201
张掖:        101160701
广州:        101280101
惠州:        101280301
梅州:        101280401
汕头:        101280501
深圳:        101280601
珠海:        101280701
佛山:        101280800
肇庆:        101280901
湛江:        101281001
江门:        101281101
河源:        101281201
清远:        101281301
云浮:        101281401
潮州:        101281501
东莞:        101281601
中山:        101281701
阳江:        101281801
揭阳:        101281901
茂名:        101282001
汕尾:        101282101
韶关:        101280201
南宁:        101300101
柳州:        101300301
来宾:        101300401
桂林:        101300501
梧州:        101300601
防城港:        101301401
贵港:        101300801
玉林:        101300901
百色:        101301001
钦州:        101301101
河池:        101301201
北海:        101301301
崇左:        101300201
贺州:        101300701
贵阳:        101260101
安顺:        101260301
都匀:        101260401
兴义:        101260906
铜仁:        101260601
毕节:        101260701
六盘水:        101260801
遵义:        101260201
凯里:        101260501
昆明:        101290101
红河:        101290301
文山:        101290601
玉溪:        101290701
楚雄:        101290801
普洱:        101290901
昭通:        101291001
临沧:        101291101
怒江:        101291201
香格里拉:    101291301
丽江:        101291401
德宏:        101291501
景洪:        101291601
大理:        101290201
曲靖:        101290401
保山:        101290501
呼和浩特:    101080101
乌海:        101080301
集宁:        101080401
通辽:        101080501
阿拉善左旗:    101081201
鄂尔多斯:    101080701
临河:        101080801
锡林浩特:    101080901
呼伦贝尔:    101081000
乌兰浩特:    101081101
包头:        101080201
赤峰:        101080601
南昌:        101240101
上饶:        101240301
抚州:        101240401
宜春:        101240501
鹰潭:        101241101
赣州:        101240701
景德镇:        101240801
萍乡:        101240901
新余:        101241001
九江:        101240201
吉安:        101240601
武汉:        101200101
黄冈:        101200501
荆州:        101200801
宜昌:        101200901
恩施:        101201001
十堰:        101201101
神农架:        101201201
随州:        101201301
荆门:        101201401
天门:        101201501
仙桃:        101201601
潜江:        101201701
襄樊:        101200201
鄂州:        101200301
孝感:        101200401
黄石:        101200601
咸宁:        101200701
成都:        101270101
自贡:        101270301
绵阳:        101270401
南充:        101270501
达州:        101270601
遂宁:        101270701
广安:        101270801
巴中:        101270901
泸州:        101271001
宜宾:        101271101
内江:        101271201
资阳:        101271301
乐山:        101271401
眉山:        101271501
凉山:        101271601
雅安:        101271701
甘孜:        101271801
阿坝:        101271901
德阳:        101272001
广元:        101272101
攀枝花:        101270201
银川:        101170101
中卫:        101170501
固原:        101170401
石嘴山:        101170201
吴忠:        101170301
西宁:        101150101
黄南:        101150301
海北:        101150801
果洛:        101150501
玉树:        101150601
海西:        101150701
海东:        101150201
海南:        101150401
济南:        101120101
潍坊:        101120601
临沂:        101120901
菏泽:        101121001
滨州:        101121101
东营:        101121201
威海:        101121301
枣庄:        101121401
日照:        101121501
莱芜:        101121601
聊城:        101121701
青岛:        101120201
淄博:        101120301
德州:        101120401
烟台:        101120501
济宁:        101120701
泰安:        101120801
西安:        101110101
延安:        101110300
榆林:        101110401
铜川:        101111001
商洛:        101110601
安康:        101110701
汉中:        101110801
宝鸡:        101110901
咸阳:        101110200
渭南:        101110501
太原:        101100101
临汾:        101100701
运城:        101100801
朔州:        101100901
忻州:        101101001
长治:        101100501
大同:        101100201
阳泉:        101100301
晋中:        101100401
晋城:        101100601
吕梁:        101101100
乌鲁木齐:    101130101
石河子:        101130301
昌吉:        101130401
吐鲁番:        101130501
库尔勒:        101130601
阿拉尔:        101130701
阿克苏:        101130801
喀什:        101130901
伊宁:        101131001
塔城:        101131101
哈密:        101131201
和田:        101131301
阿勒泰:        101131401
阿图什:        101131501
博乐:        101131601
克拉玛依:    101130201
拉萨:        101140101
山南:        101140301
阿里:        101140701
昌都:        101140501
那曲:        101140601
日喀则:        101140201
林芝:        101140401
台北县:        101340101
高雄:        101340201
台中:        101340401
海口:        101310101
三亚:        101310201
东方:        101310202
临高:        101310203
澄迈:        101310204
儋州:        101310205
昌江:        101310206
白沙:        101310207
琼中:        101310208
定安:        101310209
屯昌:        101310210
琼海:        101310211
文昌:        101310212
保亭:        101310214
万宁:        101310215
陵水:        101310216
西沙:        101310217
南沙岛:        101310220
乐东:        101310221
五指山:        101310222
琼山:        101310102
长沙:        101250101
株洲:        101250301
衡阳:        101250401
郴州:        101250501
常德:        101250601
益阳:        101250700
娄底:        101250801
邵阳:        101250901
岳阳:        101251001
张家界:        101251101
怀化:        101251201
黔阳:        101251301
永州:        101251401
吉首:        101251501
湘潭:        101250201
南京:        101190101
镇江:        101190301
苏州:        101190401
南通:        101190501
扬州:        101190601
宿迁:        101191301
徐州:        101190801
淮安:        101190901
连云港:        101191001
常州:        101191101
泰州:        101191201
无锡:        101190201
盐城:        101190701
哈尔滨:        101050101
牡丹江:        101050301
佳木斯:        101050401
绥化:        101050501
黑河:        101050601
双鸭山:        101051301
伊春:        101050801
大庆:        101050901
七台河:        101051002
鸡西:        101051101
鹤岗:        101051201
齐齐哈尔:    101050201
大兴安岭:    101050701
长春:        101060101
延吉:        101060301
四平:        101060401
白山:        101060901
白城:        101060601
辽源:        101060701
松原:        101060801
吉林:        101060201
通化:        101060501
沈阳:        101070101
鞍山:        101070301
抚顺:        101070401
本溪:        101070501
丹东:        101070601
葫芦岛:        101071401
营口:        101070801
阜新:        101070901
辽阳:        101071001
铁岭:        101071101
朝阳:        101071201
盘锦:        101071301
大连:        101070201
锦州:        101070701

 

 

posted @ 2022-03-08 17:05  放飞梦想  阅读(993)  评论(0编辑  收藏  举报