天气预报API(六):中国气象频道、腾讯天气--“新编码”接口的测试
说明
本文所有测试均以青岛为例。
本文所列接口城市代码(cityid)参数都使用的 “新编码”:
全国城市代码列表(新)
本文接口均不是官方接口,仅供测试使用!
腾讯天气
空气质量指数 (aqi)
http://weather.gtimg.cn/aqi/01012310.json?callback=
返回unicode字符编码,并且数值是浮点数;
- [
- {
- "pm2_5": 0,
- "primary_pollutant": null,
- "co": 0.3,
- "pm10": 0,
- "area": "青岛",
- "o3_8h": 82,
- "o3": 83,
- "o3_24h": 92,
- "station_code": "1307A",
- "quality": "优",
- "co_24h": 0.4,
- "no2_24h": 5,
- "so2": 36,
- "so2_24h": 37,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 0,
- "position_name": "仰口",
- "o3_8h_24h": 87,
- "aqi": 26,
- "pm10_24h": 0,
- "no2": 4
- },
- {
- "pm2_5": 54,
- "primary_pollutant": "细颗粒物(PM2.5)",
- "co": 1.1,
- "pm10": 89,
- "area": "青岛",
- "o3_8h": 20,
- "o3": 4,
- "o3_24h": 61,
- "station_code": "1308A",
- "quality": "良",
- "co_24h": 0.6,
- "no2_24h": 52,
- "so2": 61,
- "so2_24h": 27,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 33,
- "position_name": "李沧区子站",
- "o3_8h_24h": 61,
- "aqi": 74,
- "pm10_24h": 60,
- "no2": 88
- },
- {
- "pm2_5": 40,
- "primary_pollutant": "细颗粒物(PM2.5)",
- "co": 0.8,
- "pm10": 0,
- "area": "青岛",
- "o3_8h": 33,
- "o3": 12,
- "o3_24h": 63,
- "station_code": "1309A",
- "quality": "良",
- "co_24h": 0.5,
- "no2_24h": 33,
- "so2": 25,
- "so2_24h": 30,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 27,
- "position_name": "市北区子站",
- "o3_8h_24h": 61,
- "aqi": 57,
- "pm10_24h": 66,
- "no2": 48
- },
- {
- "pm2_5": 13,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 0.5,
- "pm10": 67,
- "area": "青岛",
- "o3_8h": 22,
- "o3": 12,
- "o3_24h": 51,
- "station_code": "1310A",
- "quality": "良",
- "co_24h": 0.4,
- "no2_24h": 57,
- "so2": 11,
- "so2_24h": 9,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 12,
- "position_name": "市南区东部子站",
- "o3_8h_24h": 43,
- "aqi": 59,
- "pm10_24h": 59,
- "no2": 89
- },
- {
- "pm2_5": 45,
- "primary_pollutant": "细颗粒物(PM2.5)",
- "co": 1.3,
- "pm10": 59,
- "area": "青岛",
- "o3_8h": 34,
- "o3": 13,
- "o3_24h": 68,
- "station_code": "1311A",
- "quality": "良",
- "co_24h": 1,
- "no2_24h": 50,
- "so2": 23,
- "so2_24h": 25,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 29,
- "position_name": "四方区子站",
- "o3_8h_24h": 68,
- "aqi": 63,
- "pm10_24h": 57,
- "no2": 77
- },
- {
- "pm2_5": 30,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 0.8,
- "pm10": 61,
- "area": "青岛",
- "o3_8h": 41,
- "o3": 18,
- "o3_24h": 62,
- "station_code": "1312A",
- "quality": "良",
- "co_24h": 0.6,
- "no2_24h": 45,
- "so2": 26,
- "so2_24h": 25,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 23,
- "position_name": "市南区西部子站",
- "o3_8h_24h": 56,
- "aqi": 56,
- "pm10_24h": 55,
- "no2": 77
- },
- {
- "pm2_5": 37,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 0.7,
- "pm10": 60,
- "area": "青岛",
- "o3_8h": 38,
- "o3": 20,
- "o3_24h": 58,
- "station_code": "1313A",
- "quality": "良",
- "co_24h": 0.5,
- "no2_24h": 33,
- "so2": 37,
- "so2_24h": 26,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 20,
- "position_name": "崂山区子站",
- "o3_8h_24h": 52,
- "aqi": 55,
- "pm10_24h": 35,
- "no2": 65
- },
- {
- "pm2_5": 42,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 0.6,
- "pm10": 122,
- "area": "青岛",
- "o3_8h": 97,
- "o3": 93,
- "o3_24h": 106,
- "station_code": "1314A",
- "quality": "良",
- "co_24h": 0.5,
- "no2_24h": 60,
- "so2": 32,
- "so2_24h": 31,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 32,
- "position_name": "黄岛区子站",
- "o3_8h_24h": 100,
- "aqi": 86,
- "pm10_24h": 85,
- "no2": 79
- },
- {
- "pm2_5": 65,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 2.1,
- "pm10": 146,
- "area": "青岛",
- "o3_8h": 41,
- "o3": 13,
- "o3_24h": 79,
- "station_code": "1315A",
- "quality": "良",
- "co_24h": 1,
- "no2_24h": 37,
- "so2": 56,
- "so2_24h": 38,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 34,
- "position_name": "城阳区子站",
- "o3_8h_24h": 67,
- "aqi": 98,
- "pm10_24h": 66,
- "no2": 71
- },
- {
- "pm2_5": 40,
- "primary_pollutant": "颗粒物(PM10)",
- "co": 0.911,
- "pm10": 86,
- "area": "青岛",
- "o3_8h": 45,
- "o3": 29,
- "o3_24h": 71,
- "station_code": null,
- "quality": "良",
- "co_24h": 0.611,
- "no2_24h": 41,
- "so2": 34,
- "so2_24h": 27,
- "time_point": "2016-12-10T22:00:00Z",
- "pm2_5_24h": 26,
- "position_name": null,
- "o3_8h_24h": 66,
- "aqi": 69,
- "pm10_24h": 60,
- "no2": 66
- }
- ]
城市AQI 排名
http://weather.gtimg.cn/aqi/cityrank.json?callback=cityrank
返回unicode字符编码,并且数值是浮点数;
返回json array 类型,这里只是截图显示下结构:
城市基本天气信息
http://weather.gtimg.cn/city/01012310.js
这个js文件不是纯json格式,需要处理一下才能使用
var __weather_city = {"bi_name": "青岛", "zs_xc": "2", "h3": {"rt": "2016-12-10 20:00:00", "0": [{"wd": "4", "ts": "2016-12-10 23:00:00", "tp": "2", "wkd": "6", "wt": "00", "wp": "0", "te": "2016-12-11 2:00:00"}, {"wd": "4", "ts": "2016-12-11 2:00:00", "tp": "2", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 5:00:00"}, {"wd": "4", "ts": "2016-12-11 5:00:00", "tp": "2", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 8:00:00"}, {"wd": "4", "ts": "2016-12-11 8:00:00", "tp": "3", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 11:00:00"}, {"wd": "4", "ts": "2016-12-11 11:00:00", "tp": "7", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 14:00:00"}, {"wd": "4", "ts": "2016-12-11 14:00:00", "tp": "8", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 17:00:00"}, {"wd": "4", "ts": "2016-12-11 17:00:00", "tp": "7", "wkd": "7", "wt": "00", "wp": "0", "te": "2016-12-11 20:00:00"}, {"wd": "4", "ts": "2016-12-11 20:00:00", "tp": "8", "wkd": "7", "wt": "00", "wp": "1", "te": "2016-12-11 23:00:00"}, {"wd": "4", "ts": "2016-12-11 23:00:00", "tp": "8", "wkd": "7", "wt": "00", "wp": "1", "te": "2016-12-12 2:00:00"}, {"wd": "4", "ts": "2016-12-12 2:00:00", "tp": "8", "wkd": "1", "wt": "00", "wp": "0", "te": "2016-12-12 5:00:00"}, {"wd": "4", "ts": "2016-12-12 5:00:00", "tp": "9", "wkd": "1", "wt": "00", "wp": "0", "te": "2016-12-12 8:00:00"}, {"wd": "4", "ts": "2016-12-12 8:00:00", "tp": "9", "wkd": "1", "wt": "00", "wp": "0", "te": "2016-12-12 11:00:00"}, {"wd": "8", "ts": "2016-12-12 11:00:00", "tp": "10", "wkd": "1", "wt": "02", "wp": "1", "te": "2016-12-12 14:00:00"}, {"wd": "8", "ts": "2016-12-12 14:00:00", "tp": "10", "wkd": "1", "wt": "03", "wp": "0", "te": "2016-12-12 17:00:00"}, {"wd": "8", "ts": "2016-12-12 17:00:00", "tp": "9", "wkd": "1", "wt": "03", "wp": "0", "te": "2016-12-12 20:00:00"}, {"wd": "8", "ts": "2016-12-12 20:00:00", "tp": "8", "wkd": "1", "wt": "03", "wp": "0", "te": "2016-12-12 23:00:00"}]}, "zs_cy": "7", "zs_rt": "2016-12-10 8:00:00", "zs_zs": "0", "zs_kqwr": "2", "zs_gj": "1", "zs_xq": "2", "zs_gm": "1", "zs_pj": "1", "zs_cl": "3", "zs_ysh": "2", "sk_vb": "NULL", "zs_lk": "1", "zs_kt": "5", "sk_ws": "1.4", "bi_sid": "54857", "zs_dy": "2", "sk_ps": "1022", "sk_tp": "3", "zs_mf": "2", "bi_cid": "01012310", "zs_yd": "3", "sk_wda": "98", "news_txt": [{"rt": "2014-5-11 9:30:00", "ac": "青岛市气象台2014年05月11日09时30分发布大雾黄色预警信号:目前我市沿海地区已出现能见度小于500米的大雾,预计今天白天雾仍将持续,请注意防范。", "pv": "山东省", "url": "http://3g.mywtv.cn", "uv": "http://mobile.mywtv.cn/video20/zhaowen3_android.3gp", "al": "黄色", "cny": "", "at": "大雾", "ulc": "更多预警信息点击...", "rlt": "", "ds": "青岛市"}], "wk": {"rt": "2016-12-10 20:00:00", "0": [{"wd": "4", "tmin": "2", "tmax": "NULL", "wkd": "6", "ts": "2016-12-10 20:00:00", "wt": "00", "wp": "1", "te": "2016-12-11 8:00:00"}, {"wd": "4", "tmin": "NULL", "tmax": "9", "wkd": "6", "ts": "2016-12-11 8:00:00", "wt": "00", "wp": "1", "te": "2016-12-11 20:00:00"}, {"wd": "4", "tmin": "7", "tmax": "NULL", "wkd": "7", "ts": "2016-12-11 20:00:00", "wt": "00", "wp": "1", "te": "2016-12-12 8:00:00"}, {"wd": "8", "tmin": "NULL", "tmax": "11", "wkd": "7", "ts": "2016-12-12 8:00:00", "wt": "00", "wp": "1", "te": "2016-12-12 20:00:00"}, {"wd": "8", "tmin": "4", "tmax": "NULL", "wkd": "1", "ts": "2016-12-12 20:00:00", "wt": "03", "wp": "1", "te": "2016-12-13 8:00:00"}, {"wd": "8", "tmin": "NULL", "tmax": "5", "wkd": "1", "ts": "2016-12-13 8:00:00", "wt": "03", "wp": "3", "te": "2016-12-13 20:00:00"}, {"wd": "8", "tmin": "-2", "tmax": "NULL", "wkd": "2", "ts": "2016-12-13 20:00:00", "wt": "00", "wp": "3", "te": "2016-12-14 8:00:00"}, {"wd": "8", "tmin": "NULL", "tmax": "2", "wkd": "2", "ts": "2016-12-14 8:00:00", "wt": "00", "wp": "2", "te": "2016-12-14 20:00:00"}, {"wd": "8", "tmin": "-2", "tmax": "NULL", "wkd": "3", "ts": "2016-12-14 20:00:00", "wt": "00", "wp": "2", "te": "2016-12-15 8:00:00"}, {"wd": "8", "tmin": "NULL", "tmax": "4", "wkd": "3", "ts": "2016-12-15 8:00:00", "wt": "00", "wp": "2", "te": "2016-12-15 20:00:00"}, {"wd": "8", "tmin": "-1", "tmax": "NULL", "wkd": "4", "ts": "2016-12-15 20:00:00", "wt": "00", "wp": "2", "te": "2016-12-16 8:00:00"}, {"wd": "4", "tmin": "NULL", "tmax": "5", "wkd": "4", "ts": "2016-12-16 8:00:00", "wt": "00", "wp": "2", "te": "2016-12-16 20:00:00"}, {"wd": "4", "tmin": "1", "tmax": "NULL", "wkd": "5", "ts": "2016-12-16 20:00:00", "wt": "00", "wp": "2", "te": "2016-12-17 8:00:00"}, {"wd": "4", "tmin": "NULL", "tmax": "8", "wkd": "5", "ts": "2016-12-17 8:00:00", "wt": "00", "wp": "2", "te": "2016-12-17 20:00:00"}]}, "sk_rt": "2016-12-10 23:50:00", "zs_fs": "3", "zs_yh": "2", "zs_zwx": "3", "sk_hd": "54", "zs_ys": "1", "zs_fh": "8", "bi_sr": "06:59", "bi_ss": "16:44", "bi_lat": "36.088", "zs_ly": "3", "zs_te": "2016-12-11 8:00:00", "sk_wd": "2", "bi_long": "120.343", "zs_ffz": "3", "zs_ls": "3", "zs_jt": "1", "zs_hz": "1", "sk_wp": "1", "zs_ts": "2016-12-10 8:00:00", "zs_ssd": "1", "sk_wt": "01", "zs_hc": "2"};
中国气象频道
城市天气信息
重要的是Cookie里面的参数
GET /getSkData.do;jsessionid=D83B3F61E769A31DD5141C5BBB267AC8?cityCode=01012310 HTTP/1.1
Host: 3g.tianqi.cn
Accept: application/json, text/javascript, */*; q=0.01
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: Hm_lvt_ce10d82ee6d6df088908bc379b31906d=1481369909; Hm_lpvt_ce10d82ee6d6df088908bc379b31906d=1481387987; cityCode=01012310; cityName=%E9%9D%92%E5%B2%9B
Proxy-Connection: keep-alive
Referer: http://3g.tianqi.cn/index.html
User-Agent: Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920)
X-Requested-With: XMLHttpRequest
- {
- "weather": "00",
- "weatherDecoder": "晴",
- "weatherPic": "images/weatherPng/n00.png",
- "temperature": "3.1",
- "feelTemperature": "3",
- "windDir": "1",
- "windDirDecoder": "东北风",
- "windPower": "0",
- "windPowerDecoder": "微风",
- "windDirAngle": "56",
- "windSpeed": "1",
- "humidity": "52.0",
- "pressure": "1030.1",
- "visibility": "18",
- "sunrise": "06:56",
- "sunset": "16:45",
- "lunar": "12/11 冬月十三 周日",
- "solarTerm": "大雪",
- "publicTime": "23",
- "threeTimea": "今日2时",
- "threeWeatherPica": "images/weatherPng/n01.png",
- "threeWeatherDecodera": "多云",
- "threeWeathera": "3.7",
- "threeTimeb": "今日5时",
- "threeWeatherPicb": "images/weatherPng/n01.png",
- "threeWeatherDecoderb": "多云",
- "threeWeatherb": "4.4",
- "threeTimec": "今日8时",
- "threeWeatherPicc": "images/weatherPng/d02.png",
- "threeWeatherDecoderc": "阴",
- "threeWeatherc": "7.8",
- "threeTimed": "今日11时",
- "threeWeatherPicd": "images/weatherPng/d02.png",
- "threeWeatherDecoderd": "阴",
- "threeWeatherd": "9.3",
- "beans":[],
- "tmax": "6",
- "tmin": "2"
- }
结束语
这里只是提供个入口,是一定有办法获取能看到所有信息的。
具体方法我就不给出了,可以和我交流讨论。