根据中国气象局提供的API接口实现天气查询
中国气象局提供了三个天气查询的API接口:
【1】http://www.weather.com.cn/data/sk/101190101.html
【2】http://www.weather.com.cn/data/cityinfo/101190101.html
【3】http://m.weather.com.cn/data/101190101.html
以json格式返回数据,第一和第二个接口返回当天实时的天气数据,第三个返回未来五天天气情况。
其中地址里的加粗显示的数字表示城市的代码:101190101 代表南京(获取城市代码的方法下面会说明)
第三个接口的返回数据示例及说明如下:
- {
- weatherinfo: {
- city: "南京",
- city_en: "nanjing",
- date_y: "2013年9月8日",
- date: "",
- week: "星期日",
- fchh: "18",
- cityid: "101190101", //城市代码
- temp1: "22℃~30℃", //第一天(当天)最高喝最低温度(摄氏温度)
- temp2: "23℃~29℃", //第二天最高喝最低温度(摄氏温度)
- temp3: "22℃~28℃", //第三天最高喝最低温度(摄氏温度)
- temp4: "23℃~30℃", //第四天最高喝最低温度(摄氏温度)
- temp5: "24℃~28℃", //第五天最高喝最低温度(摄氏温度)
- temp6: "23℃~28℃", //第六天最高喝最低温度(摄氏温度)
- tempF1: "71.6℉~86℉", //第一天(当天)最高喝最低温度(华氏温度)
- tempF2: "73.4℉~84.2℉", //第二天最高喝最低温度(华氏温度)
- tempF3: "71.6℉~82.4℉", //第三天最高喝最低温度(华氏温度)
- tempF4: "73.4℉~86℉", //第四天最高喝最低温度(华氏温度)
- tempF5: "75.2℉~82.4℉", //第五天最高喝最低温度(华氏温度)
- tempF6: "73.4℉~82.4℉", //第六天最高喝最低温度(华氏温度)
- weather1: "多云转阴", //第一天(当天)天气
- weather2: "小雨", //第二天天气
- weather3: "小雨",
- weather4: "阴",
- weather5: "小雨转中雨",
- weather6: "中雨转阴",
- img1: "1", //第一天的天气图片代码1
- img2: "2", //第一天的天气图片代码2
- img3: "7", //第二天的天气图片代码1
- img4: "99", //第二天的天气图片代码2
- img5: "7",
- img6: "99",
- img7: "2",
- img8: "99",
- img9: "7",
- img10: "8",
- img11: "8",
- img12: "2",
- img_single: "2"
- img_title1: "多云", //第一天的天气图片1的标题
- img_title2: "阴", //第一天的天气图片2的标题
- img_title3: "小雨", //第二天的天气图片1的标题
- img_title4: "小雨", //第二天的天气图片2的标题
- img_title5: "小雨",
- img_title6: "小雨",
- img_title7: "阴",
- img_title8: "阴",
- img_title9: "小雨",
- img_title10: "中雨",
- img_title11: "中雨",
- img_title12: "阴",
- img_title_single: "阴",
- wind1: "东风3-4级", //第一天风向范围
- wind2: "东风3-4级", //第二天风向范围
- wind3: "北风转东北风3-4级",
- wind4: "东北风3-4级",
- wind5: "东北风转西风3-4级",
- wind6: "西南风转西风3-4级",
- fx1: "东风",
- fx2: "东风",
- fl1: "3-4级", //第一天风级范围
- fl2: "3-4级",
- fl3: "3-4级",
- fl4: "3-4级",
- fl5: "3-4级",
- fl6: "3-4级",
- index: "热", //二十四小时穿衣指数
- index_d: "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。", //建议
- index48: "热", //四十八小时穿衣指数
- index48_d: "天气热,建议着短裙、短裤、短薄外套、T恤等夏季服装。", //建议
- index_uv: "弱", //二十四小时紫外线
- index48_uv: "弱", //四十八小时紫外线
- index_xc: "不宜", //洗车
- index_tr: "适宜", //旅游
- index_co: "较舒适", //舒适度
- st1: "30",
- st2: "20",
- st3: "27",
- st4: "19",
- st5: "26",
- st6: "18",
- index_cl: "较适宜", //晨练
- index_ls: "不太适宜", //晾晒
- index_ag: "极易发" //过敏
- }
- }
获取城市代码的方法:
1.首先获取省份列表
http://www.weather.com.cn/data/city3jdata/china.html
这个链接以json格式返回一个包含省份代码和省份名称的数组
- {
- 10101: "北京",
- 10102: "上海",
- .... ,
- 10119: "江苏",
- }
2.通过上面获得的省份代码获取城市列表:
如江苏的城市代码为:10119,通过下面的链接可以获得江苏省的城市列表
http://www.weather.com.cn/data/city3jdata/provshi/10119.html
- {
- 10: "连云港",
- 11: "常州",
- ...
- 01: "南京",
- }
3.获取城市下的区域信息
通过上一步可获取城市代码 如:南京为 01
把01接到第一步获得的省份代码后 获得 1011901 代表江苏省南京市
通过下面的链接可获取江苏省南京市的区域信息,加粗部分为刚刚生成的代码
http://www.weather.com.cn/data/city3jdata/station/1011901.html
- {
- 01: "南京",
- 02: "溧水",
- 03: "高淳",
- 04: "江宁",
- 05: "六合",
- 06: "江浦",
- 07: "浦口"
- }
4.获取区域代码
把上面获得的区域代码如:01(代表南京市区) 接到第三步获得的江苏省南京市的代码 1011901
得到 101190101 代表江苏省南京市南京市区的代码。
这串代码就是我们需要的。
http://m.weather.com.cn/data/101190101.html
放到这个链接里我们就能获得江苏省南京市南京市区的天气信息啦!
该接口可以应用在微信公众平台,扫描下面的二维码或者搜索公众平台号xiaopihailaotou可以可以关注和体验作者写的微信公众号
根据中国气象局提供的API接口实现天气查询的更多相关文章
- 【转】根据中国气象局提供的API接口实现天气查询
本文转载自 老三 的 三叶草 中国气象局提供了三个天气查询的API接口: [1]http://www.weather.com.cn/data/sk/101190101.html [2]http://w ...
- PHP调用API接口实现天气查询功能
天气预报查询接口API,在这里我使用的是国家气象局天气预报接口 使用较多的还有:新浪天气预报接口.百度天气预报接口.google天气接口.Yahoo天气接口等等. 1.查询方式 根据地名查询各城市天气 ...
- Django FBV CBV以及使用django提供的API接口
FBV 和 CBV 使用哪一种方式都可以,根据自己的情况进行选择 看看FBV的代码 URL的写法: from django.conf.urls import url from api import v ...
- ASP.NET获取百度地图提供的API接口里面的JSON
思路:开始是想直接在前台获取,但是跨域访问还是有点难度,而且格式必须是josnp格式的,最后嫌麻烦,不得已放弃. 我做的ASP.NET 而这个有自带的解析类,直接引用就行了 先在后台获取到JOSN: ...
- springcloud提供开放api接口签名验证
一.MD5参数签名的方式 我们对api查询产品接口进行优化: 1.给app分配对应的key.secret 2.Sign签名,调用API 时需要对请求参数进行签名验证,签名方式如下: a. 按照请求参数 ...
- 微信小程序+OLAMI(欧拉蜜)自然语言API接口制作智能查询工具--快递、聊天、日历等
微信小程序最近比较热门,再加上自然语义理解也越来越被人关注,于是我想赶赶潮流,做一个小程序试试.想来想去快递查询应该是一种比较普遍的需求. 如果你也在通过自然语言接口做点什么,希望我的这篇博客能帮到你 ...
- 如何利用Skyline的TerraExplorer Pro 6.5提供的API接口实现矢量图层数据的动态投影
Skyline 支持国内常见的地图投影坐标系,包括WGS84.Beijing54.西安80.2000坐标系等,也可以自定义坐标系,比如一些做过参数变换加密的坐标系等. <!DOCTYPE htm ...
- api接口写好了?想过(Accept,Content-Type)?返回类型json|xml?
api接口写好了?想过(Accept,Content-Type)?返回类型json|xml? 起因: - A,B. A调用B提供的api接口. - A:为毛你的接口返回的是xml格式的(浏览器访问)? ...
- 伟大的淘宝IP库的API接口竟然提示503挂掉了
1 淘宝IP库惊现503错误 吃完晚饭,大概6点半了,天色已暗,太阳早就落山了.回到宿舍打开博客一看,傻眼了:博客每篇文章的评论者的地理信息全部处于“正在查询中……”的状态.这神马情况,不会是被淘宝封 ...
随机推荐
- C#中Json和List/DataSet相互转换
#region List<T> 转 Json /// <summary> /// List<T> 转 Json /// & ...
- hadoop浅尝 hadoop与hbase交互
在安装好hbase之后,运行一个与hadoop无关的纯hbase程序成功了. 接着写一个hadoop与hbase进行交互的小程序,这个程序的运行方法依然与前文相同, 即导出jar文件在shell下运行 ...
- HDU 1227 Fast Food (DP)
题目链接 题意 : 有n个饭店,要求建k个供应点,要求每个供应点一定要建造在某个饭店的位置上,然后饭店都到最近的供应点拿货,求出所有饭店到最近的供应点的最短距离. 思路 : 一开始没看出来是DP,后来 ...
- SDUT2484算术表达式的转换
http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2484&cid=1182 题目描述 小明在学习了数据结构之后,突然想起了以前没有解决的算术 ...
- Servlet 各种path路径比较
假定你的web application 名称为news,你在浏览器中输入请求路径: http://localhost:8080/news/main/list.jsp 则执行下面向行代码后打印出如下结果 ...
- ubuntu安装google 输入法
12.04 LTS Precise sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 sudo apt-get in ...
- QAQ高精度模板笔记√
#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #i ...
- cojs 简单的求和问题 解题报告
一个上午写了两个数据生成器,三个暴力和两个正解以及一个未竣工的伪正解思路 真是累死本宝宝了 首先这个题目暴力我的数据是有很多良心分的 但是不同的暴力拿到的分数也会有所差距,由于是题解就不说暴力怎么写了 ...
- C内存分配函数
C语言跟内存分配方式(1) 从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量.(2) 在栈上创建.在执行函数时,函数内局部变量的 ...
- 写Java程序要体现面向对象
对于之前写的一篇文章现在想想存在不足之处,之前写的测试ArrayList和LinkedList的各项操作性能比较的程序没有体现面向对象的封装特性,所以,今天把代码重新写了一遍,其实改动的地 ...