Power BI实用技巧——批量爬取网页数据

Power BI实用技巧——批量爬取网页数据

假设我是个电商公司老板,我的公司最近要上架一款新产品,我需要你来帮我做一个竞品分析,同类型产品的评分、价格、销量、市场占有率最高的品牌详情,来帮助我进行前期宣发,这个时候最让你一筹莫展的环节是什么?我猜是数据从哪来?竞争对手当然是不会整理一张表发你的喽

既然是电商,那么所有数据来源就只能从电商平台获取,那么问题也就接踵而至了,网页爬取数据不规范,数据清洗困难重重,相同产品网页少则十几页,多则几十页,难道要一页一页的爬吗?这时候我又来让你搞快点,不然别下班,不要耽误我赚钱!怎么办?难道真的要为了区区五斗米熬夜?当然不用喽!跟我一起做,五分钟爬取海量数据,解决让你头秃的难题!

案例:当当网累计好评榜批量爬取

1、单量采集:http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-all-0-0-1-1

上方展示网址为当当网累计好评榜网址,复制这个网址,打开Power BI,第一步:点击获取数据,选择Web(从网页导入数据),第二步:粘贴网址,点击确定,

第一步:获取数据

图片

第二步:链接网址

图片

点击导航器显示选项左下角“使用示例添加表”,展开如下界面

图片

第三步:规范采集

这里假设我们要提取宝贝名称、作者、出版社、出版日期,五星评论、总评论数量等,将我们要提取的项目名称输入到列名中,在列中输入我们要提取的内容,比如我们要提取宝贝名称,在列中输入“高尔基成长三部曲(童年、在人间、我的大学)”,回车系统便可自动向下填充我们要提取的内容,下图为我已经提取好的表截图,

图片

点击确定,选择表4,点击转换数据进入Power Query界面对加载上来的表格进行清洗,比如替换数据列中的文字,将数据转换为可以运算的数据格式等,最终得到一张规范的数据表格,如图所示,

图片

进行到这一步,单量采集就算大功告成了,有些小伙伴很疑惑,数据清洗为啥不等批量采集完成在一起做呢?这样等批量采集完成后,岂不是又要清洗一遍?

请带着这个疑问继续阅读哦!

2、批量采集:

第一步:解析网址

图片

上面的网址是当当网累计好评榜第一页和第二页的网址,我们通过观察发现红框位置内容是一样的,唯一发生变化的是网址后缀的1、2,我们需要爬取的数据总共有25页,按照这个规律,后缀变量应该是1到25,请记住这个规律,很关键!

第二步:创建函数

选中我们加载上来的表4,点击右键,选择创建函数,跳出提示框

图片

点击创建,跳出提示框,输入函数名称为“调用函数”,点击确定,出现如下界面

图片

接下来我们就要对上图中的M函数进行修改,主要修改第一行和第二行,其他代码保持不变,将函数修改为:

➽示例

=(x as text) => let
源 = Web.BrowserContents("http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-all-0-0-1-"&x),

√代码解析:(x as text)为修改位置,

(x as text)这里的含义是将x作为文本变量,http://bang.dangdang.com/books/fivestars/01.00.00.00.00.00-all-0-0-1-"&x这里的含义是将网址与文本变量连接,形成一个完整的网址;

点击调用,我们的调用函数就创建完成了。

第三步:创建变量序列表

1、接下来我们回到主页选项卡,点击新建源,选择空查询,建立一个空白查询页,如图

图片

2、在代码输入框中输入一个M函数:

★示例

= List.Numbers(1,25,1)

√代码解析:

List.Number用于生成一个数字序列的列表

(1,25,1)起始数据是1,创建25组,间隔数据是1

代码生成一个从1开始到25结束的单列表

为什么创建这样一张表呢?因为网址后缀变量应该是1到25,也就是我们解析网址后,总结出来的规律,点击将此列转换为表,将列格式转换为文本(这一步很重要哦)。

第三步:批量爬取数据

1、接下来就是批量采集最关键的一步了,找到添加列选项卡,选择调用自定义函数,将我们之间创建的“调用函数”添加到功能查询中,

图片

2、点击确定,出现“要求与数据隐私有关信息”提示语。点击继续,勾选忽略此文件的隐私级别检查,点击保存,如下图所示操作,

图片

经过漫长的等待(大概2分钟哦),系统就将网页数据全部提取上来,并返回这样一张表

图片

我们只需要展开调用函数,就可以将25页网页数据批量抓取到Power Query 界面,而且你会惊喜的发现,抓取到的数据不仅按照单量采集的表格规范呈现,而且已经被清洗好了,简直事半功倍啊,这是因为我们在单量采集时就完成了数据清洗,在我们创建调用函数时,保留了全部数据清洗动作代码,所以在我们批量采集网页数据时,同时也在批量的清洗数据,这也就是为什么我们要在单量采集时就完成数据清洗动作!

小贴士:如何让我们学到的知识爆金币呢?

将我们爬取到的数据关闭并应用后,就可以通过DAX studio批量导出为EXCEL表格,将数据上传到科赛网数据集专栏中,当有人下载你上传的数据时,就是知识爆金币时!

科赛网网址:https://www.heywhale.com/home,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

瓶子xf

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

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

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

打赏作者

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

抵扣说明:

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

余额充值