现在关于天气预报的手机应用是非常的多,包括那些非常著名的应用(我就不指名了,大家应该都用过),我就纳了闷了,一个预报天气的应用把天气好好的预报了就得了呗,非得加那么多没有用的功能,弄得应用本身越来越臃肿,而且速度越来越慢,你们到底要干什么吗?
于是准备自己做一个专注天气预报的应用程序。
首先要解决的就是关于天气数据来源的问题。现在关于天气的 API 很多,不过,得到的数据要么是太少,要么就是不完全。于是我就准备自己从权威网站上抓取数据,从而获得天气信息。
于是乎,我就选取了从 “中国天气网 -
www.weather.com.cn” 获取数据。也许天气数据可能关乎国家安全(网上有人是这么说的啊~~~嘿嘿!),所以权威网站一般都不直接提供天气的 API,于是我就自己分析了一下该网站的,得到了如下一些 API,有了这些 API,我就可以取得任何城市的天气信息了。
API 如下:
1. 获取中图首都,直辖市,自治区,省会信息(provid):
http://www.weather.com.cn/data/city3jdata/china.html
2. 获取市,地区信息(districtid):
http://www.weather.com.cn/data/city3jdata/provshi/[provid].html
例如:
http://www.weather.com.cn/data/city3jdata/provshi/10107.html
3. 获取区信息(cityid):
若 provid 为 "10101 北京","10102 上海","10103 天津","10104 重庆",则获取区的 API 为
http://www.weather.com.cn/data/city3jdata/station/[provid]00.html
例如:
http://www.weather.com.cn/data/city3jdata/station/1010100.html
其它情况,API 为
http://www.weather.com.cn/data/city3jdata/station/[provid][districtid].html
例如:
http://www.weather.com.cn/data/city3jdata/station/1010702.html
4. 获取天气信息:
若 provid 为 "10101 北京","10102 上海","10103 天津","10104 重庆",则获取天气的 API 为
http://www.weather.com.cn/weather/[provid][cityid]00.shtml
例如:
http://www.weather.com.cn/weather/101010200.shtml
其它情况,API 为
http://www.weather.com.cn/weather/[provid][districtid][cityid].shtml
例如:
http://www.weather.com.cn/weather/101070201.shtml
根据以上 API 结合 GPS 信息,就可以获取任何城市的天气信息了。
大功告成!
分享到:
相关推荐
ECMWF(European Centre for Medium-Range Weather Forecasts,欧洲中期天气预报中心)是一个国际组织,专注于大气科学和气象预测,提供全球最精确的气象预报数据。`ecmwf-api-client-python.tgz` 是一个针对Python...
标题中的“PILOTS-FS.Global.Real.Weather.v1.7-003.rar”似乎是一款针对飞行模拟软件的天气插件。这个插件的名称暗示了它提供了全球真实天气的功能,版本号为v1.7-003,表明这是该软件的一个更新版本,可能包含错误...
在`sitka_weather_07-2014.csv`中,我们可能找到关于Sitka(一个美国阿拉斯加州的城市)2014年7月的天气记录。分析这样的数据可以涉及多种统计和可视化方法。例如,我们可以计算平均温度、最高温度、最低温度,或者...
标题 "yahoo_weather-5.x-1.x-dev.tar.gz" 暗示这是一款与Yahoo天气相关的模块,适用于Drupal 5.x版本的1.x开发分支。这个压缩包是用于软件开发和部署的,其中包含了该模块的源代码和其他相关资源。 在Drupal中,...
本文将深入探讨一个基于Swift语言开发的天气预报App——"Weather-master",它允许用户查询国内外城市的天气信息,包括温度、风速等关键指标,并配备了直观的界面展示。 一、项目概述 "Weather-master.zip"是一个...
标题 "gsm-weather-s3-simulator-master.zip" 暗示这可能是一个与GSM(全球系统移动通信)相关的项目,特别是一个用于模拟天气数据并可能与Amazon S3(简单存储服务)交互的模拟器。这个压缩包的主目录名暗示了它是...
微信小程序提供了丰富的API接口,如网络请求(`wx.request`)、地理位置(`wx.getLocation`)和天气查询(可能是`wx.request`调用特定天气API)。在`wxWeather-master`中,可能会有一个网络请求相关的JS文件,用于...
"weatherApi-源码.rar" 是一个包含开源天气API项目的压缩包,我们主要关注的是其中的"weatherApi-master"目录,它可能包含了这个API服务的完整源代码。在本文中,我们将深入探讨这个项目的结构、功能以及关键知识点...
《Weather Icons 2.0.12:丰富的天气主题图标库》 在现代网页设计和开发中,图标扮演着至关重要的角色,它们可以直观地传达信息,提升用户体验。Weather Icons 2.0.12 是一个专为天气、海事和气象应用设计的图标...
【前端项目-weather-icons.zip】是一个包含215个天气主题图标的前端资源包,它受到了Font Awesome设计风格的影响,并且完全适配Bootstrap框架。这个项目对于任何需要在网页或应用中展示各种天气状态的开发者来说,都...
微信小程序开发的天气预报weather-master.zip
【标题】"前端项目-open-weather.zip"是一个包含前端开发元素的压缩包,它提供了一个简单且轻量级的jQuery插件,目的是利用OpenWeathermap API来展示任意城市的实时天气信息。这个插件使得开发者能够方便地在他们的...
matlab批量获取全国各城市实时天气数据函数-weather.m 本帖最后由 gasongjian 于 2013-10-27 17:12 编辑 matlab 批量获取全国各城市实时天气数据函数(matlab2011b) 下面的代码是独立的函数,可根据城市id...
开源项目-guitmz-go-weather-indicator.zip,GTK weather indicator I wrote in GoLang, hope you find it interesting
7. **API调用**:可能有一个单独的文件(如`api.js`)封装天气API的调用,如OpenWeatherMap,以获取城市天气数据。 8. **路由配置**:如果应用有多个页面,可能会使用React Router来处理导航和URL匹配。 9. **配置...