目录

  • 一.阿里云天气预报API接口介绍
    • 2.1阿里云天气预报API介绍
    • 2.2 调用API准备工作及认识
  • 二.调用天气预报API
  • 三.代码实现
  • 四.结果展示
  • 五、问题与解决办法

赵继涛,男,西安工程大学电子信息学院,2021级硕士研究生
研究方向:图像处理
电子邮件:1542094492@qq.com

孟莉苹,女,西安工程大学电子信息学院,2021级硕士研究生,张宏伟人工智能课题组
研究方向:机器视觉与人工智能
电子邮件:2425613875@qq.com

一.阿里云天气预报API接口介绍

2.1阿里云天气预报API介绍

通过地名、地名对应ID、坐标区域、IP地址、景点名称ID、电话区号或邮编来查询天气情况。可查询到40天内的天气数据,可应用于能源、电力、农业、生活服务类应用、智能硬件、航天航海、旅游业、建筑业等领域。

2.2 调用API准备工作及认识

在调用API商品时,首先要确定认证方式,我们使用简单身份认证(AppCode)的认证方式。该方式适合场景:客户端环境(调用API商品的环境)安全可控,如内网环境。技术原理概述:客户端程序将AppCode放到Request Header中,或者放到Request的Query参数中,从而进行身份认证。优点:简单易用,无需复杂的生成签名的过程,各种开发语言都能很简单的使用,API商品也提供了多语言的调用示例。缺点:认证方式本身的安全性较低,AppCode在网络的传输过程是以明文的方式在Http Request中,因此存在泄露风险。
(使用建议:建议调用API时采用Https方式,尽量减少传输过程中泄露风险)

二.调用天气预报API

首先在“API市场”中选取“易源数据-全国天气预报查询”产品服务并免费申请购买资源。

购买成功后,登录“云市场”控制台,在已购买的服务中可以查看到所有购买成功的API商品信息,下图红框中的就是AppKey、AppSecret、AppCode信息。

采用简单身份认证调用方式时,将AppCode值放在Python代码的header中,配置authorization字段的值为:appcode+半角空格+appcode值。

通过参数文件查看可以调用的参数:

例如查询城市为“北京”,对应的信息如下所示:

三.代码实现

import urllib
import urllib.request as urllib2
import urllib.error as error
import ssl
import json
host = 'https://ali-weather.showapi.com'
path = '/area-to-weather'
method = 'GET'
#appcode = " 你的appcode值"#appcode值可放在此处
querys='area=%E8%A5%BF%E5%AE%89&needMoreDay=0&needAlarm=0&need3HourForcast=0&needIndex=0'#引号中填写接口域名(此处为“西安”),可填写自己请求和调试参数的地区id。
bodys = {}
url = host + path + '?' + querys
request = urllib2.Request(url)
request.add_header('Authorization','APPCODE '+ appcode) #一定注意APPCODE后有空格
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urllib2.urlopen(request, context=ctx)
content = response.read()
#content = str(response.read(), 'utf-8')
if (content):print(content)

四.结果展示

如图所示,在程序当中实现西安当天本地温度,白天温度23°,夜间温度9°当天的日期为周四,日升日落时间等等,清晰地展现了城市天气的具体情况。

五、问题与解决办法

如果使用的是Python 3.x 以上的版本,注意python 3.x 以上的版本 urllib 和urllib2 已经被集合到一个包里 urllib 中找不到模块错误:没有名为“urllib2”的模块。
解决办法:urllib2用urllib.request替代。

调用阿里API获取城市天气信息相关推荐

  1. php通过api获取天气信息,调用API获取城市天气信息

    Code: /* 调用API获取指定城市的天气数据,并输出 */ echo ""; $url="http://m.weather.com.cn/data/10121010 ...

  2. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  3. 调用雅虎API获取全球天气

    雅虎官方API文档: https://developer.yahoo.com/weather/documentation.html 雅虎获取授权key网址(免费获取): https://develop ...

  4. python使用openweathermap API获取全世界主要城市天气信息

    python使用openweathermap API获取全世界主要城市天气信息 官方网址: http://www.openweathermap.org/api 注意:使用gmail注册成功,然后到gm ...

  5. 调用阿里接口获取银行卡信息

    调用阿里接口获取银行卡信息 直接上代码 // An highlighted block import com.alibaba.fastjson.JSONObject;import java.io.Bu ...

  6. php天气源码_PHP获取城市天气API接口源码

    PHP获取城市天气API接口源码,接口调用的是微鲤的接口,2020年9月1日 10:11:07测试接口还可以正常使用. API查询接口代码<?php function tian(){ $city ...

  7. 小程序笔记(9)调用腾讯api获取周边饮食店信息

    调用腾讯api获取周边饮食店信息 实现功能 实现流程 基本逻辑实现 开始注册key 开始代码 先配置app.json中的权限获取 index.wxml index.wxss index.jssssss ...

  8. 通过百度地图获取当地天气信息

    首先,通过之前用过的百度地图,实现定位功能:首先去百度开放云申请密钥,这里就不说明申请过程了,不懂得可以百度一下. 申请完密钥后,需要去声明Activity的地方添加上下面的语句: [html] vi ...

  9. 调用阿里API实现手机号归属地查询

    调用阿里API实现手机号归属地查询 1.作者介绍 2.号码归属地介绍 2.1 什么是手机号码归属地? 2.2 为什么需要手机号码归属地? 2.3 手机号码归属地查询对个人的运用 3.调用阿里API实现 ...

  10. 通过Temboo实现从Arduino获取雅虎天气信息

    如果问我未来的科技行业发展有哪些亮点的话,我必须说物联网一定是其中之一.物联网技术发展迅速,现在我们已经看到非常多的设备通过互联网互相通信了.物联网技术的发展背后的推动因素之一是Arduino和Ras ...

最新文章

  1. Linux下如何实现用户的集中管理(NIS服务器的高级配置)
  2. 切莫开一块地荒一块地
  3. OpenCV手写数字字符识别(基于k近邻算法)
  4. ionic ios查看大图报错 the file to show is not valid image,or could not be loaded
  5. linux上apache目录在哪,Linux下Apache目录明细
  6. Linux学习笔记08—如何关闭防火墙
  7. itextpdf 加密解密
  8. 机器学习之微积分零基础学习
  9. 【layUI时间控件使用】:按钮显示时间并放到输入框
  10. html英文期刊参考文献,英文参考文献标准格式
  11. 基于Web的股票预测系统
  12. 【复】一次流量分析经历
  13. java中的空指针异常处理
  14. mysql简单数据库定期备份
  15. C语言中arr[0] 、arr 、arr
  16. 外国人怎么样学计算机,适合外国人学中文的打字法
  17. 微信小程序------1️⃣
  18. Three.js 地理坐标和三维空间坐标的转换
  19. oracle11g课后题,oracle11g(钱慎一)课后习题答案.doc
  20. 技术人向顾问/管理者转型的推荐经典书35本

热门文章

  1. FeHelper插件安装小结
  2. 怎么用matlab做系统辨识,MATLAB系统辨识仿真程序
  3. 我的世界java版海岛种子_我的世界海岛生存种子,是出生在海岛不是找的那种。...
  4. STM32芯片命名规则及含义
  5. dos命令怎样进入计算机,怎么进DOS命令的方法
  6. 操作 神通数据库_国产神通数据库教程
  7. 性能测试-性能狗(Perfdog)测试与数据分析
  8. zmodem transfer canceled by remote side 段错误(吐核)
  9. 埃夫特机器人示教器linux屏幕多少钱,不限 埃夫特机器人电路板维修
  10. java cximage_图像处理库比较 OpenCV CxImage ImageMagick CImg FreeImage