HI,你會用函數實現網頁數據抓取嗎?

隨著互聯網的高速發展,網頁數據愈發成為數據分析過程中最重要的數據來源之一。

也許正是基於這樣的考量,從2013版開始,Excel新增了一個名為Web的函數類別,使用其下的函數,可以通過網頁鏈接從Web服務器獲取數據,比如股票信息、天氣查詢、有道翻譯等等。

舉個小栗子。

輸入以下公式,可以將A2單元格的值進行英漢或漢英互譯。

=FILTERXML(WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml"),"//translation")

HI,你會用函數實現網頁數據抓取嗎?

公式看起來很長,這主要是因為網址長度偏長的緣故,實際上該公式的結構非常簡單。

它主要有3部分構成:

第1部分構建網址。

"http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml"

這個是有道在線翻譯的網頁地址,包含了關鍵的參數部分,i="&A2是需要翻譯的詞彙,doctype=xml是返回文件的類型,是xml。只所以返回xml是因為FILTERXML函數可以獲取XML結構化內容中的信息。

第2部分讀取網址。

WEBSERVICE通過指定的網頁地址從Web服務器獲取數據(需要計算機聯網狀態)。

本例中,B2公式為:

=WEBSERVICE("http://fanyi.youdao.com/translate?&i="&A2&"&doctype=xml&version")

獲取數據如下:



第3部分獲取目標數據。

這裡使用了FILTERXML函數,FILTERXML函數語法是:

FILTERXML(xml,xpath)

共有兩個參數,xml參數是有效的xml格式文本,xpath參數是需要查詢的目標數據在xml中的標準路徑。

通過第2部分獲取的xml文件內容,我們可以很直接的看到幸福的翻譯結果happiness處於translation路徑下(標註粉紅色的部分),因此第2參數設為” //translation”。

圖文製作:看見星光



分享到:


相關文章: