天气预报代码(通过简单的4行Python代码获得)
使用Python获取天气预报是一件非常简单的事情。无非就是发送一个HTTP请求,然后解析请求返回的结果。当你真正用Python来获取天气预报的时候,你会发现有很多坑等着你。下面简单记录一下我遇到的坑,供大家参考。
这是小编编写的python学习资料。关注它,转发它,私信小编“01”即可获取!
如何获得
使用Python有两种不同的方法来获取天气信息。一种是像通常的爬虫一样获取天气预报网站的HTML页面,然后用XPath或者BeautifulSoup解析HTML页面的内容。这是一种更传统的抓取好友和资源的方式。除此之外,还有一种合适的方法——通过天气预报网站提供的API。通过API可以直接获取结构化数据,省去了解析HTML的麻烦。
使用API
搜索两个关键词“天气预报API”,会有很多相关的内容,比如,这个
https://wwwzhihu/question/20575288
下面的答案列出了一些提供天气预报API访问的网站。
然而,它们中的大多数已经不可用了。有的可用的需要收费或者注册,比较麻烦。有没有更方便的解决方法?环顾四周,找到了中国天气网的API。不需要注册就可以直接使用,以json格式返回数据,不需要使用BeautifulSoup或者XPath解析,非常方便。太好了!
例如,您可以直接访问以下地址,在浏览器中查看中国天气网返回的json数据:
http://www.weather/data/sk/101020100.html
有了API,就很容易处理了。您可以通过使用Python世界中最著名的请求来直接访问API。
安装请求:
pipinstallrequests检查安装是否成功:
python-c"importrequests"使用ipython进行测试:
请求库包含一个名为json的方法。当请求的地址返回json格式的数据时,可以直接访问它,而不需要使用标准库的json库。
解决乱码
如果你只是在浏览器中打开我给你的地址,你会发现输出结果是乱码。如下所示:
我们可以检查ipython中的数据编码:
我们知道,乱码是因为解码的字符集和编码的字符集不一样,所以有乱码。那么,我们如何知道数据的编码字符集呢?这个时候是猜测。众所周知,utf-8是应用最广泛的字符集编码,因为它有各种各样的优点(如果你有兴趣,我可以写一篇关于字符集编码的文章)。所以可以尝试使用utf-8进行解码。如下所示:
可以看出,utf-8解码后,数据可以正确显示。也就是说,中国天气网返回给我们悠游资源网的数据应该是utf-8格式的。那么,为什么是乱码呢?可能是中国天气网的工程师不擅长,也可能是故意不想让我们用。谁知道呢?
我们已经知道正确的编码。接下来,我们只需要解码相应的utf-8格式的数据。请求库本身提供了这样的功能,如下所示:
获取不同城市的天气预报。
在前面的例子中,获得了上海的天气预报。想用中国天气网的API获取其他城市的天气预报怎么办?中国天气网没有提供相应的接口,只好自己琢磨了。
在我们测试的URL中,101020100是城市的代码。我们只需要找到其他城市的代码,用相应的代码替换101020100就可以了。搜索方法是在中国天气网首页搜索城市名称,地址栏会显示对应城市的代码。如下所示:
4行Python代码获取天气预报悠悠球资源网
在用Python获取天气预报的例子中,我们的主要任务是找到相应的API,解决字符集编码的问题。当这些问题解决后,您可以直接使用requests库来获取天气预报。下面是四行Python代码,用于获取您所在城市的天气预报:
本文地址:百科常识频道 https://www.neebe.cn/changshi/949295.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!