关于中国天气(Weather.com.cn)天气查询,谷歌雅虎天气弱爆了

最近关注了下天气API方面的东西,最初也是从谷歌和雅虎天气入手,说下这两个天气出现的问题,雅虎天气的问题是你获得的数据都是英文,谷歌天气的问题是你查询的时候必须告诉他城市的拼音名或者城市id什么的,不能通过汉字直接查,有一个小发现共享下,搜狐的查ip时返回的城市id,可以直接用于谷歌天气查询,另外貌似公认的谷歌天气不够全面。 好吧,最后我选择了用中国天气(Weather.com.cn),中国天气 这个网站的数据还是非常全面的,还都是中文的。下面是他的数据获取方式:

城市id获取方式: 1. 访问http://m.weather.com.cn/data5/city.xml?level=0,(后面level参数可省略)得到一级列表(省、 直辖市、自治区),结果用逗号隔开,id和城市名称使用竖线“”隔开;结果示例如下: 01北京,02上海,03天津,04重庆,05黑龙江,06吉林,07辽宁,08内蒙古,09河北,10山西,11陕西,12山 东,13新疆,14西藏,15青海,16甘肃,17宁夏…(以下省略) 2. 访问http://m.weather.com.cn/data5/city01.xml?level=1,(后面level参数可省略)得到二级列表。 其中01是一级省市的id,结果格式和上一层相同; 3. 访问http://m.weather.com.cn/data5/city0101.xml?level=2,(后面level参数可省略)得到三级列 表。0101是地级市的id,示例如下(北京): 010101北京,010102海淀,010103朝阳,010104顺义,010105怀柔,010106通州,010107昌平…(以下省略) 4. 访问http://m.weather.com.cn/data5/city010101.xml?level=3,(后面level参数可省略)得到最 后一级的id,010101是区域的id,示例如下(北京市区): 010101101010100 ,后面的数字就是获得天气数据需要的城市id,以http://m.weather.com.cn/data/{id}.html格式访问即可得出天气结果。

但是,这个网站也有一个蛋疼的问题,就是 这个网站只在主域名下有crossdomain.xml文件,即http://weather.com.cn/crossdomain.xml ,在m.weather.com.cn却没有,但是这却不影响其他语言访问,使用js或者php之类的都可以访问,既然AS3不能直接访问,就只好用其他语言中转下咯,比如,可以先从AS3访问php,php将访问weather.com.cn获得的数据返回给AS3。   延伸阅读:http://7timer.y234.cn/doc.php?lang=zh-CN#api (另一个天气API)