天气预报代码(简单4行Python代码获取)
文章插图
天气预报代码(简单的4行Python代码获取)
【天气预报代码(简单4行Python代码获取)】
用Python来获取天气预报,想想就很简单 。无非就是发送一个HTTP请求,然后解析请求返回的结果 。当你真正用Python来获取天气预报的时候,你会发现有很多坑等着你 。下面简单记录一下我遇到的坑,供大家参考 。
这是边肖编写的python学习资料 。关注它,转发它,私信边肖“01”即可获取!
如何获得
使用Python有两种不同的获取天气的方法 。一种是像通常的爬虫一样获取天气预报网站的HTML页面,然后用XPath或者BeautifulSoup解析HTML页面的内容 。这是一种比较传统的爬行方式 。除此之外,还有一种合适的方法——通过天气预报网站提供的API 。直接通过API获取结构化数据,省去了解析HTML的麻烦 。
使用API
搜索关键词“天气预报API”,会有很多相关内容,比如这个 。
https://wwwzhihu.com/question/20575288
下面的答案列出了很多提供天气预报API访问的网站 。
然而,它们中的大多数已经不可用了 。有的可用的需要收费或者挂号,比较麻烦 。有没有更方便的方案?环顾四周,找到了中国天气网的API 。不需要注册就可以直接使用,返回json格式的数据非常方便,不需要使用BeautifulSoup或者XPath解析 。太棒了 。
例如,您可以直接访问以下地址,在浏览器中查看中国天气网返回的json数据:
Http://www.weather.com.cn/data/s信息资源网k/101020100.html
有了API,就很容易处理了 。只需使用Python,世界上最著名的请求,来访问API 。
安装请求:
pip install requests
检查安装是否成功:
python -c "import requests"
使用ipython进行测试:
requests库包含一个名为jso信息资源网n的方法,当被请求的地址返回json格式的数据时,不需要使用标准库的json库,直接使用这个方法就可以访问 。
解决乱码
如果你只是在浏览器中打开我给的地址,你会发现输出结果是乱码 。如下图所示:
我们可以查看ipython中的数据代码:
我们知道,加扰是因为解码的字符集和编码的字符集不一样,所以才有加扰 。那么,我们如何知道数据的编码字符集呢?这个时候就靠猜了 。众所周知,utf-8是应用最广泛的字符集编码,因为它有各种优点(如果你有兴趣,我可以写一篇关于字符集编码的文章),所以我们可以尝试使用utf-8进行解码 。如下图所示:
可以看出,utf-8解码后,数据可以正确显示 。也就是说,中国天气网返回的数据应该是utf-8格式 。那么,为什么是乱码呢?可能是中国天气网的工程师不行,也可能是故意不想让我们用,谁知道呢 。
我们已经知道正确的编码 。接下来,只需解码相应的utf-8格式的数据 。请求库本身提供了这样的功能,如下所示:
获取不同城市的天气预报 。
在前面的例子中,获得了上海的天气预报 。想用中国天气网的API获取其他城市的天气预报怎么办?中国天气网不提供相应的接口,只好自己琢磨了 。
在我们测试的URL中,101020100是城市的代码 。我们只需要找到其他城市的代码,用相应的代码替换10102010信息资源网0 。搜索方法是在中国天气网首页搜索城市名称,地址栏会显示对应城市的代码 。如下图所示:
获得天气预报的4行Python代码
在用Python获取天气预报的例子中,我们的主要任务是找到相应的API,解决字符集编码的问题 。当这些问题解决后,只需使用请求库来获取天气预报 。下面是4行Python代码,用于获取您所在城市的天气预报:
推荐阅读
- 最简单的《易经》占测法 易经占卦的方法
- 战国时期地图(8张地图简单展示演变过程)
- 平板触屏部分失灵最简单的方法?平板触屏失灵怎么办
- 怎样做豆腐脑最简单
- 30种海参的做法,请收藏好 海参怎么做好吃又简单
- 简单的健身舞蹈有哪些?
- 大学|辛辛苦苦读二本大学有用吗?读书是改变命运最简单的方式!
- 没那么简单!教你如何正确使用随车工具 随车工具
- 板栗烧鸡怎么做才好吃又简单,板栗烧鸡的做法大全家常窍门-
- 教师节手抄报简单易画a3纸?教师节手抄报简单易画字少