power BI 天气数据爬取

简介

本篇案例主要介绍如何通过power BI 构建爬虫抓取历史天气数据

数据爬取

如何从power bi 获取网页的数据

首先,打开需要爬起天气数据的网站,点击历史天气,之后可以看到全国各个省份和城市的列表
http://www.tianqihoubao.com/power BI 天气数据爬取
全国省份和城市列表
大家可以根据自己想要爬取的城市来*选择
power BI 天气数据爬取

选择好城市之后,会列出该城市从2011年1月一直到目前的所有的天气数据,选择想要查看的年月分的连接,下面以郑州2019年1月为例

power BI 天气数据爬取
打开之后如下,显示这个月每一天的具体日期,天气状况,气温,风力风向
power BI 天气数据爬取
如果是只想爬取这一页的数据,打开 power bi ,在获取数据里面选择 其他 – web
power BI 天气数据爬取
然后把连接地址粘贴上去点击确定

power BI 天气数据爬取
之后power bi 会自动分析网页,提取出数据信息
选择左边的表直接加载数据就ok了
power BI 天气数据爬取
这样抓取一页的数据太简单了。

下面咱们要做的是如何才能批量抓取数据

分析URL

通过点击不同城市和日期的连接,分析URL的变化规律

# 郑州 
http://www.tianqihoubao.com/lishi/zhengzhou/month/201803.html
http://www.tianqihoubao.com/lishi/zhengzhou/month/201901.html
http://www.tianqihoubao.com/lishi/zhengzhou/month/201904.html
# 鹤岗
http://www.tianqihoubao.com/lishi/hegang/month/201101.html
http://www.tianqihoubao.com/lishi/hegang/month/201108.html

可以发现有变化的地方只有城市名称和日期,

http://www.tianqihoubao.com/lishi/[城市名称]/month/[日期].html

那么我们就只需要设置【城市名称】和【日期】两个变量。就可以构建不同的城市和日期的天气页面的URL地址,有了URL地址就可以批量抓取多个城市,多个年份月份的天气数据了

构建爬虫

我门可以直接在power bi 中构建城市日期的列表,这样的话当需要更新数据的时候只需要在power bi 内部修改数据并刷新就可以得到最新的数据了

创建城市列表
  • 打开power bi,选择【输入数据】,输入想要爬取的城市名称和所对应的拼音,

  • 点击右上的 + 号,为添加新的一列

  • 点击左下的 + 号,为添加新的行

  • 列名可以双击来更改

  • 下面蓝线标注的地方为表名

  • 数据都设置好后,点击【编辑】,进行下一步日期的输入
    power BI 天气数据爬取

创建日期列

日期列的创建可以通过 M 函数 #date 来创建
创建一个起始日期和一个结束日期,然后对这两个日期进行运算,得出起始日期和结束日期中间的所有的日期

先创建一个起始日期,在【添加列】选项下,点击【自定义列】,输入列名和日期公式,点击确定,如下:
power BI 天气数据爬取
然后创建一个结束日期,在【添加列】选项下,点击【自定义列】,输入列名和日期公式,点击确定
power BI 天气数据爬取
添加完成后的结果如下:有四列数据 城市名称 城市拼音 起始日期 结束日期
power BI 天气数据爬取
因为URL中用到的是年份和月份
下面添加所需要的年份和月份的列
首先,计算出起始日期到结束日期每一天的日期
点击【添加自定义列】输入如下公式
power BI 天气数据爬取
添加完之后展开此列,选择【扩展到新行】
power BI 天气数据爬取

展开之后如下,并不是显示的日期的形式,需要把这一列的类型改为日期
power BI 天气数据爬取
在【每日日期】上面点击–右键–选择【更改类型】-- 选择【日期】,转换之后如下:都已经转换为日期形式了

power BI 天气数据爬取
因为URL里面所用的是年和月的数据,还需要进一步对日期数据进行处理
我们可以使用 Date.ToText 来对日期进行转换,
添加一个新的自定义列,公式如下:
power BI 天气数据爬取
转换之后如下,此时就是我们需要的年月的格式了
power BI 天气数据爬取

下面我们再通过【每日日期】列 来提取出【年】和【月】的数据,方便后面做筛选的时候用。
提取出年的列,选中【每日日期】列,点击上方选项菜单的日期选项,选中【年】–在选中【年】点击
power BI 天气数据爬取

提取出月的列,选中 【日期】选中,选中【月】–在选中【月】点击
power BI 天气数据爬取

完成之后如下显示:
power BI 天气数据爬取

下一步删除用不到的数据【起始日期】,【结束日期】,【每日日期】
power BI 天气数据爬取
删除完之后选中所有的列,在列标签上点击右键,选择【删除重复项】。去重,之后所需要的数据基本就准备完成了
power BI 天气数据爬取
所需要的数据基本就准备完成了
power BI 天气数据爬取

构建动态URL地址来获取数据

选择添加新的【自定义列】,输入公式如下。power BI 天气数据爬取
在输入的时候要注意【城市拼音】和【URL日期】的格式需要设置为“文本”,
power BI 天气数据爬取

而且数据中不要有空格等符号,要不然会获取不到数据

注意

再获取数据是出现隐私级别警告时,设置如下
power BI 天气数据爬取

输入完成后,点击确定,然后需要等一段时间获取数据,(数据量越大等待时间越长)
加载完成后新的列为一个table数据,下一步,我们需要展开数据
power BI 天气数据爬取
点击右边上的展开按钮,选择 Caption 和 Data两个选项 点击确定
power BI 天气数据爬取
展开后的数据如下:拆开了两列,后面data列还是一个表 需要继续拆分
power BI 天气数据爬取

先取消勾选 Document选项
power BI 天气数据爬取
然后,点击展开按钮,选择Column1,2,3,4点击确定,展开数据
power BI 天气数据爬取
展开后再 Column1列里面取消勾选 日期
power BI 天气数据爬取

最后后我门就能看到爬取到的天气信息,如下
power BI 天气数据爬取

上一篇:power supply是如何上报电池信息的


下一篇:Power BI 参数动态调整 瀑布图Y轴起始值