power BI 天气数据爬取

简介

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

数据爬取

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

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

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

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

在这里插入图片描述
之后power bi 会自动分析网页,提取出数据信息
选择左边的表直接加载数据就ok了
在这里插入图片描述
这样抓取一页的数据太简单了。

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

分析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,选择【输入数据】,输入想要爬取的城市名称和所对应的拼音,

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

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

  • 列名可以双击来更改

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

  • 数据都设置好后,点击【编辑】,进行下一步日期的输入
    在这里插入图片描述

创建日期列

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

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

展开之后如下,并不是显示的日期的形式,需要把这一列的类型改为日期
在这里插入图片描述
在【每日日期】上面点击–右键–选择【更改类型】-- 选择【日期】,转换之后如下:都已经转换为日期形式了

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

下面我们再通过【每日日期】列 来提取出【年】和【月】的数据,方便后面做筛选的时候用。
提取出年的列,选中【每日日期】列,点击上方选项菜单的日期选项,选中【年】–在选中【年】点击
在这里插入图片描述

提取出月的列,选中 【日期】选中,选中【月】–在选中【月】点击
在这里插入图片描述

完成之后如下显示:
在这里插入图片描述

下一步删除用不到的数据【起始日期】,【结束日期】,【每日日期】
在这里插入图片描述
删除完之后选中所有的列,在列标签上点击右键,选择【删除重复项】。去重,之后所需要的数据基本就准备完成了
在这里插入图片描述
所需要的数据基本就准备完成了
在这里插入图片描述

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

选择添加新的【自定义列】,输入公式如下。在这里插入图片描述
在输入的时候要注意【城市拼音】和【URL日期】的格式需要设置为“文本”,
在这里插入图片描述

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

注意

再获取数据是出现隐私级别警告时,设置如下
在这里插入图片描述

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

先取消勾选 Document选项
在这里插入图片描述
然后,点击展开按钮,选择Column1,2,3,4点击确定,展开数据
在这里插入图片描述
展开后再 Column1列里面取消勾选 日期
在这里插入图片描述

最后后我门就能看到爬取到的天气信息,如下
在这里插入图片描述

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值