网站首页 » 前端开发 » 前端工具 » 网页天气预报 API 及用法整理
上一篇:
下一篇:

网页天气预报 API 及用法整理

在网站中添加天气预报是常有的事,特别是一事提供日常资讯类的网站。下面就给大家整理出一些天气 API 以及他们的用法。

国家气象局天气预报接口

国家气象局为我们提供了两个可用的天气预报 API 接口:

http://www.weather.com.cn/data/sk/101280701.html

http://www.weather.com.cn/data/cityinfo/101280701.html

这两个接口返回的数据是不一样的,你可以根据自己需要进行选择。

http://www.weather.com.cn/data/sk/101280701.html

{“weatherinfo”:{“city”:”珠海”,”cityid”:”101280701″,”temp”:”18″,”WD”:”东南风”,”WS”:”2级”,”SD”:”62%”,”WSE”:”2″,”time”:”17:05″,”isRadar”:”0″,”Radar”:””,”njd”:”暂无实况”,”qy”:”1017″,”rain”:”0″}}

http://www.weather.com.cn/data/cityinfo/101280701.html

{“weatherinfo”:{“city”:”珠海”,”cityid”:”101280701″,”temp1″:”15℃”,”temp2″:”22℃”,”weather”:”晴”,”img1″:”n0.gif”,”img2″:”d0.gif”,”ptime”:”18:00″}}

不过他们都是以 json 格式返回。现在就你可以把接收到的数据按需塞进你的 HTML 了。

全国各城市代码如下

北京:101010100朝阳:101010300顺义:101010400怀柔:101010500通州:101010600昌平:101010700延庆:101010800丰台:101010900石景山:101011000大兴:101011100房山:101011200密云:101011300门头沟:101011400平谷:101011500八达岭:101011600佛爷顶:101011700汤河口:101011800密云上甸子:101011900斋堂:101012000霞云岭:101012100北京城区:101012200海淀:101010200天津:101030100宝坻:101030300东丽:101030400西青:101030500北辰:101030600蓟县:101031400汉沽:101030800静海:101030900津南:101031000塘沽:101031100大港:101031200武清:101030200宁河:101030700上海:101020100宝山:101020300嘉定:101020500南汇:101020600浦东:101021300青浦:101020800松江:101020900奉贤:101021000崇明:101021100徐家汇:101021200闵行:101020200金山:101020700石家庄:101090101张家口:101090301承德:101090402唐山:101090501秦皇岛:101091101沧州:101090701衡水:101090801邢台:101090901邯郸:101091001保定:101090201廊坊:101090601郑州:101180101新乡:101180301许昌:101180401平顶山:101180501信阳:101180601南阳:101180701开封:101180801洛阳:101180901商丘:101181001焦作:101181101鹤壁:101181201濮阳:101181301周口:101181401漯河:101181501驻马店:101181601三门峡:101181701济源:101181801安阳:101180201合肥:101220101芜湖:101220301淮南:101220401马鞍山:101220501安庆:101220601宿州:101220701阜阳:101220801亳州:101220901黄山:101221001滁州:101221101淮北:101221201铜陵:101221301宣城:101221401六安:101221501巢湖:101221601池州:101221701蚌埠:101220201杭州:101210101舟山:101211101湖州:101210201嘉兴:101210301金华:101210901绍兴:101210501台州:101210601温州:101210701丽水:101210801衢州:101211001宁波:101210401重庆:101040100合川:101040300南川:101040400江津:101040500万盛:101040600渝北:101040700北碚:101040800巴南:101040900长寿:101041000黔江:101041100万州天城:101041200万州龙宝:101041300涪陵:101041400开县:101041500城口:101041600云阳:101041700巫溪:101041800奉节:101041900巫山:101042000潼南:101042100垫江:101042200梁平:101042300忠县:101042400石柱:101042500大足:101042600荣昌:101042700铜梁:101042800璧山:101042900丰都:101043000武隆:101043100彭水:101043200綦江:101043300酉阳:101043400秀山:101043600沙坪坝:101043700永川:101040200福州:101230101泉州:101230501漳州:101230601龙岩:101230701晋江:101230509南平:101230901厦门:101230201宁德:101230301莆田:101230401三明:101230801兰州:101160101平凉:101160301庆阳:101160401武威:101160501金昌:101160601嘉峪关:101161401酒泉:101160801天水:101160901武都:101161001临夏:101161101合作:101161201白银:101161301定西:101160201张掖:101160701广州:101280101惠州:101280301梅州:101280401汕头:101280501深圳:101280601珠海:101280701佛山:101280800肇庆:101280901湛江:101281001江门:101281101河源:101281201清远:101281301云浮:101281401潮州:101281501东莞:101281601中山:101281701阳江:101281801揭阳:101281901茂名:101282001汕尾:101282101韶关:101280201南宁:101300101柳州:101300301来宾:101300401桂林:101300501梧州:101300601防城港:101301401贵港:101300801玉林:101300901百色:101301001钦州:101301101河池:101301201北海:101301301崇左:101300201贺州:101300701贵阳:101260101安顺:101260301都匀:101260401兴义:101260906铜仁:101260601毕节:101260701六盘水:101260801遵义:101260201凯里:101260501昆明:101290101红河:101290301文山:101290601玉溪:101290701楚雄:101290801普洱:101290901昭通:101291001临沧:101291101怒江:101291201香格里拉:101291301丽江:101291401德宏:101291501景洪:101291601大理:101290201曲靖:101290401保山:101290501呼和浩特:101080101乌海:101080301集宁:101080401通辽:101080501阿拉善左旗:101081201鄂尔多斯:101080701临河:101080801锡林浩特:101080901呼伦贝尔:101081000乌兰浩特:101081101包头:101080201赤峰:101080601南昌:101240101上饶:101240301抚州:101240401宜春:101240501鹰潭:101241101赣州:101240701景德镇:101240801萍乡:101240901新余:101241001九江:101240201吉安:101240601武汉:101200101黄冈:101200501荆州:101200801宜昌:101200901恩施:101201001十堰:101201101神农架:101201201随州:101201301荆门:101201401天门:101201501仙桃:101201601潜江:101201701襄樊:101200201鄂州:101200301孝感:101200401黄石:101200601咸宁:101200701成都:101270101自贡:101270301绵阳:101270401南充:101270501达州:101270601遂宁:101270701广安:101270801巴中:101270901泸州:101271001宜宾:101271101内江:101271201资阳:101271301乐山:101271401眉山:101271501凉山:101271601雅安:101271701甘孜:101271801阿坝:101271901德阳:101272001广元:101272101攀枝花:101270201银川:101170101中卫:101170501固原:101170401石嘴山:101170201吴忠:101170301西宁:101150101黄南:101150301海北:101150801果洛:101150501玉树:101150601海西:101150701海东:101150201海南:101150401济南:101120101潍坊:101120601临沂:101120901菏泽:101121001滨州:101121101东营:101121201威海:101121301枣庄:101121401日照:101121501莱芜:101121601聊城:101121701青岛:101120201淄博:101120301德州:101120401烟台:101120501济宁:101120701泰安:101120801西安:101110101延安:101110300榆林:101110401铜川:101111001商洛:101110601安康:101110701汉中:101110801宝鸡:101110901咸阳:101110200渭南:101110501太原:101100101临汾:101100701运城:101100801朔州:101100901忻州:101101001长治:101100501大同:101100201阳泉:101100301晋中:101100401晋城:101100601吕梁:101101100乌鲁木齐:101130101石河子:101130301昌吉:101130401吐鲁番:101130501库尔勒:101130601阿拉尔:101130701阿克苏:101130801喀什:101130901伊宁:101131001塔城:101131101哈密:101131201和田:101131301阿勒泰:101131401阿图什:101131501博乐:101131601克拉玛依:101130201拉萨:101140101山南:101140301阿里:101140701昌都:101140501那曲:101140601日喀则:101140201林芝:101140401台北县:101340101高雄:101340201台中:101340401海口:101310101三亚:101310201东方:101310202临高:101310203澄迈:101310204儋州:101310205昌江:101310206白沙:101310207琼中:101310208定安:101310209屯昌:101310210琼海:101310211文昌:101310212保亭:101310214万宁:101310215陵水:101310216西沙:101310217南沙岛:101310220乐东:101310221五指山:101310222琼山:101310102长沙:101250101株洲:101250301衡阳:101250401郴州:101250501常德:101250601益阳:101250700娄底:101250801邵阳:101250901岳阳:101251001张家界:101251101怀化:101251201黔阳:101251301永州:101251401吉首:101251501湘潭:101250201南京:101190101镇江:101190301苏州:101190401南通:101190501扬州:101190601宿迁:101191301徐州:101190801淮安:101190901连云港:101191001常州:101191101泰州:101191201无锡:101190201盐城:101190701哈尔滨:101050101牡丹江:101050301佳木斯:101050401绥化:101050501黑河:101050601双鸭山:101051301伊春:101050801大庆:101050901七台河:101051002鸡西:101051101鹤岗:101051201齐齐哈尔:101050201大兴安岭:101050701长春:101060101延吉:101060301四平:101060401白山:101060901白城:101060601辽源:101060701松原:101060801吉林:101060201通化:101060501沈阳:101070101鞍山:101070301抚顺:101070401本溪:101070501丹东:101070601葫芦岛:101071401营口:101070801阜新:101070901辽阳:101071001铁岭:101071101朝阳:101071201盘锦:101071301大连:101070201锦州:101070701

用法也好简单,你只需要把链接中的.html的文件名改成这个号码就可以了。

新浪天气预报API

新浪天气预报提供的API 返回的信息就更加多一些。比如我访问如下链接及会返回:

http://php.weather.sina.com.cn/xml.php?city=%d6%e9%ba%a3&password=DJOYnieT8234jlsK&day=0

珠海 多云 多云 duoyun duoyun 无持续风向 无持续风向 ≤3 ≤3 22 15 0 23 23 1 4 3 4 3 暂无 暂无 暂无 单层薄衫、裤薄型棉衫、长裤、针织长袖衫、长袖T恤。薄型套装、牛仔衫裤、西服套装、薄型夹克 轻度 最弱 舒适 暂无 暂无 单衣类 不需要开启 不太适宜 暂无 对空气污染物扩散无明显影响 紫外线最弱 适宜在自然环境及露天场所活动。 不需要开启空调 洗车后未来1-2天内有降水、大风或沙尘天气,或洗车当日气温太低容易结冰。不太适宜洗车。 1 低发期 天气舒适,不易发生感冒; 1 非常适宜 非常适宜户外运动; 2017-02-15 2017-02-15 2017-02-15 2017-02-15 08:10:00

其中的 password 是固定的,不要更改。city 为你要获取的城市珠海,对应的编码为%d6%e9%ba%a3。day=0 表示当天天气,1表示第二天天气,以此类推。只不过这个数最大只能为4。现在问题来了,url city= 后面的那串码要怎么生成呢?方法非常地简单,站长工具里有一个 UrlEncode编码/UrlDecode 解码的在线生成工具:http://tool.chinaz.com/tools/urlencode.aspx 打开之后切换到第三个选择卡【URL编码/解码】,把你需要转换的中文放进去,然后选择gb2312,最后一点就是点击 UrlEncode 编码 ,这样就会生成一个像浏览器一样的  gb2312 编码了。把这个编码替换掉地址栏里的%d6%e9%ba%a3就可以了。注意:如果你没有选择 gb2312 那么当你把这串字符替换了原来的%d6%e9%ba%a3后回车,你会得到一个带中文的 url 。这就背离了我们的初衷。

网页天气预报 API 及用法整理

其实你看源码你会发现它返回的是这样的:

带 HTML 的数据

<profiles>
<weather>
<city>珠海</city>
<status1>多云</status1>
<status2>多云</status2>
<figure1>duoyun</figure1>
<figure2>duoyun</figure2>
<direction1>无持续风向</direction1>
<direction2>无持续风向</direction2>
<power1>≤3</power1>
<power2>≤3</power2>
<temperature1>22</temperature1>
<temperature2>15</temperature2>
<ssd>0</ssd>
<tgd1>23</tgd1>
<tgd2>23</tgd2>
<zwx>1</zwx>
<ktk>4</ktk>
<pollution>3</pollution>
<xcz>4</xcz>
<zho></zho>
<diy></diy>
<fas></fas>
<chy>3</chy>
<zho_shuoming>暂无</zho_shuoming>
<diy_shuoming>暂无</diy_shuoming>
<fas_shuoming>暂无</fas_shuoming>
<chy_shuoming>单层薄衫、裤薄型棉衫、长裤、针织长袖衫、长袖T恤。薄型套装、牛仔衫裤、西服套装、薄型夹克</chy_shuoming>
<pollution_l>轻度</pollution_l>
<zwx_l>最弱</zwx_l>
<ssd_l>舒适</ssd_l>
<fas_l>暂无</fas_l>
<zho_l>暂无</zho_l>
<chy_l>单衣类</chy_l>
<ktk_l>不需要开启</ktk_l>
<xcz_l>不太适宜</xcz_l>
<diy_l>暂无</diy_l>
<pollution_s>对空气污染物扩散无明显影响</pollution_s>
<zwx_s>紫外线最弱</zwx_s>
<ssd_s>适宜在自然环境及露天场所活动。</ssd_s>
<ktk_s>不需要开启空调</ktk_s>
<xcz_s>洗车后未来1-2天内有降水、大风或沙尘天气,或洗车当日气温太低容易结冰。不太适宜洗车。</xcz_s>
<gm>1</gm>
<gm_l>低发期</gm_l>
<gm_s>天气舒适,不易发生感冒;</gm_s>
<yd>1</yd>
<yd_l>非常适宜</yd_l>
<yd_s>非常适宜户外运动;</yd_s>
<savedate_weather>2017-02-15</savedate_weather>
<savedate_life>2017-02-15</savedate_life>
<savedate_zhishu>2017-02-15</savedate_zhishu>
<udatetime>2017-02-15 08:10:00</udatetime>
</weather>
</profiles>

天气预报插件

这个就不是天气预报 API 接口了,而是一个给你实现好的插件,你只需要把它的代码复制到网页中就可以了。

具体怎么做你可以参考这个网址:http://tianqi.2345.com/plugin/,如果你觉得前面那两种方法比较麻烦就可以试试这种。

好了天气预报 API 就给大家分享到这里。

  • 微信扫一扫,赏我

  • 支付宝扫一扫,赏我

声明

原创文章,不经本站同意,不得以任何形式转载,如有不便,请多多包涵!

本文永久链接:http://yunkus.com/website-weather-forecast-api-usage-collection/

评论2
  1. humorHan 2017年4月28日 上午10:33 回复

    请问这是个人网站? 后台也是自己开发的是嘛?

    • 朝夕熊 2017年4月28日 下午1:52 回复

      嗯嗯,一个个人博客网站,后台不是自己开发的,用 WordPress 搭建的。

朝夕熊进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注

评论 END