2

我正在尝试从雅虎金融导入当前股价。我使用了某个网站的公式,它部分有效。我只知道如何告诉它寻找一个特定的查询,它对于我需要的其他一些数据点工作得很好,但是价格变化查询从

"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)']")

4

4 回答 4

3

我注意到其他答案对我不起作用(它们过去可能有用),所以我决定发布这个解决方案。只需将代码放在单元格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")))
于 2020-09-08T19:39:57.663 回答
1

您可以使用不需要这样特定路径的更动态/通用的 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]")

在此处输入图像描述

于 2017-01-11T06:48:40.560 回答
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()功能也无法从雅虎财经获取最新价格,因为信息既不在表格中,也不在列表中。您可以尝试此页面此页面中的脚本以列出所有tables 和lists。

于 2021-07-16T17:54:15.223 回答
1

如果你只想要价格:=IFNA(VALUE(IMPORTXML("https://finance.yahoo.com/quote/" & $A1, "//*[@class=""D(ib) Mend(20px)""]/span[1]")))

于 2021-01-25T18:22:24.480 回答