http://m.weather.com.cn/data/101010100.html
注意:1.101010100是北京的代号,想查询你的城市,请看更改城市代号,网上百度一大堆
2.不要丢掉.html
3.返回的是Json数据!
下文转载自:http://www.nohacks.cn/post-35.html 感谢这位同仁!
自序:
由nohacks.cn 收集整理,来源于网络,版权归原作者所有,基本收集了网络上能使用的大部分天气API接口,作者水平精力有限,难免有遗漏或错误的地方,欢迎反馈,作者网站:http://nohacks.cn
更新记录:
2015.3.2 更新云聚,增加天气网接口。
2015.2.28 增加百度天气图片,感谢网友彬子的反馈。
2015. 2.19 增加百度天气接口,更新中国天气网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. 微云
7. 百度 API
7.1 获取天气
7.2 获取城市列表
8. 天气网 (网页插件型)
8.1 简介
8.2 智能未来五天天气
前言:
1. 城市代码
现在网络上流传的天气API实际上大多最终调用的是中国天气网的数据,而中国天气网是把每个地方分配了一个代码,这个代码就是城市代码,要获取天气,我们需要知道城市代码,有2种方法:
1.1 手动查询
进入 http://www.weather.com.cn
在搜索框上输入你要需要获得天气的城市,点击查询,即可在地址栏获得相应城市编号,示范:北京的地方代码:101010100
1.2 自动查询
1.2.1 通过百度API
http://apistore.baidu.com/microservice/cityinfo?cityname=%e5%8c%97%e4%ba%ac
注意: "%e5%8c%97%e4%ba%ac"是"北京"的URL编码(UniCode)
返回格式(UniCode):
{
"errNum": 0,
"retMsg": "success",
"retData": {
"cityName": "北京",
"provinceName": "北京",
"cityCode": "101010100",
"zipCode": "100000",
"telAreaCode": "010"
}
}
很明显,cityCode的值 "101010100"就是城市代码。
2. 天气标志图片
网络上流传的一些很好用的免费API却没有提供天气标志图片,对有此需求的人里说,不得不说是个遗憾,为了弥补这个遗憾,不得不借助第三方平台配合使用,目前作者使用的是新浪天气平台的数据:
把天气API获取到的天气标志转换为拼音,比如“多云”,转换为拼音“duoyun“,然后根据下面的规则转换为图片地址:
2.1 新浪图片
小图(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 正文:
2.2 百度天气图片
目前知道的小图,感谢网友彬子的反馈
多云(白天) 多云(夜间)
白天: http://api.map.baidu.com/images/weather/day/duoyun.png
夜间: http://api.map.baidu.com/images/weather/night/duoyun.png
第一节: 中国天气网
1.1 简介
中国最权威的天气预报网络平台,很多平台实际上也是用的他们的数据。
官方网站:http://www.weather.com.cn
1.2 地方代码获取方法
前文已经提过
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是天气标志图片,接口格式如下:
1.5 生活指数:
http://www.weather.com.cn/data/zs/101010100.html 失效
返回格式: 文字较多,这里省略,请点击访问。
1.6 获取未来几天天气(有效,不保证稳定)
http://m.weather.com.cn/atad/101010100.html
图片路径:
http://i.tq121.com.cn/i/mobile/images/d00.png
替换方法同上
返回示例:
{"weatherinfo":{"city":"北京","city_en":"beijing","date_y":"2015年2月19日","date":"","week":"星期四","fchh":"18","cityid":"101010100","temp1":"-2℃~4℃","temp2":"-1℃~8℃","temp3":"-3℃~5℃","temp4":"-4℃~6℃","temp5":"-3℃~7℃","temp6":"-1℃~6℃","tempF1":"28.4℉~39.2℉","tempF2":"30.2℉~46.4℉","tempF3":"26.6℉~41℉","tempF4":"24.8℉~42.8℉","tempF5":"26.6℉~44.6℉","tempF6":"30.2℉~42.8℉","weather1":"小雪转雨夹雪","weather2":"小雪转阴","weather3":"晴","weather4":"晴","weather5":"晴","weather6":"阴","img1":"14","img2":"6","img3":"14","img4":"2","img5":"0","img6":"99","img7":"0","img8":"99","img9":"0","img10":"99","img11":"2","img12":"99","img_single":"6","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":"微风","wind2":"微风转北风4-5级","wind3":"北风4-5级转3-4级","wind4":"北风3-4级转微风","wind5":"微风","wind6":"微风转北风3-4级","fx1":"微风","fx2":"微风","fl1":"小于3级","fl2":"小于3级转4-5级","fl3":"4-5级转3-4级","fl4":"3-4级转小于3级","fl5":"小于3级","fl6":"小于3级转3-4级","index":"冷","index_d":"天气冷,建议着棉服、羽绒服、皮夹克加羊毛衫等冬季服装。年老体弱者宜着厚棉衣、冬大衣或厚羽绒服。","index48":"","index48_d":"","index_uv":"最弱","index48_uv":"","index_xc":"不宜","index_tr":"适宜","index_co":"较不舒适","st1":"4","st2":"-4","st3":"8","st4":"-2","st5":"5","st6":"-3","index_cl":"较不宜","index_ls":"不宜","index_ag":"极不易发"}}
2. 开放数据 - k780数据
2.1 简介
官方网站:http://www.k780.com
说明: 数据来自国家气象局天气网,每小时更新一次
免费版有每小时点击次数的限制(免费版最多每小时720次查询)
2.2 获取今日天气
详细说明: http://www.k780.com/api/weather.today
返回实例:
xml version="1.0" encoding="utf-8" ?>
参数说明:其中 ,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 version="1.0" encoding="utf-8" ?>
转换方法与前面类似,这里就不需要重复了。
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 简介
APP "中华万年历"使用的API接口,查询速度很快,唯一的缺点是没有天气标志图片,提供2个接口,一个简化版,一个详细版,详细说明如下:
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":"北京"}}
4.3. 详细版接口接口示例: http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100
返回示例:
5. 新浪天气接口
- 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恤等夏季服装。 - -
舒适度 较舒适 白天以阴或多云天气为主。 - -
洗车指数 不宜 不宜洗车,路面积水较多,不宜擦洗汽车... - -
旅游指数 适宜 天气较好,温度适宜,总体来说还是好天气哦... - -
运动指数 较不宜 阴天,且天气较热,请减少运动时间并降低运动强度。 - -
晨练指数 较适宜 早晨气象条件较适宜晨练... - -
约会指数 较适宜 虽然天空有些阴沉,但情侣们可以放心外出... - -
逛街指数 适宜 阴天,在这种天气里去逛街,省去了涂防晒霜... - -
晾晒指数 不太适宜 天气阴沉,请尽量选择通风的地点。 - -
雨伞指数 不带伞 阴天,但降水概率很低,无须带雨伞。 - -
接口示例:
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
6.云聚 (功能很多,需收费)
官方文档: http://www.36wu.com/Service/Details/1
6.1 实时气象
参数名 | 数据类型 | 是否必须 | 默认值 | 描述 | 备注 |
district | string | 是 | 无 | 城市名称(必须编码)或城市ID | 中文字符需编码 |
output | string | 否 | json | 输出格式,json或xml,默认json | |
authkey | string | 否 | 无 | 商用或试用的authkey,无authkey参数情况下每小时访问仅限20次,点击申请authkey |
6.2 IP智能地区实时气象
示 例:http://api.36wu.com/Weather/GetWeatherByIp?output=xml
参数名 | 数据类型 | 是否必须 | 默认值 | 描述 | 备注 |
iP | string | 否 | 客户端IP | 根据ip返回相应地区气象,如果被省略,表示使用客户端IP | |
output | string | 否 | json | 输出格式,json或xml,默认json | |
authkey | string | 否 | 无 | 商用或试用的authkey,无authkey参数情况下每小时访问仅限20次,点击申请authkey |
6.3 未来一周气象
示 例: http://api.36wu.com/Weather/GetMoreWeather?district=%E5%8C%97%E4%BA%AC&output=xml
6.4 IP智能地区未来一周气象
示 例:http://api.36wu.com/Weather/GetMoreWeatherByIp?output=xml
6.5 生活气象指数
示 例:http://api.36wu.com/Weather/GetWeatherIndex?district=%E5%8C%97%E4%BA%AC&output=xml
6.6 城市列表查询
示 例:http://api.36wu.com/Weather/GetAreaList?&output=xml
7. 百度API Store (当天天气)
官方文档: http://apistore.baidu.com/astore/serviceinfo/1798.html
7.1 天气查询
接口地址:http://apistore.baidu.com/microservice/weather
请求方法:GET
参数名 | 描述 | 请求示例 | 备注 |
cityid | 城市代码 | http://apistore.baidu.com/microservice/weather?cityid=101010100 | |
cityname | 城市名称 | http://apistore.baidu.com/microservice/weather?cityname=北京 | 中文字符需编码 |
citypinyin | 城市拼音 | http://apistore.baidu.com/microservice/weather?citypinyin=beijing |
JSON返回示例:
{ errNum: 0, errMsg: "success", retData: { city: "北京", //城市 pinyin: "beijing", //城市拼音 citycode: "101010100", //城市编码 date: "15-02-11", //日期 time: "11:00", //发布时间 postCode: "100000", //邮编 longitude: 116.391, //经度 latitude: 39.904, //维度 altitude: "33", //海拔 weather: "晴", //天气情况 temp: "10", //气温 l_tmp: "-4", //最低气温 h_tmp: "10", //最高气温 WD: "无持续风向", //风向 WS: "微风(<10m/h)", //风力 sunrise: "07:12", //日出时间 sunset: "17:44" //日落时间 } }
7.2 城市信息列表
接口地址:http://apistore.baidu.com/microservice/cityinfo
请求方法:GET
参数名 | 描述 | 请求示例 | 备注 |
cityname | 城市名称 | http://apistore.baidu.com/microservice/cityinfo?cityname=北京 | 可以用来通过名称获取代码,需编码 |
{ errNum: 0, retMsg: "success", retData: { cityName: "北京", provinceName: "北京", cityCode: "101010100", //天气预报城市代码 zipCode: "100000", //邮编 telAreaCode: "010" //电话区号 } }注意: 提交含有中文字符的URL时需要进行URL编码不然无法正常获取数据,并且返回数据是UniCode编码的,注意转换。百度虽然稳定,遗憾的是没有天气符号,不过我们可以通过上面提到过新浪的接口获取。
8. 中国天气网 (网页插件型)
8.1 简介
官方文档: http://www.tianqi.com/plugin/
示例: http://i.tianqi.com/index.php?c=code&id=12&icon=1&py=guangzhou&num=5
天气网(www.tianqi.com )天气插件接口 服务地址:http://i.tianqi.com/index.php | |||||
参数名 | 类型 | 是否必须 | 默认值 | 描述 | 备注 |
c | string | 是 | 无 | 获取方式,设置为"code",表示获取代码。 | |
id | dword | 是 | 无 | 模板样式,建议设置为19 | |
icon | dword | 否 | 1 | 图标样式,范围1-5 | |
py | string | 否 | 客户 | 地方名全拼,默认为客户地方。 | |
num | dword | 否 | 5 | 预报天数 |
8.2 智能未来五天天气预报:http://i.tianqi.com/index.php?c=code&id=19
返回数据:
height="120" src="http://i.tianqi.com/index.php?c=code&id=19&icon=1&temp=1&num=5" frameborder="0" width="800" allowtransparency="" scrolling="no" style="color: rgb(50, 50, 50); font-family: 微软雅黑, Arial, Helvetica, sans-serif; font-size: 14px;">
不定时更新中。。。。
@2014-2015 nohacks.cn 版权所有,转载请注明出处