![Power BI电商数据分析与商业智能(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/86/43738086/b_43738086.jpg)
5.2 动态数据采集
动态数据指采集的目标数据在JS或XHR中,在网页中有特定操作才会向服务器请求加载。
例:批量采集马刺和火箭两支球队的球员在2017年和2018年的比赛数据,以便对比两支球队的球员表现。
根据球队名称、球队名称英文缩写和年份创建球队信息表,如表5-2所示。
表5-2
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_56_1.jpg?sign=1739278801-d4vmntV1PgCpxKUeVY8xD9kjaokdqK9F-0-687f7dbba45919ad84d1723a830196aa)
在浏览器的开发者模式下,进入NetWork(网络)界面,选择不同年份的赛季,此时NetWork窗口的左侧会新增文件链接,单击新增文件链接,在Preview窗口可查看文件内容,如图5-26所示。
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_56_2.jpg?sign=1739278801-CQlHqXrSlVOAzDaO2x8I2W0AD9WMjQFc-0-f2a159e10736685356835086405c8681)
图5-26
数据加载好后,就可以将需要采集的球队数据和年份数据作为参数导入。将表5-2中的数据输入Excel工作表,在Power BI界面的“主页”选项卡中单击“获取数据”下拉按钮,在弹出的下拉列表中选择“Excel”选项,在打开的对话框中选择之前写入表5-2的Excel文件,如图5-27所示,将数据导入Power Query编辑器。
进入Power Query编辑器后,将年份的格式设置为文本,如图5-28所示,便于后续作为参数传入URL中。
创建目标URL,在“添加列”选项卡中单击“自定义列”按钮,弹出“自定义列”对话框,在“自定义列公式”文本框中输入“="http://www.stat-nba.com/team/stat_box_team.php?team="&[缩写]&"&season="&[年份]&"&col=pts&order=1&isseason=1"”,并将新列名设置为“URL”,如图5-29所示。
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_57_1.jpg?sign=1739278801-B8VQOcGr06K6dDc4a8gMbnN9yUnezIRb-0-a475872dc082389eb212151d5df6c7e5)
图5-27
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_57_2.jpg?sign=1739278801-GMhmoHW5n5YBoTVMmG2ZImRGPbtS8pXx-0-ed018f3e2f2e1afc464e88e6bac21185)
图5-28
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_58_1.jpg?sign=1739278801-tE0IMF5drmfBUnKLMumPpELlyFLp5jE8-0-802ccf56c0efbd9539914c072f9e773a)
图5-29
创建好URL后,根据URL下载文件。在“添加列”选项卡中再次单击“自定义列”按钮,弹出“自定义列”对话框,在“自定义列公式”文本框中输入=“Web.Page(Text.FromBinary (Web.Contents([URL]),65001)){0}[Data]”,如图5-30所示。
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_58_2.jpg?sign=1739278801-e9mqJKjc7EjLR7hy1tDizoS0G21zKz5a-0-e684b4ce0a897bdd652abdc671a516c1)
图5-30
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_59_1.jpg?sign=1739278801-6VUVkJqQqrDwC969DC1lc4Td0KCSn8jR-0-ad6260606fc2f6d62d8e2a0f8be51917)
图5-31
Text.FromBinary:将二进制文件转换成文本,其语法结构为Text.FromBinary(binary as nullable binary,optional encoding as nullable number) as nullable text。本例使用该函数是为了解决乱码问题,第二个参数65001表示UTF8编码。
成功下载数据后,展开所有列,可以直接取消勾选空列,并且取消勾选“使用原始列名作为前缀”复选框,如图5-31所示。
展开数据后,取消勾选“总计”“全队数据”“对手数据”复选框,如图5-32所示。
在Power Query编辑器的“主页”选项卡中,单击“关闭并应用”按钮。
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_60_1.jpg?sign=1739278801-HA52Ci03rBmvLMwHSE171ra7LNQEpW0o-0-1c8a3da53a810e6b88fffd7872e3457d)
图5-32
加载好的球员数据如图5-33所示。
![](https://epubservercos.yuewen.com/6CE043/23020640901648106/epubprivate/OEBPS/Images/42250_60_2.jpg?sign=1739278801-Js1wjfOaOa5O0AlQTvkuSCWv67P5Wz6x-0-3b6b1de8c922fa9aa19c096eae7fb4a6)
图5-33