首页 > 解决方案 > 导入错误:“未找到 URL 的资源”仅适用于某些特定股票

问题描述

我正在谷歌表中创建股息跟踪表。我正在使用以下公式,因为我想使用来自 yahoo Finance 的一些股息数据

=SPLIT(INDEX(IMPORTHTML(concatenate("https://finance.yahoo.com/quote/";B8);"table";2);6;2);" ")

B8 指的是来自雅虎财经的股票代码

它适用于所有美国股票(例如:“T”和“JNJ”)和 1 只欧盟股票(“VOW3.DE”)。对于所有其他欧盟股票(例如:“SIE.DE”),它不起作用。我正在使用相同的公式 =SPLIT(INDEX(IMPORTHTML(concatenate("https://finance.yahoo.com/quote/";B5);"table";2);6;2);" ")

B5 指 SIE.DE

我收到以下错误消息:

“#N/A”:找不到 url 的错误资源

奇怪,因为它适用于 VOW3.DE 股票代码(大众汽车)

标签: htmlgoogle-sheetsgoogle-sheets-formulayahoo-finance

解决方案


这个网站现在是由 javascript 在客户端构建的,而不是在服务器端。然后你不能通过importxml检索信息,importhtml也不能。希望该页面包含一个名为root.App.main您可以解析和检索数据的大 json:

  var url='https://finance.yahoo.com/quote/' + code
  var source = UrlFetchApp.fetch(url).getContentText()
  var jsonString = source.match(/(?<=root.App.main = ).*(?=}}}})/g) + '}}}}'
  var data = JSON.parse(jsonString)

例如https://docs.google.com/spreadsheets/d/1sTA71PhpxI_QdGKXVAtb0Rc3cmvPLgzvXKXXTmiec7k/copy


推荐阅读