我们借鉴之前抓取台风路径数据的例子,试一试抓取降水量数据:
之前我们访问过这个网站,也试着抓取过数据,不过在谷歌浏览器中我们只能够找到两天的数据,但是通过台风路径数据抓取,我们猜想只要我们向服务器提出正确的查询参数,就能返回对应的结果,报这个想法,我们就来试一试。
网站分析
这个网站一点也不复杂,视乎只要提供年月日时作为查询参数就可以了,后面数据的乱码没有关系,在Power Query中能够识别出来。
试抓
如果不能自动识别出编码,就修改一下这个参数,65001对应的是utf8,我们国家的网站通常就两种编码,GB2312和utf8,GB2312对应的是936或者20936都可以。
不需要特别的验证,直接就能抓取下来。
定义函数
其实可以在上面试抓的基础上展开数据之后再定义函数:
这样我们的函数结果就是一张表,否则就是一条记录,还需要再整理。
s=Table.FromRows(t[data][data],t[data][header])
这一句就是把记录转换为表格,当然这个不是通用的,只是针对这个记录的格式。
我们调用一下这个函数:
上面这个2020032101是我们可以抓取的最早的数据,也就是说这个网站提供了从2020年3月21日1时起的24小时降雨量数据,当然也有1小时降雨量。那么我们要抓取24小时降雨量,就要列出一个日期列表,然后根据日期列表抓取数据。1小时,6小时,13小时降雨量的抓取方法,可以参照本文的方法来做。
抓取
准备工作:列出日期表
用List.Dates函数,列出日期表,再转换成文本格式:
用Date.ToText([date],"yyyyMMdd"),这里一定要注意月份用大写的M,不要小写,小写的m会返回分钟。
调用函数抓取数据:
展开数据:
加载数据:
各省市平均降雨量逐日