一步一步教你PowerBI利用爬虫获取天气数据分析
对于爬虫大家应该不会陌生,我们首先来看一下爬虫的定义:网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。网络爬虫为搜索引擎从万维网下载网页,自动获取网页内容的应用程序。看到定义我们应该已经知道它是可以从万维网上下载网页解析网页数据的。大家想一下在数据分析情景中它的应用场景有哪些?采集天气数据,网站采集文章,采集各种票务信息,股票信息采集等等有很多地方都会用的爬虫采集数据进行数据分析。通过数据分析增加分析维度信息,尤其是行业数据对标。
提及爬虫有些软件工程师会第一时间想到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数据转换为表格。在后续的分析情景中我会进一步来讲解爬虫应用。
一步一步教你PowerBI利用爬虫获取天气数据分析的更多相关文章
- 利用json获取天气信息
天气预报信息获取是利用json获取的,网上有非常多资源,源码.因为上面涉及到非常多天气信息,包含湿度,出行建议等,以及加入了全部城市代码的资源包.为了练手了解json的原理.我仅获取诚笃城市的最高温, ...
- python 利用爬虫获取页面上下拉框里的所有国家
前段时间,领导说列一下某页面上的所有国家信息,话说这个国家下拉框里的国家有两三百个,是第三方模块导入的,手动从页面拷贝,不切实际,于是想着用爬虫去获取这个国家信息,并保存到文件里. 下面是具体的代码, ...
- python利用爬虫获取百度翻译,爱词霸翻译结果,制作翻译小工具
先看效果展示(仅作学习使用,非商业) 效果图是采用的 爱词霸 翻译,百度翻译 也实现了,只不过被注释了. 学计算机很多时候碰到生词,每次打开手机/浏览器翻译总觉得很麻烦,就想着自己写一个软件,自己去实 ...
- 一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app
一步一步教你用 Vue.js + Vuex 制作专门收藏微信公众号的 app 转载 作者:jrainlau 链接:https://segmentfault.com/a/1190000005844155 ...
- Ace教你一步一步做Android新闻客户端(一)
复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和 ...
- 一步一步教你实现iOS音频频谱动画(一)
如果你想先看看最终效果再决定看不看文章 -> bilibili 示例代码下载 第二篇:一步一步教你实现iOS音频频谱动画(二) 基于篇幅考虑,本次教程分为两篇文章,本篇文章主要讲述音频播放和频谱 ...
- 一步一步教你如何在linux下配置apache+tomcat(转)
一步一步教你如何在linux下配置apache+tomcat 一.安装前准备. 1. 所有组件都安装到/usr/local/e789目录下 2. 解压缩命令:tar —vxzf 文件名(. ...
- 一步一步教你将普通的wifi路由器变为智能广告路由器
一步一步教你将普通的wifi路由器变为智能广告路由器 相信大家对WiFi智能广告路由器已经不再陌生了,现在很多公共WiFi上网,都需要登录并且验证,这也就是WiFi广告路由器的最重要的功能.大致就是下 ...
- 一步一步教你使用Git
一步一步教你使用Git 互联网给我们带来方便的同时,也时常让我们感到困惑.随便搜搜就出一大堆结果,然而总是有大量的重复和错误.小妖发出的内容,都是自己实测过的,有问题请留言. 现在,你已经安装了Git ...
随机推荐
- Python--day63--单表的增删改查/GET和POST/request相关知识点回顾
- java 网络编程Socket
TCP: 通过TCP协议传输,得到的是一个顺序的无差错的数据流. 发送方和接收方的成对的两个socket之间必须建立连接, 以便在TCP协议的基础上进行通信,当一个socket(通常都是server ...
- 【git】Git回退代码到指定版本
1. 查看所有的历史版本,获取你git的某个历史版本的id, git log2. 回退本地代码库:git reset --hard ID3. 推送到远程服务器:git push -f -u origi ...
- 【u105】路径计数2
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 一个N×N的网格,你一开始在(1, 1),即左上角.每次只能移动到下方相邻的格子或者右方相邻的格子,问 ...
- linux进程一个阻塞 I/O 的例子
最后, 我们看一个实现了阻塞 I/O 的真实驱动方法的例子. 这个例子来自 scullpipe 驱 动; 它是 scull 的一个特殊形式, 实现了一个象管道的设备. 在驱动中, 一个阻塞在读调用上的 ...
- ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)
本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.c ...
- 2018-2-13-win10-uwp-图标制作器
title author date CreateTime categories win10 uwp 图标制作器 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17 ...
- P3803 FFT求多项式系数
P3803 FFT求多项式系数 传送门:https://www.luogu.org/problemnew/show/P3803 题意: 这是一道FFT模板题,求多项式系数 题解: 对a和b的系数求一个 ...
- [译] 重新思考 1 号进程 / Rethinking PID 1
By Lennart Poettering 译 SReadFox 原文链接:http://0pointer.de/blog/projects/systemd.html 译注:笔者大约在 2011 年读 ...
- FCKeditor使用
fckeditor - (1)资料介绍与安装 fckeditor介绍 FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器. 1.fckeditor官网:http://ww ...