首页 > 解决方案 > 将雅虎金融股票价格刮到谷歌表格

问题描述

所以我可以用这条线让 xpath 为像 CVNA 这样的“主流”股票工作:

=REGEXEXTRACT(INDEX(IMPORTXML("https://finance.yahoo.com/quote/CVNA?p=CVNA";"//*[@id='quote-header-info']");;3); "\d+.\d+|\d+")+0

但是当试图指向像奥斯陆交易所这样的特定交易所时,我得到了一个错误。想从 NEL.OL 上刮股票价格

有什么建议么?

标签: google-sheets

解决方案


由于页面是在客户端而不是在服务器端使用 javascript 构建的,因此您将无法通过 importxml / importhtml 函数检索数据。但是,该页面包含一个 json,您可以检索和分析它以检索您需要的信息。

  var source = UrlFetchApp.fetch(url).getContentText()
  var jsonString = source.match(/(?<=root.App.main = ).*(?=}}}})/g) + '}}}}'
  var data = JSON.parse(jsonString)

例如,对于市场价格,您可以通过以下方式检索信息

function marketPrice(code) {
  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)
  var regularMarketPrice = data.context.dispatcher.stores.StreamDataStore.quoteData[code].regularMarketPrice.raw
  return regularMarketPrice
}

https://docs.google.com/spreadsheets/d/1sTA71PhpxI_QdGKXVAtb0Rc3cmvPLgzvXKXXTmiec7k/copy - G 列


推荐阅读