官术网_书友最值得收藏!

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

主站蜘蛛池模板: 五寨县| 抚顺县| 思南县| 青海省| 简阳市| 金湖县| 遵化市| 文昌市| 阿拉善右旗| 侯马市| 鹤庆县| 巨野县| 永靖县| 海兴县| 濮阳市| 理塘县| 阿合奇县| 策勒县| 齐齐哈尔市| 洞口县| 晋宁县| 左权县| 甘南县| 固镇县| 鹿邑县| 中山市| 西贡区| 江华| 安义县| 寻乌县| 吕梁市| 哈密市| 奉化市| 丰台区| 曲麻莱县| 宜兰县| 桂平市| 长沙县| 遂川县| 宣恩县| 四会市|