天气预报代码(简单4行Python代码获取)

/ 0评 / 0

气象预报代码(简略4行Python代码获取)

应用Python获取气象预报,想想是件很简略的事情。无非是发送一个HTTP要求,再解析要求返回的成果。当你真的应用Python程序去获取气象预报以后,会发明,有不少坑在等着你。这里简略记载一下我遇到的坑,供大家参考。

这是小编整顿的python学习资料,关注,转发,私信小编“01”即可获取拉!

如何获取

应用Python获取气象有两种不同的办法,一种是像平时爬虫一样,获取气象预报网站的HTML页面,再应用XPath或BeautifulSoup解析HTML页面的内容。这是比拟传统的爬虫方法。此外,还有另外一种比拟适合的办法——通过(www.isoyu.com原创版权)气象预报网站供给的API。通过API,直接获取构造化的数据,省去懂得析HTML的懊恼。

应用API

搜索"气象预报 API"这两个症结字,会有很多相干的内容,例如,这个

https://wwwzhihu.com/question/20575288

答案下就列出了不少供给API拜访气象预报的网站。

然而,大部分都已经不可用了。部分可用的须要收费或者须要注册,都比拟麻烦。有没有比拟省事的计划呢?找来找去,我找到了中国气象网的API。无需注册直接可用,返回json格局的数据,百思特网无需应用BeautifulSoup或XPath解析,非常的便利。赞!

例如,可以直接拜访下面的地址,在阅读器中查看中国气象网返回的json数据:

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

有了API处置起来就很简略了,直接应用Python世界最著名的requests拜访API即可。

安装requests:

pipinstallrequests

检讨安装是否胜利:

python-c"importrequests"

应用ipython测试:

requests库包括一个名为json的办法,当要求的地址返回的是json格局的数据时,直接应用该办法拜访即可,无需应用尺度库的json库。

解决乱码

如果大家刚才在阅读器中打开了我给的地址,会发明,输出成果是乱码的。如下所示:

我们可以在ipython中,查看数据编码:

我们知道,乱码是因为解码的字符集与编码的字符集不一样,所以才会有乱码。那么,我们怎么知道数据的编码字符集呢?这个时候就靠猜了。众所周知,utf-8因为各种长处(如果大家感兴致,我可以写一篇字符集编码的文章),是应用最普遍的字符集编码,因此,我们可以尝试应用utf-8进行解码。如下所示:

可以看到,应用utf-8解码以后,可以准确的显示数据。也就是说,中国气象网返回给我们的数据,应当是utf-8格局的。那么,为什么会乱码呢?百思特网这可能是中国气象网的工程师程度不行,也可能是故意不想让我们应用,谁知道呢。

我们已经知道了准确的编码,接下来,只要将相应的数据,应用utf-8格局解码即可。requests库本身供给了这样的功效,如下所示:

获取不同城市的气象预报

前面的例子,获取的百思特网是上海的气象预报。如果想要应用中国气象网的API,获取其他城市的气象预报呢?中国气象网并没有供给相应的接口,我们只能自己想方法。

在我们测试的URL中,101020100是城市的代码,我们只须要找到其他城市的代码,将101020100调换成相应的代码即可。查找办法是,在中国气象网的首页,搜索城市的名称,地址栏中会显示相应城市的代码。如下所示:

4行Python代码获取气象预报

应用Python获取气象预报的例子中,我们的重要义务在于找到相应的API,解决字符集编码问题。当这些问题解决以后,直接应用requests库获取气象预报即可。下面是获取所在城市气象预报的4行Python代码: