在大數據時代,除了企業、公司和個人,網際網路也是一個非常重要的數據來源。隨著信息化社會的快速發展,網際網路中可以獲取的數據也越來越多,並且多數網站所提供的數據並非一兩個頁面所能容納的,如股票行情數據,由於上市交易的股票數量眾多,所以網站提供的數據通常都會有幾十個網頁,甚至更多。
雖然通過【數據】選項卡的【從網站】功能可以獲取單個網頁中的數據,但是這樣的操作顯然無法勝任收集大量網頁數據的任務。批量收集網站數據,又被稱為網絡數據抓取,有時也被簡稱為「網抓」。用於網抓的工具或軟體通常被稱為網絡爬蟲(Web Crawler)。
以某網站的「個股市盈率」網頁為例,如圖 2-139 所示,每個頁面中有 50 行數據,共有 64 個網頁。讓我們使用Power Query的方式實現抓取前 5 個網頁的數據。

圖 2-139 個股市盈率網頁
步驟 1
單擊【數據】選項卡的【自網站】按鈕,在彈出的【從 Web】對話框的【URL】文本框中輸入這一地址內容再進行下一步操作:「http://data.10jqka.com.cn/market/ggsyl/fifield/syl/order/desc/page/1」單擊【確定】按鈕關閉【從 Web】對話框,如圖 2-140 所示。

圖 2-140 在【從 Web】對話框中輸入 URL82
步驟 2
Excel 查詢數據之後,將彈出【導航器】對話框,在對話框左側單擊【Table 0】,在對話框右側的【表視圖】中將顯示相應的數據內容,單擊【轉換數據】按鈕,如圖 2-141 所示。

圖 2-141 在【導航器】對話框中選擇表格
步驟 3
在彈出的【Table 0 – Power Query 編輯器】窗口中,單擊【開始】選項卡的【高級編輯器】按鈕,在彈出的【高級編輯器】對話框中修改公式(區分字母大小寫),單擊【完成】按鈕關閉對話框,如圖 2-142 所示。

圖 2-142 修改 Power Query 公式
步驟 4
在【查詢設置】窗格的【名稱】文本框輸入「GetWebPage」修改查詢名稱,單擊【開始】選項卡的【關閉並上載】按鈕關閉編輯器窗口,如圖 2-143 所示。

圖 2-143 修改查詢名稱並上載
步驟 5
在 Excel 的【查詢 & 連接】窗格中查詢名稱「GetWebPage」之前顯示「fx」標識,說明這是一個自定義函數。依次單擊【數據】選項卡→【獲取數據】下拉按鈕→【自其他源】→【空白查詢】命令,如圖 2-144 所示。

圖 2-144 新建空白查詢
步驟 6
在彈出的【查詢 1 – Power Query 編輯器】窗口的公式欄中輸入「={1..5}」,按< Enter > 鍵完成輸入,在編輯器將新建一個列表,包含 1 到 5 的數字。
步驟 7
依次單擊【轉換】選項卡→【到表】按鈕,在彈出的【到表】對話框中保持默認設置,單擊【確定】按鈕關閉對話框,如圖 2-145 所示。

圖 2-145 列表數據轉換
步驟 8
在【查詢 1 – Power Query 編輯器】窗口中單擊【添加列】選項卡的【調用自定義函數】按鈕,在彈出的【調用自定義函數】對話框中調整設置,在【新列名】文本框中輸入「Web」作為名稱,在【功能查詢】組合框中選中「GetWebPage」,在【PageIndex】標籤之下右側組合框中選中「Column1」,單擊【確定】按鈕關閉對話框,如圖 2-146 所示。

圖2-146 設置調用自定義函數
步驟 9
此時將彈出黃色的數據隱私提示欄,單擊【繼續】按鈕,在彈出的【隱私級別】對話框中,選中【忽略此文件的隱私級別檢查。忽略隱私級別可能會向未經授權的用戶公開敏感數據或機密數據。】複選框,單擊【保存】按鈕關閉對話框,如圖 2-147 所示。

圖 2-147 忽略隱私級別檢查
步驟 10
單擊「Web」列標題右側的展開按鈕,在彈出的對話框中取消選中【使用原始列名作為前綴】複選框,單擊【確定】按鈕展開「Web」列,如圖 2-148 所示。

圖 2-148 展開「Web」列
步驟 11
在【查詢 1 – Power Query 編輯器】窗口中依次單擊【開始】選項卡→【關閉並上載】下拉按鈕→【關閉並上載至 ...】命令,在彈出的【導入數據】對話框中選中【表】單選按鈕,保持默認選中的【新工作表】單選按鈕,單擊【確定】按鈕關閉對話框,如圖 2-149 所示。

圖2-149 關閉並上載至工作表
批量採集的網站數據將上載到 Excel 新建工作表中,共有 250 行數據(5x50 行 / 頁),如圖 2-150 所示。
如果【查詢 & 連接】任務窗格中顯示「已加載 250 行。N 個錯誤」,錯誤的原因可能是部分指標數據未從網站上成功獲取(比如該指標在網站上為空)。

圖 2-150 上載到工作表中的數據
還想要學習其他數據處理與分析的技巧嗎?快來看看應用大全吧!
