天气预报一直是各大网站的一个基本功能,最近小编也想在网站上弄一个,得瑟一下,在网络搜索了很久,终于找到了开源免费的天气预报接口API以及全国所有地区代码(国家气象局提供),具体如下:
国家气象局提供的天气预报接口
- 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
城市的编号
其中101010100表示每个城市的编号,编号代码获取获取地址
- 获取省级代码: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 就可以获取当地天气。
图片接口
用过上面的api返回的数据中包含有图片名字可以通过一下地址访问
- http://m.weather.com.cn/img/c0.gif
- http://m.weather.com.cn/img/b0.gif
- http://www.weather.com.cn/m/i/weatherpic/29×20/d0.gif
- http: //www.weather.com.cn/m2/i/icon_weather/29×20/n00.gif
这个图就是天气现象0(晴)的 图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,29*20像素,n打头的是夜 间反白图标,29*20像素,注意这里的文件名是两位数字!
解析数据
国家气象局提供的天气预报接口返回的是json数据,如果是php可以使用json_decode()转换为数组,遍历数组去除数据即可。