目录
前言
一 各种天气API比较
二 高德天气API使用说明
三 实践
四 拓展
欢迎扫描左侧二维码,关注公共号,获取更多信息。
前言
每次看到各种应用上面显示各种天气预报,是不是很好奇,明明有些公司或者机构没有检测天气,他们是怎么预报天气的呢?接下里就给你一一解答。
其实,想要使用获取天气的信息,非常简单。从网上找一个天气API, 然后按照这个API 的使用说明操作,就可以获得需要的天气信息。
会Python的同学,大部分应该都会爬虫。但是作为一个遵纪守法的公民,还是尊重版权。因此从网上选择了好几个能够免费试用的API。
一 各种天气API比较
第一个是 中国气象网http://data.cma.cn/Market/Detail/code/A.0013.0001/type/0.htm
官方数据,真实可靠。但是注册时候需要提供证件ID,使用较为麻烦。
第二个是 高德天气API 使用起来还是比较方便的。注册之后,创建应用获取的key 就可以使用了。主要还是不用这么明显的提供证件ID。
当然还有很多可以使用的天气API, 可以从网上搜下,比如“必应一下”。下面是知乎上面的一个我自己认为还不错的对天气AP的推荐的回答:
https://www.zhihu.com/question/20575288
二 高德天气API使用说明
第一步,申请”web服务 API”密钥(Key);
第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送;
第三步,接收HTTP请求返回的数据(JSON或XML格式),解析数据。
如无特殊声明,接口的输入参数和输出数据编码全部统一为UTF-8。
三 实践
好了,接下来,假装各位同学都已经获得了自己的高德天气API 的key。
接下来获取天气就是相当简单的一件事情,四行代码搞定。
按照下面的这个格式拼接请求 url
https://restapi.amap.com/v3/weather/weatherInfo?city=110101&key=<用户key>
实操如下:
import requests
url = "https://restapi.amap.com/v3/weather/weatherInfo?city=110101&key=你自己的key"
r = requests.get(url)
print(r.text)
运行获得天气信息:
{"status":"1","count":"1","info":"OK","infocode":"10000","lives":[{"province":"北京","city":"东城区","adcode":"110101","weather":"多云","temperature":"18","winddirection":"北","windpower":"≤3","humidity":"17","reporttime":"2019-04-13 19:21:51"}]}
四 拓展
抓取了信息以后,还可以增加一些小功能,比如说通过邮件将信息发送出去,或者再增加一些定时功能。liunx下面可以使用crond,也可以使用Python自带的schedule库,再延伸一些,还可以制作一个界面,这样功能会更加完善。