[英]Google Sheet Web-scraping ImportXml Xpath on Yahoo Finance
[英]Google Sheet: IMPORTXML from Yahoo Finance
我正在嘗試從雅虎財經導入當前股價。 我使用了某個網站的公式,它部分起作用。 我只知道如何告訴它尋找一個特定的查詢,它對我需要的其他一些數據點工作正常,但價格變化查詢從
"Fw(500) Pstart(10px) Fz(24px) C($dataRed)"
到
"Fw(500) Pstart(10px) Fz(24px) C($dataGreen)"
取決於當天價格是上漲還是下跌。
在這種情況下,如何修改我在下面使用的公式以使用“或”運算符? 這樣無論股票當天上漲還是下跌,它都會拉低價格。 謝謝!
我使用的公式: =IMPORTXML("https://finance.yahoo.com/quote/IBM","//span[@class='Fw(500) Pstart(10px) Fz(24px) C($dataRed)']")
我注意到其他答案對我不起作用(它們過去可能有用),所以我決定發布這個解決方案。 只需將股票代碼放在單元格A1 中,並將下面的一個或兩個公式放在其他地方。
價錢:
=IFNA(VALUE(IMPORTXML("https://finance.yahoo.com/quote/" & A1, "//*[@class=""D(ib) Mend(20px)""]/span[1]")))
改變:
=IFNA(VALUE(REGEXEXTRACT(IMPORTXML("https://finance.yahoo.com/quote/" & A1,"//*[@class=""D(ib) Mend(20px)""]/span[2]"), "^.*?\s")))
您可以使用不需要此類特定路徑的更動態/通用的 xpath,例如:
這個同時引入了價格和變化:
=ARRAY_CONSTRAIN(transpose(IMPORTXML("https://finance.yahoo.com/quote/IBM:,"//*[@class='Mt(6px)']//span")),1,2)
如果你只想要價格:
=trim(IMPORTXML("https://finance.yahoo.com/quote/IBM","//*[@class='Mt(6px)']//span"))
如果你只是想要改變:
=IMPORTXML("https://finance.yahoo.com/quote/IBM","//*[@class='Mt(6px)']//span[2]")
如果你只想要價格:
=IFNA(VALUE(IMPORTXML("https://finance.yahoo.com/quote/" & $A1, "//*[@class=""D(ib) Mend(20px)""]/span[1) ]")))
目前正在使用 googlefinance api,但發現即使將更新設置為每分鍾更新一次,它也不會經常更新,因此目前正在測試下面是否允許至少在工作表中按 F5 鍵進行更新
這帶來了價格和其他信息(日期為 2022/09/27)
=IMPORTXML("https://finance.yahoo.com/quote/SAVA/", "//*[@id=""quote-header-info""]/div[3]/div[1]/div [1]")
遺憾的是,雅虎財經經常更改其網站的 XML/HTML 結構。 現在有效的是:
=IMPORTXML("https://finance.yahoo.com/quote/IBM/", "//*[@id=""quote-header-info""]/div[3]/div[1]/div/span[1]")
您可以隨時打開 HTML 結構並使用開發人員工具來查找和復制 X 路徑。
PS1。 盡管似乎存在錯誤,並且該函數無法從名稱中帶有點/點/句點“ .
”的 URL 檢索數據。
PS2。 IMPORTHTML()
函數也不能從雅虎財經獲取最新價格,因為信息既不在表格中也不在列表中。 您可以嘗試此頁面和此頁面中的腳本以列出所有table
和list
。
或者您可以在單元格上使用條件格式,以便顏色僅由單元格的值確定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.