繁体   English   中英

Google 表格:来自雅虎财经的 IMPORTXML

[英]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()函数也不能从雅虎财经获取最新价格,因为信息既不在表格中也不在列表中。 您可以尝试此页面此页面中的脚本以列出所有tablelist

或者您可以在单元格上使用条件格式,以便颜色仅由单元格的值确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM