自序:
由放飞梦想的专栏 收集整理,来源于网络,基本收集了网络上能使用的大部分天气API接口,本人水平有限,难免有遗漏或错误的地方,欢迎反馈
前言:
暂无
目录:
1. 中国天气网
1.1 实时天气 API 接口
1.2 当天天气 API接口
1.3 生活指数 API接口
1.4 未来五天天气 API 接口(失效)
2. 开放数据网天气
2.1 简介
2.2. 一天天气 API 接口
2.3 未来五天天气 API 接口
3. 中国天气&开放数据 综合版
3.1 实时天气
3.2 当天天气
3.3 未来五天
3.4 生活指数
4. 随身云天气API (无天气标志)
4.1 简介
4.1 简化版 未来6天天气 API接口
4.2 详细版 未来6天 天气API接口
5. 新浪天气
5. 1 简介
5.2 使用方法
5.3 天气标志
6. 总结
正文:
第一节: 中国天气网
1.1 简介
中国最权威的天气预报网络平台,很多平台实际上也是用的他们的数据。
官方网站:http://www.weather.com.cn
1.2 地方代码获取方法
它对外提供了有限的免费API接口,通过地方代码来查询,使用前先需要确定地方代码:
获取城市代码方法: 进入 http://www.weather.com.cn
在搜索框上输入你要需要获得天气的城市,点击查询,即可在地址栏获得相应城市编号,示范:北京的地方代码:101010100
1.3 实时天气接口
接口示例: http://www.weather.com.cn/data/sk/101010100.html
返回格式:
{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"23","WD":"东风","WS":"2级","SD":"92%","WSE":"2","time":"09:55","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB"}}
说明:其中 city 是地方名称,cityid是地方代码,temp是当前温度,"WD"是风向,“WS"是风速”,“SD"是湿度,time是更新时间。
1.4 获取当天天气:
http://www.weather.com.cn/data/cityinfo/101010100.html
返回格式:
weatherinfo":{"city":"北京","cityid":"101010100","temp1":"29℃","temp2":"24℃","weather":"阴转晴","img1":"d2.gif","img2":"n0.gif","ptime":"08:00"}}
注意:其中 img1和img2是天气标志图片,接口格式如下:
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像素,注意这里的文件名是两位数字!
1.5 生活指数:
http://www.weather.com.cn/data/zs/101010100.html
返回格式: 文字较多,这里省略,请点击访问。
1.6 获取未来几天天气
http://m.weather.com.cn/data/101110101.html(已经失效)
这个是获取未来5天天气的接口,可惜已经失效,不能获取到最新的准确数据。
解决方法是可以采集主站数据,缺点是一旦主页布局修改,就会失效,比如 2014年7月29号网站就改版过一次。
2. 开放数据 - k780数据
2.1 简介
官方网站:http://www.k780.com
说明: 数据来自国家气象局天气网,每小时更新一次
免费版有每小时点击次数的限制(免费版最多每小时72000次查询)
2.2 获取今日天气
详细说明: http://www.k780.com/api/weather.today
请求示例(xml)
http://api.k780.com:88/?app=weather.today&
weaid =1&
appkey =10003&
sign =b59bc3ef6191eb9f747dd4e83c99f2a4&
format =xml
返回实例:
xml version="1.0" encoding="utf-8" ?>
-
<
root
>
-
<
result
>
<
days
>
2014-07-30
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
29℃/24℃
temperature
>
<
humidity
>
84.2℉/75.2℉
humidity
>
<
weather
>
阴转晴
weather
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/2.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon1
>
<
temp_high
>
29
temp_high
>
<
temp_low
>
24
temp_low
>
<
humi_high
>
84.2
humi_high
>
<
humi_low
>
75.2
humi_low
>
result
>
root
>
参数说明:其中 ,wedid 是城市气象编号,与中国天气网编号一致,key和sign是身份验证,注册一个可以换成自己的,上例中的10003是公众帐号,formt是返回格式,支持 json,xml,除了formt不是必须的以外,其他参数都是必须提供的。
比如 我想获得深圳的今日数据:
第一步: 首先查询深圳的城市代码
方法1:通过 http://api.k780.com:88/?app=weather.city&format=xml 查询
方法2:通过 http://www.weather.com.cn 查询,前面已经提到过。
经查询,深圳的地方代码是 101280601
第二步: 通过地方代码获取今日天气
深圳的今天天气数据就是:
http://api.k780.com:88/?app=weather.today&weaid =101280601 &appkey =10003&sign =b59bc3ef6191eb9f747dd4e83c99f2a4&format =xml
2.3 获取未来五天
请求示例(Xml)
http://api.k780.com:88/?app=weather.future&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml
返回示例:
xml version="1.0" encoding="utf-8" ?>
-
<
root
>
-
<
result
>
-
<
item_0
>
<
days
>
2014-07-30
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
29℃/24℃
temperature
>
<
humidity
>
84.2℉/75.2℉
humidity
>
<
weather
>
阴转晴
weather
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/2.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon1
>
<
temp_high
>
29
temp_high
>
<
temp_low
>
24
temp_low
>
<
humi_high
>
84.2
humi_high
>
<
humi_low
>
75.2
humi_low
>
item_0
>
-
<
item_1
>
<
days
>
2014-07-31
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
31℃/24℃
temperature
>
<
humidity
>
87.8℉/75.2℉
humidity
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon1
>
<
temp_high
>
31
temp_high
>
<
temp_low
>
24
temp_low
>
<
humi_high
>
87.8
humi_high
>
<
humi_low
>
75.2
humi_low
>
item_1
>
-
<
item_2
>
<
days
>
2014-08-01
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
33℃/25℃
temperature
>
<
humidity
>
91.4℉/77℉
humidity
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon1
>
<
temp_high
>
33
temp_high
>
<
temp_low
>
25
temp_low
>
<
humi_high
>
91.4
humi_high
>
<
humi_low
>
77
humi_low
>
item_2
>
-
<
item_3
>
<
days
>
2014-08-02
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
34℃/24℃
temperature
>
<
humidity
>
93.2℉/75.2℉
humidity
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon1
>
<
temp_high
>
34
temp_high
>
<
temp_low
>
24
temp_low
>
<
humi_high
>
93.2
humi_high
>
<
humi_low
>
75.2
humi_low
>
item_3
>
-
<
item_4
>
<
days
>
2014-08-03
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
33℃/25℃
temperature
>
<
humidity
>
91.4℉/77℉
humidity
>
<
weather
>
晴转多云
weather
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/0.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/1.gif
weather_icon1
>
<
temp_high
>
33
temp_high
>
<
temp_low
>
25
temp_low
>
<
humi_high
>
91.4
humi_high
>
<
humi_low
>
77
humi_low
>
item_4
>
-
<
item_5
>
<
days
>
2014-08-04
days
>
<
cityno
>
beijing
cityno
>
<
cityid
>
101010100
cityid
>
<
temperature
>
33℃/25℃
temperature
>
<
humidity
>
91.4℉/77℉
humidity
>
<
weather_icon
>
http://api.k780.com:88/upload/weather/d/1.gif
weather_icon
>
<
weather_icon1
>
http://api.k780.com:88/upload/weather/d/1.gif
weather_icon1
>
<
temp_high
>
33
temp_high
>
<
temp_low
>
25
temp_low
>
<
humi_high
>
91.4
humi_high
>
<
humi_low
>
77
humi_low
>
item_5
>
result
>
root
>
转换方法与前面类似,这里就不需要重复了。
3. 综合方案
3. 1 实时天气
我们用 : http://www.weather.com.cn/data/sk/101010100.html
3.2 今天天气
2个选择:
1. http://www.weather.com.cn/data/cityinfo/101010100.html
2. http://api.k780.com:88/?app=weather.today&weaid =101010100&appkey =10003&sign =b59bc3ef6191eb9f747dd4e83c99f2a4&format =xml
3.3 未来几天天气
今天天气及未来五天天气 :
http://api.k780.com:88/?app=weather.future&weaid=101010100&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml
3.4 生活指数
http://www.weather.com.cn/data/zs/101010100.html
4. 随身云 天气API接口
4.1 简介
这个是官方没有公开的接口,是网络上有人访问中国农历网无意中截取到的,所以不保证稳定性,还有一个缺点是不能获取天气标志图片。
4.2 简化版接口
接口示例(北京): http://wthrcdn.etouch.cn/weather_mini?citykey=101010100
参数citykey就是设置地方代码,和中国天气网的地方代码一样,替换要查询的地方代码即可,下同。
返回示例:
{"desc":"OK","status":1000,"data":{"wendu":"28","ganmao":"相对今天出现了较大幅度降温,较易发生感冒,体质较弱的朋友请注意适当防护。","forecast":[{"fengxiang":"微风","fengli":"小于3级","high":"高温 29℃","type":"阴","low":"低温 24℃","date":"30日星期三"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 31℃","type":"晴","low":"低温 24℃","date":"31日星期四"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 33℃","type":"晴","low":"低温 25℃","date":"1日星期五"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 34℃","type":"晴","low":"低温 24℃","date":"2日星期六"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 33℃","type":"晴","low":"低温 25℃","date":"3日星期天"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 33℃","type":"多云","low":"低温 25℃","date":"4日星期一"},{"fengxiang":"微风","fengli":"小于3级","high":"高温 33℃","type":"多云","low":"低温 25℃","date":"5日星期二"}],"yesterday":{"fl":"小于3级","fx":"微风","high":"高温 29℃","type":"中雨","low":"低温 22℃","date":"29日星期二"},"aqi":"186","city":"北京"}}
2. 详细版接口
接口示例: http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100
返回示例:
xml version = "1.0" encoding = "UTF-8" ?>
-
北京
16:05
28
2级
66%
东风
05:10
19:31
/>
/>
-
186
140
...适量减少户外运动
中度污染
颗粒物(PM2.5)
142
2
0
4
24
15:00:00
-
29日星期二
高温 29℃
低温 22℃
-
中雨
微风
小于3级
-
中雨
微风
小于3级
-
-
30日星期三
高温 29℃
低温 24℃
-
阴
微风
小于3级
-
晴
微风
小于3级
-
31日星期四
高温 31℃
低温 24℃
-
晴
微风
小于3级
-
晴
微风
小于3级
-
1日星期五
高温 33℃
低温 25℃
-
晴
微风
小于3级
-
晴
微风
小于3级
-
2日星期六
高温 34℃
低温 24℃
-
晴
微风
小于3级
-
晴
微风
小于3级
-
3日星期天
高温 33℃
低温 25℃
-
晴
微风
小于3级
-
多云
微风
小于3级
-
4日星期一
高温 33℃
低温 25℃
-
多云
微风
小于3级
-
多云
微风
小于3级
-
5日星期二
高温 33℃
低温 25℃
-
多云
微风
小于3级
-
多云
微风
小于3级
-
-
感冒指数
较易发
较易发生感冒,体质较弱的朋友请注意适当防护。
-
紫外线指数
弱
紫外线强度较弱。
-
穿衣指数
热
天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。
-
舒适度
较舒适
白天以阴或多云天气为主。
-
洗车指数
不宜
不宜洗车,路面积水较多,不宜擦洗汽车...
-
旅游指数
适宜
天气较好,温度适宜,总体来说还是好天气哦...
-
运动指数
较不宜
阴天,且天气较热,请减少运动时间并降低运动强度。
-
晨练指数
较适宜
早晨气象条件较适宜晨练...
-
约会指数
较适宜
虽然天空有些阴沉,但情侣们可以放心外出...
-
逛街指数
适宜
阴天,在这种天气里去逛街,省去了涂防晒霜...
-
晾晒指数
不太适宜
天气阴沉,请尽量选择通风的地点。
-
雨伞指数
不带伞
阴天,但降水概率很低,无须带雨伞。
-
5. 新浪天气接口
接口示例:
http://php.weather.sina.com.cn/xml.php?city=深圳&password=DJOYnieT8234jlsK&day=0
其中,city后是城市名称。Password固定,Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4
返回示例:
xml version = "1.0" encoding = "UTF-8" ?>
- f%28clean%29%3B
-
-
深圳
多云
多云
duoyun
duoyun
无持续风向
无持续风向
≤3
≤3
34
27
8
31
31
1
2
3
4
/>
/>
/>
1
暂无
暂无
暂无
短袖衫、短裙、短裤、薄型T恤衫、敞领短袖棉衫
轻度
最弱
较热
暂无
暂无
薄短袖类
适宜开启(制冷)
不太适宜
暂无
对空气污染物扩散无明显影响
紫外线最弱
户外活动不适宜在中午前后展开。
适宜开启空调
洗车后未来1-2天内有降水、大风或沙尘天气,不太适宜洗车
2
易发期
天气闷热,注意预防热伤风;
5
不适宜
天气闷热,不适宜户外运动;
2014-07-30
2014-07-30
2014-07-30
图片格式:
figure1和figure2标签分别代表天气的白天和夜间标志,根据下面的规则转换为具体的路径:
多云的78*78 小图:
白天: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_0.png
夜间: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_1.png
多云的 180*180 大图: 白天:http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_0.png 夜间:http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_1.png
云聚: http://api.36wu.com
实时天气:http://api.36wu.com/Weather/GetWeather?city=%E5%8C%97%E4%BA%AC&output=xml
一周天气: http://api.36wu.com/Weather/GetMoreWeather?city=%E5%8C%97%E4%BA%AC&output=xml
智能IP一周: http://api.36wu.com/Weather/GetMoreWeatherByIp?city=%E5%8C%97%E4%BA%AC&output=xml