一步一步教你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---出版社增删查改开发流程回顾
1,第一步:对应url 2,第二步:views.py 3,第三步:views.py中的函数中利用ORM去数据库中操纵数据 4,第四步:Django模板语言实现字符串替换 5,第五步:取出publish ...
- tf.contrib.layers.xavier_initializer
https://blog.csdn.net/yinruiyang94/article/details/78354257xavier_initializer( uniform=True, seed=No ...
- H3C ACL包过滤显示与调试
- pycharm解析器找不到
pycharm每个项目都需要设定解释器位置吧,把自己解释器位置添加到项目设置就好了 先装python,再装pycharm,不然找不到解析器的,解析器其实就是python.exe.
- java 类加载器的委托机制
l 当Java虚拟机要加载一个类时,到底派出哪个类加载器去加载呢? 1.首先当前线程的类加载器去加载线程中的第一个类. 2.如果类A中引用了类B,Java虚拟机将使用加载类A的类装载器来加载类B. 3 ...
- 【u201】矩形覆盖
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 有N个矩形,矩形的底边边长为1,且均在X轴上,高度给出,第i个矩形的高为h[i],例如h = [3, ...
- webpack4.0基本配置,超简单!
最近复习了一下webpack,使用的是4.0版本. 下图是基本目录结构,最后留有代码地址,有兴趣可以去看看. 直接上代码(依赖未完全使用): 项目的所有依赖都可以安装,每个都有详细的注释.] cons ...
- Linux 内核引用计数的操作
一个 kobject 的其中一个关键函数是作为一个引用计数器, 给一个它被嵌入的对象. 只 要对这个对象的引用存在, 这个对象( 和支持它的代码) 必须继续存在. 来操作一个 kobject 的引用计 ...
- 使用 koa-router 路由拆分
根据功能不同,将路由拆分到不同的模块 目录结构: app.js const Koa = require('koa'); const Router = require('koa-router'); co ...
- onload事件属性,JQ中的load,ready方法
onload事件属性,JQ中的load,ready方法 前言 页面中的很多操作,需要我们在所需资源下载完成后,才可以进行操作,而资源没有及时下载,我们进行操作的话,是会报错.因此我们需要熟练掌握哪些事 ...