- Power BI電商數據分析與商業智能(第2版)
- 零一 聶健華
- 768字
- 2022-05-06 18:18:09
5.2 動態數據采集
動態數據指采集的目標數據在JS或XHR中,在網頁中有特定操作才會向服務器請求加載。
例:批量采集馬刺和火箭兩支球隊的球員在2017年和2018年的比賽數據,以便對比兩支球隊的球員表現。
根據球隊名稱、球隊名稱英文縮寫和年份創建球隊信息表,如表5-2所示。
表5-2

在瀏覽器的開發者模式下,進入NetWork(網絡)界面,選擇不同年份的賽季,此時NetWork窗口的左側會新增文件鏈接,單擊新增文件鏈接,在Preview窗口可查看文件內容,如圖5-26所示。

圖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所示。

圖5-27

圖5-28

圖5-29
創建好URL后,根據URL下載文件。在“添加列”選項卡中再次單擊“自定義列”按鈕,彈出“自定義列”對話框,在“自定義列公式”文本框中輸入=“Web.Page(Text.FromBinary (Web.Contents([URL]),65001)){0}[Data]”,如圖5-30所示。

圖5-30

圖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編輯器的“主頁”選項卡中,單擊“關閉并應用”按鈕。

圖5-32
加載好的球員數據如圖5-33所示。

圖5-33