http://blog.mynook.info/2012/08/18/weather-com-cn-api.html
上次做飞信天气预报的时候简单搜索了一下中国天气网的 API ,当然是没有官方文档的,最初是谁挖掘出来的也不可考了。刚才在增加新功能的时候又顺手搜了一下相关资料,发现这个 API 还真不简单。中国天气网有三个 API 适用与不同场合的使用。
http://m.weather.com.cn/data/101050101.html 这个接口返回的格式如下。
{
"weatherinfo": {
"city": "哈尔滨", // 城市中文名
"city_en": "haerbin", // 城市英文名
"date_y": "2012年8月18日", // 发布日期
"date": "", // ?
"week": "星期六", // 周信息
"fchh": "18", // ?
"cityid": "101050101", // 城市ID
"temp1": "18℃~26℃", // 今日气温
"temp2": "17℃~29℃", // 明日气温
"temp3": "18℃~23℃", // 第三日气温
"temp4": "13℃~24℃", // 第四日气温
"temp5": "15℃~31℃", // 第五日气温
"temp6": "14℃~32℃", // 第六日气温
"tempF1": "64.4℉~78.8℉", // 今日气温(华氏)
"tempF2": "62.6℉~84.2℉", // 明日气温(华氏)
"tempF3": "64.4℉~73.4℉", // 第三日气温(华氏)
"tempF4": "55.4℉~75.2℉", // 第四日气温(华氏)
"tempF5": "59℉~87.8℉", // 第五日气温(华氏)
"tempF6": "57.2℉~89.6℉", // 第六日气温(华氏)
"weather1": "多云", // 今日天气
"weather2": "晴转多云", // 明日天气
"weather3": "雷阵雨转小雨", // 第三日天气
"weather4": "多云", // 第四日天气
"weather5": "晴", // 第五日天气
"weather6": "晴", // 第六日天气
"img1": "1", // ? 可能是天气图标编号
"img2": "99", // ? 可能是天气图标编号
"img3": "0", // ? 可能是天气图标编号
"img4": "1", // ? 可能是天气图标编号
"img5": "4", // ? 可能是天气图标编号
"img6": "7", // ? 可能是天气图标编号
"img7": "1", // ? 可能是天气图标编号
"img8": "99", // ? 可能是天气图标编号
"img9": "0", // ? 可能是天气图标编号
"img10": "99", // ? 可能是天气图标编号
"img11": "0", // ? 可能是天气图标编号
"img12": "99", // ? 可能是天气图标编号
"img_single": "1", // ? 可能是天气图标编号
"img_title1": "多云", // ? 可能是天气图标对应的 title
"img_title2": "多云", // ? 可能是天气图标对应的 title
"img_title3": "晴", // ? 可能是天气图标对应的 title
"img_title4": "多云", // ? 可能是天气图标对应的 title
"img_title5": "雷阵雨", // ? 可能是天气图标对应的 title
"img_title6": "小雨", // ? 可能是天气图标对应的 title
"img_title7": "多云", // ? 可能是天气图标对应的 title
"img_title8": "多云", // ? 可能是天气图标对应的 title
"img_title9": "晴", // ? 可能是天气图标对应的 title
"img_title10": "晴", // ? 可能是天气图标对应的 title
"img_title11": "晴", // ? 可能是天气图标对应的 title
"img_title12": "晴", // ? 可能是天气图标对应的 title
"img_title_single": "多云", // ? 可能是天气图标对应的 title
"wind1": "西南风小于3级转西风3-4级", // 今日风向风力信息
"wind2": "西风小于3级转西南风3-4级", // 明日风向风力信息
"wind3": "西南风小于3级转3-4级", // 第三日风向风力信息
"wind4": "西南风小于3级转3-4级", // 第四日风向风力信息
"wind5": "西南风小于3级转3-4级", // 第五日风向风力信息
"wind6": "西南风小于3级转3-4级", // 第六日风向风力信息
"fx1": "西南风", // ?
"fx2": "西风", // ?
"fl1": "小于3级转3-4级", // 今日风力信息
"fl2": "小于3级转3-4级", // 明日风力信息
"fl3": "小于3级转3-4级", // 第三日风力信息
"fl4": "小于3级转3-4级", // 第四日风力信息
"fl5": "小于3级转3-4级", // 第五日风力信息
"fl6": "小于3级转3-4级", // 第六日风力信息
"index": "热",
"index_d": "天气较热,建议着短裙、短裤、短套装、T恤等夏季服装。年老体弱者宜着长袖衬衫和单裤。",
"index48": "炎热",
"index48_d": "天气炎热,建议着短衫、短裙、短裤、薄型T恤衫、敞领短袖棉衫等清凉夏季服装。",
"index_uv": "中等", // 紫外线信息
"index48_uv": "弱", // ? 48 小时紫外线信息
"index_xc": "较适宜", // ?
"index_tr": "适宜", // ? 旅游指数
"index_co": "舒适", // ? 舒适指数
"st1": "25",
"st2": "17",
"st3": "28",
"st4": "19",
"st5": "18",
"st6": "16",
"index_cl": "较适宜", // ? 晨练指数
"index_ls": "适宜", // ? 晾晒指数
"index_ag": "极易发"
}
}
上面这个就是我现在在用的,返回的数据最全面,也是绝大多数博客中都会介绍的。另外还有两个接口比较简洁。
http://www.weather.com.cn/data/sk/101010100.html 这个接口返回的数据是下面这样的。
{
"weatherinfo": {
"city": "北京", // 城市中文名
"cityid": "101010100", // 城市 ID
"temp": "24", // 温度
"WD": "西南风", // 风向
"WS": "1级", // 风力
"SD": "92%", // 湿度
"WSE": "1", // ?
"time": "19:15", // ? 发布时间
"isRadar": "1", // ?
"Radar": "JC_RADAR_AZ9010_JB" // ?
}
}
还有一个接口 http://www.weather.com.cn/data/cityinfo/101010100.html 这个接口返回的数据如下。
{
"weatherinfo": {
"city": "北京", // 城市中文名
"cityid": "101010100", // 城市 ID
"temp1": "22℃", // ?
"temp2": "31℃", // ?
"weather": "阴转晴", // 天气
"img1": "n2.gif", // ? 天气图标编号
"img2": "d0.gif", // ? 天气图标编号
"ptime": "18:00" // 发布时间
}
}
另外中国天气网还有一个根据 IP 来判断访问者所在地的引擎,地址在 http://61.4.185.48:81/ ,直接访问的话会提示“This is the geoip engine created for weather.com.cn. ”,访问 http://61.4.185.48:81/g/ 可以返回你的 IP 所在地相应信息,包括 IP 和城市编号,但是没有城市名称。