Google 試算表|如何用【IMPORTXML】抓取股價?上市上櫃興櫃可用!

How to use IMPORTXML to grab stock prices in Google sheets 封面圖片

如果想要用 Google 試算表來抓取股票的股價,除了內建的「GOOGLEFINANCE」函數之外,其實還有另一個函數可以使用,那就是這篇文章要介紹的「IMPORTXML」函數,只要用了這個函數,就可以抓到上市、上櫃或是興櫃的股價!

IMPORTXML 函數簡介

IMPORTXML 是 Google 試算表內建的函數之一,它主要是用來匯入多種結構化類型的資料,包括 XML、HTML、CSV….等等,這個函數本身公式並不複雜,只需要填入 網址XPath_查詢 這兩個引數就好,公式語法如下:

=IMPORTXML(網址,XPath_查詢)
IMPORTXML 函數語法介紹


如何用 IMPORTXML 抓取上市公司股價?

雖然 IMPORTXML 有其他的用途,但在這篇文章裡面,主要是要介紹怎麼用它來抓取股票的「股價」,而接下來我會以 Google Chrome 瀏覽器為例,先試著抓取上市公司台積電 (2330) 的股價。

Step 1:找一個可以抓取股價的網站

網路上有各式各樣的股票資訊網站,但並非每一個都可以讓 IMPORTXML 函數來抓取股價,由於這類型的網站太多,我也沒辦法一個一個去試,因此我就用自己有在抓取的網站「HiStock 嗨投資理財社群」來當作示範,接下來就前往這個網站來抓取股價吧。


Step 2:進入股票資訊頁面

到達「HiStock 嗨投資理財社群」首頁之後,假設我想要了解台積電 (2330) 的股價資訊,我可以從個股裡面去搜尋它,然後來到 Histock 的台積電個股頁面 (如下圖),就跟許多財經網站一樣,Histock 的頁面上面也有各式各樣的個股資訊,其中「股價」是必備的資訊之一,也是接下來要抓取的目標。

Histock 台積電股票資訊頁面


Step 3:可先擷取股價的網址

到達台積電的個股資訊頁面之後,你可以先把這個頁面的 網址 複製起來,並把它輸入到試算表 IMPORTXML 的「第一個引數」裡面。

複製這個頁面的網址


網址 輸入到 IMPORTXML 的公式裡之後,記得要在網址的前後各自加上一個「雙引號 "」。

把網址貼到 IMPORTXML 的第一個引數裡面


Step 4:打開「開發者工具」

再來要打開 Chrome 瀏覽器的開發者工具 (DevTools),有三種方式可以打開這個介面:

  1. F12
  2. CtrlShiftC
  3. 點擊滑鼠右鍵>檢查

打開之後,你會發現瀏覽器裡面會出現一塊「充滿電腦程式語法的操作介面」,雖然看起來很複雜,但其實不用擔心也不需要看懂它,因為接下來的步驟不算太難。

打開Google Chrome瀏覽器的開發者工具


Step 5:使用選取工具

首先,你需要找到一個「選取工具」,可以參考下面這張圖,它在開發者工具的左上角附近,找到它之後就用滑鼠點它一下。

啟用選取工具


Step 6:找到顯示股價的程式碼片段

這時候你就會進入選取的狀態,只要你把滑鼠移動到左邊網頁中的任何地方,右邊的「開發者工具」都會顯示那個位置的「程式碼」,由於我想要抓的是股價,所以我就把滑鼠移動到台積電的「股價」位置 (如下圖)。

用滑鼠指向台積電的股價顯示欄位


好了之後就用滑鼠點一下那個股價位置,那這時候右邊的「開發者工具」就會把這個位置的「程式碼」給反藍顯示出來。

找到顯示股價的程式碼片段


Step 7:複製 XPath

再來對著那段反藍的「程式碼」按下滑鼠右鍵,選擇 CopyCopy XPath,把這段路徑給複製起來。

滑鼠右鍵複製選擇Copy XPath


Step 8:貼上 XPath

把剛剛複製的 XPath 貼到 IMPORTXML 的第二個引數內,一樣程式碼的前後也都要各自加上一個「雙引號 "」。

把 XPath 貼到 IMPORTXML 的第二個引數裡面


但這時候還不能完成公式,因為這個公式還有些地方要修改,否則會顯示出錯誤的訊息。

IMPORTXML錯誤訊息


Step 9:修改雙引號

要修改的地方就是程式碼裡面的「雙引號 "」,原本雙引號裡面的資料是顯示黑色,只要把那兩個 雙引號 都改成 單引號,原本的黑色也會跟著變成綠色,這時公式就算大功告成。

把 XPath 裡面的雙引號改為單引號


成功抓取股價

按下 Enter 鍵之後 IMPORTXML 回傳的就會是股價資訊。

成功抓取台積電的股價


aifian APP推薦活動
[ 這 是 APP 推 廣 活 動 廣 告 ]



其他抓取股價範例

除了上市的公司股價之外,其他像是上櫃或興櫃的公司,也都可以透過 IMPORTXML 函數來抓取股價資料,如果同樣都是用「HiStock 嗨投資理財社群」這個網站來抓取資料的話,那公式其實會長得差不多。

IMPORTXML 抓取上櫃股價

假設要抓取的是上櫃公司「環球晶」的股價,它的公式如下:

=IMPORTXML("https://histock.tw/stock/6488","//*[@id='Price1_lbTPrice']/span")


IMPORTXML 抓取興櫃股價

假設要抓取的是興櫃公司「富味鄉」的股價,它的公式如下:

=IMPORTXML("https://histock.tw/stock/1260","//*[@id='Price1_lbTPrice']/span")


IMPORTXML 抓取國外股價

假設要抓取的是美股的公司「蘋果」,由於它也可以在 Histock 裡面找到股價資訊,所以你也可以利用 IMPORTXML 函數來抓取股價!它的公式如下:

=IMPORTXML("https://histock.tw/index/AAPL","//*[@id='Price1_lbTPrice']/span")


抓取上櫃/興櫃/國外的股價


aifian APP推薦活動
[ 這 是 APP 推 廣 活 動 廣 告 ]



結語

如果有在使用 GOOGLEFINANCE 函數抓取股票資訊的人,應該知道它是抓不到上櫃或興櫃股票的資料的,這樣多少會有點麻煩,但學會只要使用 IMPORTXML 這個函數來爬取股價,那就可以用 Google 試算表來做很多投資理財的規劃。

不過 IMPORTXML 有時候不是很穩定,可能會出現 Loading...#N/A 這些短暫的錯誤訊息,通常跟它爬取的狀況有關,這個可能的因素很多也較難說清楚,像是之前我有個工作表裡可能因為用了太多這個 IMPORTXML 函數,造成很多股價都要抓很久的時間,所以使用數量可能需要控制好。(我後來都是跟 GOOGLEFINANCE 相互搭配使用,這樣試算表抓得比較快)

另外,能抓取股價的網站也並非只有「Histock」,也有其他網站是可以抓的,但不同網站的「網址」跟「XPath」結構都不太一樣,如果還要搭配使用其他函數的話,就要花點心思去編輯了。

Reference:

文件編輯器說明

https://www.w3schools.com/xml/xpath_intro.asp


延伸閱讀

【Google試算表】文章總列表

試算表自動抓取股價資料,就用【GoogleFinance 函數】來搞定!

Google試算表如何繪製【折線圖】?哪些功能一定要試試!

Google試算表|如何插入公式?公式 12 個【小技巧】都學起來!

如何用函數製作【甘特圖】?顏色形狀隨意改,功能更多樣!


aifian APP推薦活動


最後
§ 很感謝你的閱讀 §
如果你喜歡這篇文章的話

→ 歡迎 留言分享

→ 歡迎點下面這張圖來【贊助】支持我!讓我繼續為你創作更多內容!

贊助我一杯咖啡


留言區