雅虎金融历史收盘价对谷歌表的回报纳为收盘晚于100天。

问题描述 投票:0回答:1

我尝试从雅虎财经打印历史调整后的收盘价到Google Sheets。

=ImportXML("https://sg.finance.yahoo.com/quote/"&B57&"/history?p="&B57, "//tbody/tr[21]/td[6]")

细胞 B57 例如,是 "SPY".

这对100天以内的历史价格都能正常工作。(这里是调整过的。tr[100])

当我试图获取100天后的价格时,它返回 "NA".这些价格在yahoo金融上可见。

有办法调整吗?XPATH 它的工作原理?

我注意到,在yahoo pices的html代码中,大约100天没有这个 "data-reactid=1520 "的字样。tr 标签。

先谢谢你

xpath google-sheets finance yahoo price
1个回答
0
投票

答:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是:我的回答是

IMPORTXML 不能检索由脚本填充的数据,所以用这个公式检索这个表的数据是做不到的。

更多信息。

由于前100个值是在没有使用JavaScript的情况下加载到页面中的(你可以通过禁用JavaScript来查看。)。https:/sg.financial.yahoo.comquoteSPYhistory?p=SPY。 并重新加载页面),信息可以通过以下方式检索 IMPORTXML.

由于前100个结果之后的数据是在向下滚动页面后即时生成的,因此新的可用数据无法通过以下方式检索到 IMPORTXML - 在公式看来。没有101舞台 <tr> 元素 所以它显示 N/A: Imported content is empty .

我知道这一般是个坏消息,但希望对你有所帮助!

参考文献


相关问题。


1
投票

不可能,因为雅虎网站使用JavaScript元素--无限滚动--它在第100个值后启动,这就是为什么你不能通过该点的原因。你可以通过禁用给定网站的JS来测试这一点,剩下的可以被刮掉。

0


0
投票

这是有可能的,有一个变通的方法。

YahooFinance

晚于100天 。

YF2

  • 绿色背景的单元格:要搜索的代码
  • 橙色背景的单元格:包含公式的单元格。
  • 黄色背景的单元格:返回数据

使用的公式:

=IMPORTXML(A1;"substring-before(substring-after(//script[@id='fc'],'{""prices"":'),',""isPending')")
=SUBSTITUE(SUBSTITUE(SUBSTITUE(A3;"},{";"|");",";";");".";",")
=REGEXREPLACE(A4;"[a-z:{}\[\]""]+";"")
=TRANSPOSE(SPLIT(A5;"|"))
=(((C8/60)/60)/24)+DATE(1970;1;1)
  • IMPORTXML 导入数据。
  • SUBSTITUEREGEXREPLACE 以备 TRANSPOSE 步。
  • TRANSPOSE 来 "构建 "线路和 SPLIT 来 "建立 "列。
  • DATE 将时间戳转换为日期。

工作表

© www.soinside.com 2019 - 2024. All rights reserved.