一步一步教你powerbi利用爬虫获取天气数据分析

fly-bird fly-bird     2023-04-26     733

关键词:

  对于爬虫大家应该不会陌生,我们首先来看一下爬虫的定义:网络爬虫是一种自动获取网页内容的程序,是搜索引擎的重要组成部分。网络爬虫为搜索引擎从万维网下载网页,自动获取网页内容的应用程序。看到定义我们应该已经知道它是可以从万维网上下载网页解析网页数据的。大家想一下在数据分析情景中它的应用场景有哪些?采集天气数据,网站采集文章,采集各种票务信息,股票信息采集等等有很多地方都会用的爬虫采集数据进行数据分析。通过数据分析增加分析维度信息,尤其是行业数据对标。

  提及爬虫有些软件工程师会第一时间想到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数据转换为表格。在后续的分析情景中我会进一步来讲解爬虫应用。

一步一步教你在docker容器下使用mmdetection训练自己的数据集

这里不再介绍mmdetection的安装和配置,使用mmdetection较简单的方法是使用已安装mmdetection的docker容器。这样直接省去了安装mmdetection的过程,让重心放在模型训练上!如果你对docker和mmdetection还不是很熟悉,请自行搜索一下,本文... 查看详情

一步一步教你反向传播的样例

背景反向传播(Backpropagation)是训练神经网络最通用的方法之中的一个,网上有很多文章尝试解释反向传播是如何工作的,可是非常少有包括真实数字的样例,这篇博文尝试通过离散的数据解释它是如何工作的。Python实现的反向传... 查看详情

一步一步教你认识闭包

...什么用?为什么要用闭包?今天我们就带着这3个问题来一步一步认识闭包。闭包和函数紧密联系在一起,介绍闭包前有必要先介绍一些背景知识,诸如嵌套函数、变量的作用域等概念作用域作用域是程序运行时变量可被访问的... 查看详情

一步一步教你制作销售目标分析报告

...我已经使用了一个入门案例动态销售报告来带领大家入门PowerBI的入门学习,基于动态销售报告,我可以在来进行细化处理销售目标表中的数据。本文的主题就是销售目标的分析。我们都知道销售目标是销售的起点,销售人员每... 查看详情

一步一步教你接入tinker热修复

官方文档:https://github.com/Tencent/tinker 下面我们按照官方文档和这个里面的tinker-sample-android来进行集成Tinker。注意说明,官方demo的使用https://github.com/Tencent/tinker/wiki/Tinker-接入指南里面的使用步骤详解,注意:官方demo导... 查看详情

一步一步教你ssm整合swagger(代码片段)

一:什么是swagger??swagger是一款非常好用的写API文档的框架。其他自行百度二:ssm整合swagger?1:在maven的pom文件中引入依赖:(注意版本,否则会导致tomcat不能正常启动)<!--引入swagger--><!--springfox的核心jar包--><depende... 查看详情

一步一步教你如何制件zkeacms的扩展组件/插件

前言如果你还不知道ZKEACMS,不妨先了解一下。ASP.NETMVC开源建站系统ZKEACMS推荐,从此网站“拼”起来官方地址:http://www.zkea.net/zkeacms下载地址:https://github.com/SeriaWei/ASP.NET-MVC-CMS/releasesGitHub:https://github.com/SeriaWei/ASP. 查看详情

02~一步一步教你使用svn之svn的介绍

SVN的介绍一.学习SVN的主要内容的介绍1.基本操作:学习SVN有哪些基本操作2.服务器端的安装配置:SVN中必不可少的2个环境之一,会在下面的课程中介绍服务器如何去安装和配置3.客户端软件的使用:在实际开发中,使用客户端软件来操... 查看详情

一步一步教你将开源项目上传到jcenter

...来,希望能帮助到小伙伴们,现在觉得还是挺简单的。第一步:首先是注册,这就是我踩的最大的一个坑,导致我一天都没有上传成功。网上说的都是去jcenter的网站上注册就 查看详情

一步一步教你yaml快速入门

Java学习之路迢迢,无论是开局helloword,还是从头文件说起,总之,都是有顺序可言。我们学习Java,都是先介绍properties文件,使用properties文件配合Properties对象能够很方便的适用于应用配置上。然后在引入XML的时候,我们介绍prop... 查看详情

一步一步教你制作的第一个wordpress插件(代码片段)

💂个人网站:【海拥】【摸鱼小游戏】【神级源码资源网站】🤟风趣幽默的前端学习课程:👉28个案例趣学前端💅想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬免费且实用... 查看详情

一步一步教你制作的第一个wordpress插件(代码片段)

💂个人网站:【海拥】【摸鱼小游戏】【神级源码资源网站】🤟风趣幽默的前端学习课程:👉28个案例趣学前端💅想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬免费且实用... 查看详情

高阶数据结构(壹)——一步一步教你手撕avl树(增删查改)画图详解,内含代码实现包含注释)(代码片段)

        🍎作者:努力学习的少年 🍎个人简介:双非大二,一个正在自学c++和linux操作系统,写博客是总结知识,方便复习 🍎目标:进大厂 🍎如果你觉得文章可以的话,... 查看详情

2.一步一步教你使用pycharm运行起第一个django项目(代码片段)

下面步骤展示的是如何经过VirtualBox管理器,使得pycharm和ubuntu中的项目环境连接对应起来!如果你有属于自己的服务器,核心步骤都是大差不差的,甚至使用服务器步骤更简单许多哦!(但是要注意:... 查看详情

一步一步教你apache深入优化

Aache深入优化一、在Centos01上安装apache服务,在Centos02配置DNS服务器使用域名www.stz.com1、在Centos01上安装apache服务配置网站1)切换光盘2)挂载光盘解压源代码程序[root@centos01~]#mount/dev/cdrom/mnt/mount:/dev/sr0写保护,将以只读方式挂载[r... 查看详情

python如何做词云一步一步教你如何做

...望你不要限于浏览,而是亲自动手尝试一番。到完成的那一步,你不仅可以做出第一张词云图,而且这还将是你的第一个有用的编程作品。1、请确保你的python环境没有问题,用的开发工具是VsCode,首先你要在Python扩展中安装pytho... 查看详情

一步一步教你nginx地址重写

Nginx地址重写一、在Centos01上安装安装Nginx,设置网站根目录/www使用域名www.stz.com访问,Cent02上安装DNS服务解析www.stz.com和www.stz.com.cn以及www.stz.com.en域名1、在Centos01上安装nginx依赖1)挂载系统光盘配置本地yum仓库[root@centos01~]#mount/d... 查看详情

一步一步教你tomcat优化和发布动态网站

Tomcat性能优化一、安装Centos01上安装tomcat发布动态网站jpress使用www.Benet.com访问,配置虚拟机主机通过www.benet.com和www.accp.com访问不同的虚拟主机1)上传tomcat文件包[root@centos01~]#rz[root@centos01~]#lsanaconda-ks.cfg公共图片音乐apache-tomcat-8.5... 查看详情