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、批量采集:

★第一步:解析网址

 

 

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

★第二步:创建函数

选中我们加载上来的表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作为文本变量,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结束的单列表

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

★第三步:批量爬取数据

 

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

 

 

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

 

 

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

 

 

 

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

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

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

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

 

 

目前已组建有BI在线服务团队,活跃接单老师超百人,专注解决BI横向、纵向相关的各类技术问题,包括但不限于各类BI工具、python、数据仓库、编程开发等服务。

 

 

 

BI包括但不限于永洪bi、quickbi、PowerBI、FineBI、Finereport、smartbi、tableau、qliksense等BI工具 ,可以制作BI系统,或解决单个项目,单个问题,考试相关、一对一教学等服务有意联系瓶子微信:wdfyqx

 

posted @ 2024-07-05 23:34  瓶子xf  阅读(407)  评论(0编辑  收藏  举报