对于爬虫大家应该不会陌生, 我们首先来看一下爬虫的定义: 网络爬虫是一种自动获取网页内容的程序, 是搜索引擎的重要组成部分. 网络爬虫为搜索引擎从万维网下载网页, 自动获取网页内容的应用程序. 看到定义我们应该已经知道它是可以从万维网上下载网页解析网页数据的. 大家想一下在数据分析情景中它的应用场景有哪些? 采集天气数据, 网站采集文章, 采集各种票务信息, 股票信息采集等等有很多地方都会用的爬虫采集数据进行数据分析. 通过数据分析增加分析维度信息, 尤其是行业数据对标.
提及爬虫有些软件工程师会第一时间想到 Python.Python 确实是非常方便的开发软件, 会附带大量的依赖库, 可以非常简单快速构建爬虫应用程序目前有一些框架只需要写提取规则就可以实现数据提取. 我们这里要讲的爬虫是针对 PowerBI 软件中创建的采集天气数据爬虫程序. 很多行业会受天气影响较大, 如果能够知道某地区的天气数据历史记录, 就可以让销售数据的维度更加丰富. 从而给决策者判断问题时做出更好的参考. 接下来小黎子将以湖北省主要城市为例, 带领大家一起实现 PowerBI 构建爬虫抓取天气数据历史记录. 本案例的数据源来自于网络 - 天气后报, 网页中的数据最简单的一种形式就是表格. 通过本文大家可以和我一样实现下图的天气报告
一, 分析网站的 URL 结构
1, 确定城市列表 URL 数据
我要分析的数据是湖北省主要城市的天气, 首先在天气后报网站中找到历史天气, 点击进入后找到湖北省
2, 确定城市的 URL 信息
打开任意一个城市的界面, 可以单独页面内容为武汉市各年度历史天气列表. 主要 URL 中有 WUHAN 字符. 这里我们可以确定每个城市的链接都存在着相同的规律.
3, 确定月份的 URL 信息
点击上图的任意月份, 进入月份的天气列表页. 通过分析 URL 地址我们也可以看到规律. URL 中城市拼音加年月的变量可以获得各个城市各个月份每天的天气状况.
二, 构建爬虫主体
在分析 URL 过程中我们已经找到了网页 URL 的规律, 因此, 我们可以建立城市列表和日期列表. 将两个参数引入 URL, 从而抓取城市不同时间的天气数据. 注意, 历史天气数据是回顾过去的, 天气预报也是一样的分析思路.
1, 建立城市列表
2, 建立日期列表
在城市列表中添加开始日期
结束日期
日期, 注意这里需要将日期转换为数值, 提取完成后再转换为日期
展开日期列数据, 将格式更改为日期类型
添加年月列
提取年和月数据用于后续切片器
删除重复项
3, 将我们处理好的数据赋值到 URL 中
城市列表和日期列表都已经处理好了, 下一步就是处理两个列表和 URL 的关联关系
新建 URL 自定义列
忽略隐私检查
展开 URL 列, 选择 Source 和 Data 列即可
展开 Data 列, 只保留前四列数据
删除多余的内容, 筛选去除标题和空白行
拆分气温为最高和最低气温, 按分隔符 / 拆分
去除温度符号℃, 用于转换为数值
处理后
到这里我们已经完成了爬虫的数据清洗工作, 接下来就开始进入可视化报告制作.
注意: 由于起始日期为 2011-1-1 下载的数据量比较大, 需要等待很长时间. 大家可以将起始日期更改为 2019-1-1 以后的日期加载数据会比较快一点.
三, 制作可视化报告
1, 制作年份, 月份, 城市切片器. 城市切片器注意设置方向为水平方向
2, 气温趋势线
3, 天气明细矩阵表
4, 区域地图
大家可以根据自己的喜好调整不同的主题颜色
四, 总结
我们顺利完成了抓取湖北省各个城市的 2019 年的历史天气数据. 在使用 PowerBI 爬虫应用时需要注意的点:
1, 分析 URL 规律是开始处理爬虫的最重要的环节
2, 通过 PowerBI 输入数据功能建立城市列表和使用 M 函数建立日期列表.
3, 两个列表结合处理 URL 地址解析对应的天气数据, 通过 web.CONTENTS 提取网页内容是爬虫的核心内容. 大家可以继续延伸学习 M 函数的使用方法.
4, 在后续的文章中也会出现少量的 M 函数使用, 编辑器中会有智能提示告诉大家使用规则, 大家也可以通过微软官网查看 M 函数的语法.
注意: PowerBI 爬虫应用不只是能够解析这种简单的结构, 目前有很多的网站后台都是传递的 JSON 数据, PowerBI 也是可以应对的处理的, 只是需要将 JSON 数据转换为表格. 在后续的分析情景中我会进一步来讲解爬虫应用.
来源: https://www.cnblogs.com/fly-bird/p/12207096.html