[指南] Google Finance 沒有台股興櫃資料?Google Sheet 試算表中的 ImportXML 妙用

近期想使用 Google Finance 來自動抓取美股和台股資料的時候,發現缺乏台股興櫃股價的資料。雖說 Google 試算表中的 IMPORTHTML 可以方便的爬取資料,不過僅限於 <table> 和 <ol><ul> 標籤,而許多有提供股價資訊的網站,並不一定會使用這兩類標籤來呈現。這時 IMPORTXML 就可以派上用場。
spreadsheet


原理

IMPORTHTML 和 IMPORTXML 都是利用爬蟲的原理,來抓取網站的資料。相較於前者,XML 格式提供給程式一套結構化語法,讓其去辨識的該網頁的內容。Google Sheet 所提供的 IMPORTXML 能夠適用的場景更多。

語法

IMPORTXML(“<第一個參數>”, “<第二個參數>”)

第一個參數:你的目標解析網址 (必填)
第二個參數:XPATH 結構,也就是告知爬蟲要抓取哪個區塊的資料


使用方法

情境:若我今天要抓取鉅亨網上的長榮海運(2603)的資料,那麼就在 Google Sheet 的表格中輸入:
=IMPORTXML(“https://invest.cnyes.com/twstock/tws/6689″,”//*[@id=’_profile-TWG:2603:STOCK’]/div[1]/div[3]/div[1]/div/span”)
Google Finance,google finance台股上櫃,google finance抓不到,google sheet,googlefinance台股找不到,importxml無法擷取網址,importxml股價,爬蟲,股票價格,興櫃

如何取得 XPATH

難題會出現在:我如何知道 XPATH 資料?僅需使用瀏覽器的開發人員工具,並用選取工具取得網頁上的元素,按下滑鼠右鍵來取得即可。
1. 進入目標網頁,並點選滑鼠右鍵,找到開發人員工具 (如圖中的 Inspect,中文版翻譯的話可能為檢查)
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo52. 點選左上角的選取工具,選取畫面中的股價位置
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo4how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo3
3. 工具會帶你到該 HTML 標籤的元素位置,在位置點選滑鼠右鍵Google Finance,google finance台股上櫃,google finance抓不到,google sheet,googlefinance台股找不到,importxml無法擷取網址,importxml股價,爬蟲,股票價格,興櫃

4. 選單內的複製選項內,會有一項為複製 XPATH,點選它
how-to-crawl-stock-price-which-are-not-covered-by-google-sheet-via-imporxml demo1 5. 回到 Google Sheet 中,在 IMPORTXML 語法內輸入網址和貼上剛才複製的 XPATH 就完成了

日後,只要在網頁結構沒有變化的情況下,都可以用相同的格式來抓取資料。

按讚加入粉絲團

延伸閱讀