前言
網址:要檢查的網頁網址,包含通訊協定 (例如 http:// 或 https://)。 XPath查詢:用來指定要從網頁抓取哪個元素的 XPath 語法。 語言代碼 (選用):用於解析資料的語言和地區代碼。如果省略,會使用文件的語言環境。
國泰10Y+金融債 (00933B) 的 Yahoo 股市頁面網址: https://tw.stock.yahoo.com/quote/00933B.TWO/
使用 Chrome 瀏覽器 開啟上述的 Yahoo 股市網頁。 找到你想抓取的資料,例如目前的股價 (影片中是 16.94)。 在股價數字上按一下滑鼠右鍵,選擇「檢查 (Inspect)」。 瀏覽器右側或下方會開啟「開發人員工具」,並且會自動反白顯示對應股價的 HTML 程式碼 (通常是一個 <span> 或 <div> 標籤)。 在反白顯示的程式碼上按一下滑鼠右鍵。 依序選擇「複製 (Copy)」->「複製 XPath (Copy XPath)」。
股價 XPath (範例): //*[@id="main-0-QuoteHeader-Proxy"]/div/div[2]/div[1]/div/span[1] 股票名稱 XPath (範例): //*[@id="main-0-QuoteHeader-Proxy"]/div/h1 (請自行驗證或複製您實際得到的路徑)
開啟你的 Google Sheets 文件。 可以在 A 欄輸入股票代號,B 欄放股票名稱,C 欄放股價。 在 C2儲存格 (假設要放股價) 輸入以下公式: 在 B2 儲存格 (假設要放股票名稱) 輸入以下公式:
從 Chrome 複製出來的 XPath 可能會包含雙引號 ("),例如 //*[@id="..."]。 但是 IMPORTXML 函數的第二個參數 (XPath查詢) 本身需要用雙引號包起來。 如果在公式的雙引號內又直接使用雙引號,會造成語法錯誤。 解決方法 (如影片所示): 將 XPath 內部原本的雙引號 (。 例如,將 [@id="main-0-..."] 改成 [@id='main-0-...']。
另一種方法: 將 XPath 內部原本的雙引號 (") 改成兩個連續的雙引號 ( 來進行跳脫。
注意事項
使用限制: Google Sheets 對 IMPORTXML 這類會存取外部資料的函數有使用次數限制,一個試算表內建議不要放太多 (例如超過 50 個),否則可能會抓取失敗或顯示錯誤。 網站結構變更: 如果目標網站 (如 Yahoo 股市) 的網頁結構改變了,原本的 XPath 就會失效,需要重新去複製新的 XPath。 網站保護: 有些網站可能會採取措施阻止爬蟲或自動抓取,這時 IMPORTXML 可能會無法成功抓取資料。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。