天气API接口大全(nohacks.cn 收集整理)

 2017-09-20 00:37   9852 人阅读  0 条评论

自序:

由nohacks.cn 收集整理,来源于网络,版权归原作者所有,基本收集了网络上能使用的大部分天气API接口,作者水平精力有限,难免有遗漏或错误的地方,欢迎反馈,作者网站:http://nohacks.cn 


更新记录:  

         2015.12.18  增加中国天气网开放数据接口。

         2015.3.2    更新云聚,增加天气网接口。

         2015.2.28  增加百度天气图片,感谢网友彬子的反馈。

         2015. 2.19 增加百度天气接口,更新中国天气网API。

 

目录:

1.  中国天气网

     1.1  实时天气 API 接口(失效)

     1.2  当天天气 API接口(失效)

     1.3 生活指数 API接口(失效)

     1.4 未来五天天气 API 接口(有效,不稳定)

2.   开放数据网天气

      2.1 简介

      2.2. 一天天气 API 接口

      2.3 未来五天天气 API 接口

3.   中国天气&开放数据 综合版

    3.1  实时天气

   3.2  当天天气

   3.3 未来五天

   3.4 生活指数

4.  随身云天气API (推荐)

    4.1 简介

    4.1  简化版 未来6天天气 API接口

     4.2   详细版 未来6天 天气API接口

5. 新浪天气(推荐

     5. 1  简介

     5.2   使用方法

     5.3   天气标志

6. 微云

7. 百度 API

   7.1 获取天气

   7.2 获取城市列表

 8. 天气网 (网页插件型)

      8.1  简介

      8.2 智能未来五天天气

 9. 中国天气网气象数据开放接口


前言:

 1. 城市代码

现在网络上流传的天气API实际上大多最终调用的是中国天气网的数据,而中国天气网是把每个地方分配了一个代码,这个代码就是城市代码,要获取天气,我们需要知道城市代码,有2种方法:

   1.1 手动查询  

       进入 http://www.weather.com.cn

       在搜索框上输入你要需要获得天气的城市,点击查询,即可在地址栏获得相应城市编号,示范:北京的地方代码:101010100

 

   1.2 自动查询

         1.2.1  通过百度API

           http://apistore.baidu.com/microservice/cityinfo?cityname=%e5%8c%97%e4%ba%ac

 

            注意:  "%e5%8c%97%e4%ba%ac"是"北京"的URL编码(UniCode)

 返回格式(UniCode):

{
    "errNum": 0,
    "retMsg": "success",
    "retData": {
        "cityName": "北京",
        "provinceName": "北京",
        "cityCode": "101010100",
        "zipCode": "100000",
        "telAreaCode": "010"
    }
 }

 

 很明显,cityCode的值 "101010100"就是城市代码。

 

2. 天气标志图片

    网络上流传的一些很好用的免费API却没有提供天气标志图片,对有此需求的人里说,不得不说是个遗憾,为了弥补这个遗憾,不得不借助第三方平台配合使用,目前作者使用的是新浪天气平台的数据:

 把天气API获取到的天气标志转换为拼音,比如“多云”,转换为拼音“duoyun“,然后根据下面的规则转换为图片地址:

 

2.1 新浪图片

小图(78*78):  

白天: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_0.png

夜间: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_1.png

大图(180*180) :

白天:http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_0.png

 夜间:http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_1.png 正文:

 

 2.2 百度天气图片

      目前知道的小图,感谢网友彬子的反馈

                    

     多云(白天)          多云(夜间)

白天: http://api.map.baidu.com/images/weather/day/duoyun.png
夜间: http://api.map.baidu.com/images/weather/night/duoyun.png

 

第一节: 中国天气网

1.1 简介 

中国最权威的天气预报网络平台,很多平台实际上也是用的他们的数据。

官方网站:http://www.weather.com.cn

 1.2  地方代码获取方法

        前文已经提过

1.3  实时天气接口

        接口示例:  http://www.weather.com.cn/data/sk/101010100.html  失效

     返回格式:

  
  说明:其中 city 是地方名称,cityid是地方代码,temp是当前温度,"WD"是风向,“WS"是风速”,“SD"是湿度,time是更新时间。

 

    1.4 获取当天天气:

        http://www.weather.com.cn/data/cityinfo/101010100.html  失效

 


       注意:其中 img1和img2是天气标志图片,接口格式如下:

                http://m.weather.com.cn/img/c0.gif
                http://m.weather.com.cn/img/b0.gif
          这个图就是天气现象0(晴)的图片,其他天气现象的图片依此类推。c打头的图片是20*20像素的,b打头的是50*46像素的,d打头的是反白的图标,  29*20像素,n打头的是夜间反白图标,29*20像素,注意这里的文件名是两位数字!

 

  1.5  生活指数:

        http://www.weather.com.cn/data/zs/101010100.html  失效

      返回格式: 文字较多,这里省略,请点击访问。

 

   1.6 获取未来几天天气(有效,不保证稳定)

      http://m.weather.com.cn/atad/101010100.html

 

   图片路径:

    http://i.tq121.com.cn/i/mobile/images/d00.png

    替换方法同上



2. 开放数据 - k780数据

    2.1 简介

       官方网站:http://www.k780.com

       说明: 数据来自国家气象局天气网,每小时更新一次    

       免费版有每小时点击次数的限制(免费版最多每小时720次查询)

 

     2.2   获取今日天气

             详细说明:  http://www.k780.com/api/weather.today

 

返回实例:

 

<?xml version="1.0" encoding="utf-8" ?>
- <root>
  <success>1</success>
- <result>
  <weaid>1</weaid>
  <days>2014-07-30</days>
  <week>星期三</week>
  <cityno>beijing</cityno>
  <citynm>北京</citynm>
  <cityid>101010100</cityid>
  <temperature>29℃/24℃</temperature>
  <humidity>84.2℉/75.2℉</humidity>
  <weather>阴转晴</weather>
  <weather_icon>http://api.k780.com:88/upload/weather/d/2.gif</weather_icon>
  <weather_icon1>http://api.k780.com:88/upload/weather/d/0.gif</weather_icon1>
  <wind>微风</wind>
  <winp>小于3级</winp>
  <temp_high>29</temp_high>
  <temp_low>24</temp_low>
  <humi_high>84.2</humi_high>
  <humi_low>75.2</humi_low>
  <weatid>3</weatid>
  <weatid1>1</weatid1>
  <windid>1</windid>
  <winpid>2</winpid>
  </result>
  </root>


         参数说明:其中 ,wedid 是城市气象编号,与中国天气网编号一致,key和sign是身份验证,注册一个可以换成自己的,上例中的10003是公

众帐号,formt是返回格式,支持 json,xml,除了formt不是必须的以外,其他参数都是必须提供的。

 

  比如 我想获得深圳的今日数据:

  第一步: 首先查询深圳的城市代码

           方法1:通过 http://api.k780.com:88/?app=weather.city&format=xml 查询

           方法2:通过 http://www.weather.com.cn 查询,前面已经提到过。

   经查询,深圳的地方代码是 101280601

 

 第二步: 通过地方代码获取今日天气

          深圳的今天天气数据就是:

        http://api.k780.com:88/?app=weather.today&weaid=101280601&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml

 

  2.3  获取未来五天

      请求示例(Xml)

   

  http://api.k780.com:88/?app=weather.future&weaid=1&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml

 


   转换方法与前面类似,这里就不需要重复了。


3. 综合方案

    3. 1 实时天气

          我们用 :  http://www.weather.com.cn/data/sk/101010100.html

    3.2  今天天气

         2个选择: 

         1.   http://www.weather.com.cn/data/cityinfo/101010100.html 

  

        2.   http://api.k780.com:88/?app=weather.today&weaid=101010100&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml

 

     3.3  未来几天天气

           今天天气及未来五天天气 :

         http://api.k780.com:88/?app=weather.future&weaid=101010100&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=xml

   

    3.4    生活指数

             http://www.weather.com.cn/data/zs/101010100.html

            

 4. 随身云 天气API接口

     4.1 简介

         APP "中华万年历"使用的API接口,查询速度很快,唯一的缺点是没有天气标志图片,提供2个接口,一个简化版,一个详细版,详细说明如下:

      

    4.2 简化版接口

          接口示例(北京): http://wthrcdn.etouch.cn/weather_mini?citykey=101010100

         参数citykey就是设置地方代码,和中国天气网的地方代码一样,替换要查询的地方代码即可,下同。

 

   4.3. 详细版接口


      接口示例: http://wthrcdn.etouch.cn/WeatherApi?citykey=101010100

   
  5. 新浪天气接口 

接口示例:

        http://php.weather.sina.com.cn/xml.php?city=深圳&password=DJOYnieT8234jlsK&day=0

   

       其中,city后是城市名称,Password固定,Day为0表示当天天气,1表示第二天的天气,2表示第三天的天气,以此类推,最大为4

 

图片格式:

         figure1和figure2标签分别代表天气的白天和夜间标志,根据下面的规则转换为具体的路径:

   

 多云的78*78 小图:

         白天: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_0.png 

         夜间: http://php.weather.sina.com.cn/images/yb3/78_78/duoyun_1.png

  多云的 180*180 大图:
          白天:http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_0.png
          夜间:
http://php.weather.sina.com.cn/images/yb3/180_180/duoyun_1.png

 

6.云聚 (功能很多,需收费)

 

    官方文档: http://www.36wu.com/Service/Details/1

 

6.1 实时气象

 

 


参数名 数据类型 是否必须 默认值 描述 备注
district   string     是 城市名称(必须编码)或城市ID 中文字符需编码
output string     否 json 输出格式,json或xml,默认json
authkey string     否 商用或试用的authkey,无authkey参数情况下每小时访问仅限20次,点击申请authkey

 

6.2  IP智能地区实时气象

      示 例:http://api.36wu.com/Weather/GetWeatherByIp?output=xml


参数名 数据类型 是否必须 默认值 描述 备注
iP string 客户端IP 根据ip返回相应地区气象,如果被省略,表示使用客户端IP
output string json 输出格式,json或xml,默认json
authkey string 商用或试用的authkey,无authkey参数情况下每小时访问仅限20次,点击申请authkey

 

 6.3  未来一周气象

 

       示 例: http://api.36wu.com/Weather/GetMoreWeather?district=%E5%8C%97%E4%BA%AC&output=xml 

 

6.4  IP智能地区未来一周气象

 

     示 例:http://api.36wu.com/Weather/GetMoreWeatherByIp?output=xml


6.5 生活气象指数

 

     示 例:http://api.36wu.com/Weather/GetWeatherIndex?district=%E5%8C%97%E4%BA%AC&output=xml

 

6.6  城市列表查询

     示 例:http://api.36wu.com/Weather/GetAreaList?&output=xml

 

  

7. 百度API Store (当天天气)

  官方文档: http://apistore.baidu.com/astore/serviceinfo/1798.html

   7.1 天气查询

      接口地址:http://apistore.baidu.com/microservice/weather

      请求方法:GET

 


参数名 描述 请求示例 备注
cityid 城市代码 http://apistore.baidu.com/microservice/weather?cityid=101010100
cityname 城市名称 http://apistore.baidu.com/microservice/weather?cityname=北京 中文字符需编码
citypinyin 城市拼音 http://apistore.baidu.com/microservice/weather?citypinyin=beijing


 

JSON返回示例:

{
errNum: 0,
errMsg: "success",
retData: {
   city: "北京", //城市
   pinyin: "beijing", //城市拼音
   citycode: "101010100",  //城市编码 
   date: "15-02-11", //日期
   time: "11:00", //发布时间
   postCode: "100000", //邮编
   longitude: 116.391, //经度
   latitude: 39.904, //维度
   altitude: "33", //海拔 
   weather: "晴",  //天气情况
   temp: "10", //气温
   l_tmp: "-4", //最低气温
   h_tmp: "10", //最高气温
   WD: "无持续风向",	 //风向
   WS: "微风(<10m/h)", //风力
   sunrise: "07:12", //日出时间
   sunset: "17:44" //日落时间
  }    
} 

    7.2 城市信息列表

            接口地址:http://apistore.baidu.com/microservice/cityinfo

            请求方法:GET


参数名 描述 请求示例 备注
cityname 城市名称 http://apistore.baidu.com/microservice/cityinfo?cityname=北京 可以用来通过名称获取代码,需编码

JSON返回示例:


{
errNum: 0,
retMsg: "success",
retData: {
cityName: "北京",
provinceName: "北京",
cityCode: "101010100",  //天气预报城市代码
zipCode: "100000",      //邮编
telAreaCode: "010"     //电话区号
}
} 

注意: 提交含有中文字符的URL时需要进行URL编码不然无法正常获取数据,并且返回数据是UniCode编码的,注意转换。百度虽然稳定,遗憾的是没有天气符号,不过我们可以通过上面提到过新浪的接口获取。 

 

8. 中国天气网 (网页插件型)

    8.1  简介

        官方文档: http://www.tianqi.com/plugin/

        示例: http://i.tianqi.com/index.php?c=code&id=12&icon=1&py=guangzhou&num=5

      天气网(www.tianqi.com )天气插件接口      服务地址:http://i.tianqi.com/index.php      
 参数名  类型 是否必须 默认值  描述  备注
 c  string 获取方式,设置为"code",表示获取代码。
 id  dword 模板样式,建议设置为19
 icon  dword 1 图标样式,范围1-5
 py  string 客户 地方名全拼,默认为客户地方。
 num  dword 5  预报天数

 

  8.2  智能未来五天天气预报:http://i.tianqi.com/index.php?c=code&id=19

 

返回数据:

 

9. 中国天气网气象数据开放接口(免费申请,但要求有注册独立域名及网站)

       气象数据开放接口是中国气象局面向网络媒体、手机厂商、第三方气象服务机构等用户,通过web方式提供气象数据服务的官方载体。随着气象数据开放平台的逐渐完善,会面向广大用户提供更为丰富全面的气象数据,从而满足不同用户的不同需求。
       申请地址:
http://openweather.weather.com.cn/


     文档下载地址: http://pan.baidu.com/s/1qWA3HMk  包含易语言源码和官方介绍文档


  详情:中国天气网API接口支持类 V1.0


 发表评论


表情

还没有留言,还不快点抢沙发?