利用中央气象台的天气预报API实现天气预报


中国天气网AIP:http://smart.weather.com.cn/wzfw/smart/index.shtml

转自:http://blog.163.com/yuanzhf_2012/blog/static/2112011482012929454663/

今天突然要做一个天气预报的应用,上网搜了一下,发现可用的api其实挺多的,包括谷歌、雅虎、中央气象台等等。
谷歌的天气预报的 优点在于可以直接获取支持查询天气的国家和城市。并且可以预报4天天气,支持经纬度查询天气(这个可以利用GPS做应用)。 缺点也是惊人的:支持的中国城市比较少。
雅虎的天气预报返回的是xml数据,我需要的是json数据,所以也没什么好感。
最终还是决定使用中央气象台的。中央喔,好像很牛B的样子。
该api获取天气的接口如下:
http://www.weather.com.cn/data/sk/101281601.html 
http://www.weather.com.cn/data/cityinfo/101281601.html 
http://m.weather.com.cn/data/101281601.html  
3种返回的数据稍微有些不同,至于使用哪一种,看个人喜欢吧~~
值得说明的是101281601是城市在中央气象台数据库中城市码,获取的方法有些麻烦,有以下几个步骤:
1. 通过  http://m.weather.com.cn/data5/city.xml 获取省份列表;
2. 通过  http://m.weather.com.cn/data5/city28.xml 获取该省份的城市列表,其中28为广东省代号,1中所返回的;
3. 通过  http://m.weather.com.cn/data5/city 2816 .xml 获取该城市的区列表,其中2816为东莞市代号,2中所返回的;
4. 通过  http://m.weather.com.cn/data5/city 281601 .xml 获取最后的城市码,其中281601为3中返回;
5. 通过 api获取天气信息;
值得注意的使,上述的这些列表信息虽然文件后缀名未xml,但是里面只是一条字符串,不符合xml的格式,所以,直接用浏览器打开,会显示xml解释出错。。。。
现在需要做的是获取所有城市的城市码,csdn其实有人上传了,不过俺是穷人,下载不了。所以只能自己获取。。。想了一下,其实挺简单的,写个脚本遍历一下所有城市码并存入数据库或者写到文件就行了。
下面是我用php写的脚本:
利用中央气象台的天气预报API实现天气预报 - yuanzhf_2012 - 向前跑跑跑跑跑
 
利用中央气象台的天气预报API实现天气预报 - yuanzhf_2012 - 向前跑跑跑跑跑
 
利用中央气象台的天气预报API实现天气预报 - yuanzhf_2012 - 向前跑跑跑跑跑
 
利用中央气象台的天气预报API实现天气预报 - yuanzhf_2012 - 向前跑跑跑跑跑

然后在终端或者浏览器执行就可以了。
受到网速的影响,数据获取过程可能有点慢。
我的mysql数据库备份已经放到163公共邮箱:
账号:forecast_weather@163.com
密码:weather
不想自己获取数据的娃,直接下载吧。。。 利用中央气象台的天气预报API实现天气预报 - yuanzhf_2012 - 向前跑跑跑跑跑
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值