我正在尝试使用 importXML 函数将 Yahoo Finance 中的数据提取到 Google 表格中。更具体地说,我试图从特定股票的“关键统计”页面中提取它。出于某种原因,每当我尝试从该特定页面提取值时,都会收到“未找到 URL 处的资源”错误。我尝试在页面上禁用 JavaScript 以查看是否是问题所在,但一切看起来都很好。但是,它专门在此页面上,而不是在其他页面上。例如,我无法从https://finance.yahoo.com/quote/TSLA/key-statistics?p=TSLA提取 XML 数据,但是,我可以从https://finance.yahoo.com/quote/提取数据TSLA完全没问题。是 URL 错误的问题还是雅虎以某种方式阻止了数据被提取?
问问题
624 次
2 回答
0
正如这里所解释的,雅虎网站的内容是通过javascript动态构建的。 https://webapps.stackexchange.com/questions/115664/how-to-know-if-google-sheets-importdata-importfeed-importhtml-or-importxml-fun不过,源包含名为的 json 字符串中的所有元素根.App.main 。这个 json 太大了,这里就不一一探究了,但是我们可以截取一个片段,例如:
function getJSON() {
var url = SpreadsheetApp.getActiveSheet().getRange("A1").getValue()
var source = UrlFetchApp.fetch(url).getContentText()
var data1 = source.match(/(?<="shortName":"Tesla, Inc.",).*/g)
data2 = data1[0].substring(0,1200).match(/.*(?=,"uuid")/g)
console.log("{"+data2[0]+"}")
}
然后的问题是根据需要探索 json。我在这里进行了一个小测试https://docs.google.com/spreadsheets/d/1EfHtFr51cJdR6PK2E8cDtMAmUHJNQcOPeOs_6j0GZZc/edit?usp=sharing
于 2021-03-29T18:02:34.787 回答
-1
显然,雅虎似乎在其网站上进行了一些更改,导致 Google 表格的导入功能无法在雅虎财经的某些代码/网页上正常工作。
作为一种解决方法,我建议使用 Google 表格的内置 GOOGLEFINANCE() 函数或尝试寻找另一个数据源,它可以为您提供所需的相同信息。
于 2021-03-29T17:00:13.733 回答