调用阿里API获取城市天气信息
目录
- 一.阿里云天气预报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获取城市天气信息相关推荐
- php通过api获取天气信息,调用API获取城市天气信息
Code: /* 调用API获取指定城市的天气数据,并输出 */ echo ""; $url="http://m.weather.com.cn/data/10121010 ...
- python 学习笔记 12 -- 写一个脚本获取城市天气信息
近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...
- 调用雅虎API获取全球天气
雅虎官方API文档: https://developer.yahoo.com/weather/documentation.html 雅虎获取授权key网址(免费获取): https://develop ...
- python使用openweathermap API获取全世界主要城市天气信息
python使用openweathermap API获取全世界主要城市天气信息 官方网址: http://www.openweathermap.org/api 注意:使用gmail注册成功,然后到gm ...
- 调用阿里接口获取银行卡信息
调用阿里接口获取银行卡信息 直接上代码 // An highlighted block import com.alibaba.fastjson.JSONObject;import java.io.Bu ...
- php天气源码_PHP获取城市天气API接口源码
PHP获取城市天气API接口源码,接口调用的是微鲤的接口,2020年9月1日 10:11:07测试接口还可以正常使用. API查询接口代码<?php function tian(){ $city ...
- 小程序笔记(9)调用腾讯api获取周边饮食店信息
调用腾讯api获取周边饮食店信息 实现功能 实现流程 基本逻辑实现 开始注册key 开始代码 先配置app.json中的权限获取 index.wxml index.wxss index.jssssss ...
- 通过百度地图获取当地天气信息
首先,通过之前用过的百度地图,实现定位功能:首先去百度开放云申请密钥,这里就不说明申请过程了,不懂得可以百度一下. 申请完密钥后,需要去声明Activity的地方添加上下面的语句: [html] vi ...
- 调用阿里API实现手机号归属地查询
调用阿里API实现手机号归属地查询 1.作者介绍 2.号码归属地介绍 2.1 什么是手机号码归属地? 2.2 为什么需要手机号码归属地? 2.3 手机号码归属地查询对个人的运用 3.调用阿里API实现 ...
- 通过Temboo实现从Arduino获取雅虎天气信息
如果问我未来的科技行业发展有哪些亮点的话,我必须说物联网一定是其中之一.物联网技术发展迅速,现在我们已经看到非常多的设备通过互联网互相通信了.物联网技术的发展背后的推动因素之一是Arduino和Ras ...
最新文章
- Linux下如何实现用户的集中管理(NIS服务器的高级配置)
- 切莫开一块地荒一块地
- OpenCV手写数字字符识别(基于k近邻算法)
- ionic ios查看大图报错 the file to show is not valid image,or could not be loaded
- linux上apache目录在哪,Linux下Apache目录明细
- Linux学习笔记08—如何关闭防火墙
- itextpdf 加密解密
- 机器学习之微积分零基础学习
- 【layUI时间控件使用】:按钮显示时间并放到输入框
- html英文期刊参考文献,英文参考文献标准格式
- 基于Web的股票预测系统
- 【复】一次流量分析经历
- java中的空指针异常处理
- mysql简单数据库定期备份
- C语言中arr[0] 、arr 、arr
- 外国人怎么样学计算机,适合外国人学中文的打字法
- 微信小程序------1️⃣
- Three.js 地理坐标和三维空间坐标的转换
- oracle11g课后题,oracle11g(钱慎一)课后习题答案.doc
- 技术人向顾问/管理者转型的推荐经典书35本
热门文章
- FeHelper插件安装小结
- 怎么用matlab做系统辨识,MATLAB系统辨识仿真程序
- 我的世界java版海岛种子_我的世界海岛生存种子,是出生在海岛不是找的那种。...
- STM32芯片命名规则及含义
- dos命令怎样进入计算机,怎么进DOS命令的方法
- 操作 神通数据库_国产神通数据库教程
- 性能测试-性能狗(Perfdog)测试与数据分析
- zmodem transfer canceled by remote side 段错误(吐核)
- 埃夫特机器人示教器linux屏幕多少钱,不限 埃夫特机器人电路板维修
- java cximage_图像处理库比较 OpenCV CxImage ImageMagick CImg FreeImage