Google 表格导入 XML 返回"Resource at URL not found"错误



我正试图使用importXML函数将数据从Yahoo Finance拉入Google Sheets。更具体地说,我正试图将其从";关键统计";特定股票的页面。出于某种原因,每当我试图从这个特定页面中提取一个值时,我都会得到一个";URL处的资源未找到";错误我试过在页面上禁用JavaScript,看看这是否是问题所在,但一切看起来都很好。然而,它是专门在这个页面上,而不是在其他页面上。例如,我无法从https://finance.yahoo.com/quote/TSLA/key-statistics?p=TSLA,但是,我可以从https://finance.yahoo.com/quote/TSLA非常好。是URL错误的问题,还是雅虎以某种方式阻止了数据的提取?

尝试拉动";资产回报率;来自统计页面

从主页中提取市值

正如这里所解释的,雅虎网站的内容是通过javascript动态构建的。https://webapps.stackexchange.com/questions/115664/how-to-know-if-google-sheets-importdata-importfeed-importhtml-or-importxml-fun尽管如此,源代码包含一个名为root的json字符串中的所有元素。这个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

显然,雅虎似乎对其网站进行了一些更改,导致Google Sheets的IMPORT功能无法在雅虎金融的某些股票行情器/网页上正常工作。

作为一种变通方法,我建议使用Google Sheets内置的GOOGLEFINANCE((函数,或者尝试寻找另一个能为您提供所需信息的数据源。

最新更新