又挖到了一个天气Api接口(附使用示例)

网上的大多数天气接口要么是收费的,要么只支持 iframe 嵌入方式,根本就没法用……

今天“不小心”从 360 那挖到了一个支持 json 的天气接口,支持自动判断地区,获取最近五天的天气,支持天气相关信息展示。非常好用!

接口请求格式如下:

  1. http://cdn.weather.hao.360.cn/sed_api_weather_info.php?app=360chrome&code=【地区编码】&_jsonp=【jsonp回调函数】  

其中的 地区编码 与中国天气网的地区编码是一样的。如果不设置这个参数,则默认显示本地的天气状况。

点击查看演示

简易的调用示例源码如下:(请自行进行界面美化)

  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  5. <title>天气接口使用示例</title>
  6. <style>
  7. body {  
  8.     font-family: microsoft yahei;  
  9. }  
  10. </style>
  11. <script src="http://cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
  12. </head>
  13. <body>
  14. <div id="output"></div>
  15. <script type="text/javascript" charset="utf-8">
  16.     $.ajax({  
  17.         type: "GET",   
  18.         url: "http://cdn.weather.hao.360.cn/sed_api_weather_info.php?app=360chrome",  
  19.         dataType : "jsonp",  
  20.         jsonp: "_jsonp",//参数名  
  21.         success: function(jsonData){  
  22.             var html;  
  23. html = '数据更新时间:' + jsonData.pubdate + ' ' + jsonData.pubtime + '<br>';  
  24.             html += '地区:' + jsonData.area[0][0] + ' ' + jsonData.area[1][0] + ' ' + jsonData.area[2][0] + '<br>';  
  25.             html += '天气情况:<br>';  
  26.             for(var i =0; i<jsonData.weather.length; i++) {  
  27.                 html += jsonData.weather[i].date + '<br>';  
  28.                 if(jsonData.weather[i].info.dawn !== undefined) {  
  29.                     html += '早晨天气:' + jsonData.weather[i].info.dawn[1] +   
  30.                     ' 气温:' + jsonData.weather[i].info.dawn[0] + '~' + jsonData.weather[i].info.dawn[2] + '℃ ' +  
  31.                     jsonData.weather[i].info.dawn[3] +' '+ jsonData.weather[i].info.dawn[4] + '<br>';  
  32.                 }  
  33.                 if(jsonData.weather[i].info.day !== undefined) {  
  34.                     html += '白天天气:' + jsonData.weather[i].info.day[1] +   
  35.                     ' 气温:' + jsonData.weather[i].info.day[0] + '~' + jsonData.weather[i].info.day[2] + '℃ ' +  
  36.                     jsonData.weather[i].info.day[3] +' '+ jsonData.weather[i].info.day[4] + '<br>';  
  37.                 }  
  38.                 if(jsonData.weather[i].info.night !== undefined) {  
  39.                     html += '夜间天气:' + jsonData.weather[i].info.night[1] +   
  40.                     ' 气温:' + jsonData.weather[i].info.night[0] + '~' + jsonData.weather[i].info.night[2] + '℃ ' +  
  41.                     jsonData.weather[i].info.night[3] +' '+ jsonData.weather[i].info.night[4] + '<br>';  
  42.                 }  
  43.                 html += '<br>';  
  44.             }  
  45.             html += '穿衣:<br>';  
  46.             html += '【' + jsonData.life.info.chuanyi[0] + '】 ' + jsonData.life.info.chuanyi[1] + '<br><br>';  
  47.             html += '感冒:<br>';  
  48.             html += '【' + jsonData.life.info.ganmao[0] + '】 ' + jsonData.life.info.ganmao[1] + '<br><br>';  
  49.             html += '空调:<br>';  
  50.             html += '【' + jsonData.life.info.kongtiao[0] + '】 ' + jsonData.life.info.kongtiao[1] + '<br><br>';  
  51.             html += '污染:<br>';  
  52.             html += '【' + jsonData.life.info.wuran[0] + '】 ' + jsonData.life.info.wuran[1] + '<br><br>';  
  53.             html += '洗车:<br>';  
  54.             html += '【' + jsonData.life.info.xiche[0] + '】 ' + jsonData.life.info.xiche[1] + '<br><br>';  
  55.             html += '运动:<br>';  
  56.             html += '【' + jsonData.life.info.yundong[0] + '】 ' + jsonData.life.info.yundong[1] + '<br><br>';  
  57.             html += '紫外线:<br>';  
  58.             html += '【' + jsonData.life.info.ziwaixian[0] + '】 ' + jsonData.life.info.ziwaixian[1] + '<br><br>';  
  59.             html += 'PM2.5: ' + jsonData.pm25.pm25[0];  
  60.             $("#output").html(html);  
  61.         }  
  62.     });  
  63. </script>
  64. </body>
  65. </html>

附:其它天气接口

天气网的接口(只支持iframe方式调用,修改后面的数字可以展示为其它样式) http://i.tianqi.com/index.php?c=code&id=55

2345天气(只支持iframe方式调用,支持自定义样式) http://tianqi.2345.com/plugin/

中国天气网(只支持iframe方式调用,支持自定义地区) http://m.weather.com.cn/m/pn11/weather.htm

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

C语言最难啃的三块硬骨头

提到C语言很多初学者都觉得,学到中间就进行不下去了,因为碰到了几个硬骨头死活翻不过去,于是很多人给C语言下结论太难了,太靠近底层了,特别是那几块难啃的骨头,直接...

3405
来自专栏java一日一条

关于 Java 你不知道的十件事

作为Java 控,我们总是对不太可能直接使用,但能使我们更了解 Java 和 Java 虚拟机(Java Virtual Machine,JVM) 的晦涩细节感...

781
来自专栏Fundebug

JavaScript中的变量提升(Hoisting)

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

1246
来自专栏大数据风控

R中重复值、缺失值及空格值的处理

1、R中重复值的处理 unique函数作用:把数据结构中,行相同的数据去除。 #导入CSV数据 data <- read.csv('1.csv', fileEn...

24510
来自专栏生信宝典

为啥我的Python这么慢 (一)

在Python系列教程中,我们提到一个概念字符串是不可修改的。这一点可以通过id函数来判断确实是对的。但是这个概念会对我们写作程序有什么影响一直没有特别深的理解...

1896
来自专栏IT派

Python的进阶:copy()与deepcopy()区别

可以看到 cop1,也就是 shallow copy 跟着 origin 改变了。而 cop2 ,也就是 deep copy 并没有变。

944
来自专栏微信公众号:Java团长

Java基础04 封装与接口

总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型。对象可以有状态和动作,即数据成员和方法。

802
来自专栏about云

about云spark开发基础之Scala快餐

---- spark是用Scala语言来写的,因此学习Scala成为spark的基础。当然如果使用其它语言也是可以的。从性能上来讲,及代码简洁等方面,Scal...

2796
来自专栏C语言及其他语言

[编程经验]C语言free释放内存后为什么指针里的值不变?竟然还可以输出?

今天你家范儿给大家带来一个的东西——关于C语言为什么释放指针后,指向这块内存的指针的值不变问题的编程经验!!行了,咱们话不多少,直接上主食。 ...

3598
来自专栏程序员互动联盟

【新技术分享】C++17 最新进展

C++标准委员会最近在夏威夷的科纳召开了一次会议,大家可能关心最新的进展,但是按照以往的情况,某些文件需要很久才会公开。会议进行的时候,大家都在忙着修订自己的文...

3326

扫码关注云+社区