您的位置首页  历史

不看后悔历史天气查询一个月(2345历史天气查询记录)

  • 来源:互联网
  • |
  • 2023-08-11
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

背景最近在计划明年从北京rebase到深圳去,所以最近在看深圳的各个方面。去年在深圳呆过一段时间,印象最深的是,深圳总是突然就下雨,还下好大的雨

不看后悔历史天气查询一个月(2345历史天气查询记录)

 

背景最近在计划明年从北京rebase到深圳去,所以最近在看深圳的各个方面去年在深圳呆过一段时间,印象最深的是,深圳总是突然就下雨,还下好大的雨对于我这种从小在南方长大但是后面又在北京呆了2年多的人来说,熟悉而又无奈。

今天早上本来想随便浏览浏览一个天气网站,看看深圳的历史天气如何的,但是,一不小心发现,这家网站竟然直接能用API来抓数据,这~~~还不抓一波,省的自己一个月一个月地看。先上最后的效果图:

所有的code都在我的GitHub上:boydfd下面从几个方面讲一讲我是怎么做的:1、爬取数据2、用pandas显示数据3、功能扩展4、遇到的坑爬取数据先是在http://tianqi.2345.com上面浏览了一下深圳的6月份天气。

然后发现点切换月份的时候,网址没有变,那应该有请求API吧,看看这个API长啥样吧

发现返回值就是纯JS代码,那就解析一下吧:1、去掉var =和最后的;2、用到demjson解析成Python的List[Dict]对象3、转成pandas的DataFrame4、加上我们的date字段。

结果是这样的:

用Pandas显示数据太多雨天我们可以看到,有各种雷阵雨啊,阴转雨啊,雨转阴之类的,这样看到的天气太杂了,所以我就统一了一下,按照雨、多云、阴、晴的顺序来排序,先出出现的关键词优先级更高写一个函数来处理之:。

多个月的数据一个月的数据不够啊,我们想要很多个月的数据,那就写得函数来生成月份吧。

画图分好类,爬了多个月份的数据,就剩最终的画图部分了。使用Pandas提供给我们的函数,可以很容易就画出图来。

功能扩展现在只能收集到一个月的数据,想收集多个月的数据,还都自己去页面上找城市代表的code是啥,太低效了这个网站这么容易爬,那就再试试能不能找到调用code的API啊哦,一不小心找到了所有的code,哈哈哈。

那就在JS里面提取一下。先把所有的JS代码都复制到浏览器的console里, 结果长这样:

将其转换成字符串。provqx.flatMap(a=> a).join(|)在Python里处理它。

这样我们就拿到所有的code了,只需要输入城市,开始时间,结束时间,一张漂亮的图就出来了,我还写了个类稍微封装了一下,只需要这样就能使用了:Weather(深圳).plot_weather(201701,201906)

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186