首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >雅虎融资历史收盘价谷歌单张回单后100天内收盘价

雅虎融资历史收盘价谷歌单张回单后100天内收盘价
EN

Stack Overflow用户
提问于 2020-05-06 13:29:56
回答 2查看 1.4K关注 0票数 0

我试图打印历史调整后的收盘价,从雅虎金融到谷歌单张。

代码语言:javascript
复制
=ImportXML("https://sg.finance.yahoo.com/quote/"&B57&"/history?p="&B57, "//tbody/tr[21]/td[6]")

例如,单元格B57"SPY"

这是很好的历史价格,最高可达100天。(在此进行调整:tr[100])

当我试图在100天后得到价格时,它会返回"N/A“。这些价格在雅虎金融上是可见的。

有什么方法可以调整XPATH的工作吗?

我注意到,在雅虎的html代码中,大约100天的tr标记中没有这个"data-reactid=1520“。

EN

回答 2

Stack Overflow用户

发布于 2020-05-06 14:37:33

这是不可能的,因为雅虎网站使用了JavaScript元素--无限大滚动--在第100次值之后开始,这就是为什么你不能越过这个点的原因。您可以通过禁用给定站点的JS来测试这一点,剩下的可以被刮除:

票数 1
EN

Stack Overflow用户

发布于 2020-05-06 16:52:34

这是有可能的解决办法:

100天后:

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

使用的公式:

代码语言:javascript
复制
=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将时间戳转换为日期。

板材

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61636468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档