I am trying to pull data from Yahoo Finance into Google Sheets using the importXML function. More specifically I am trying to pull it from the "key-statistics" page on a specific stock. For some reason, whenever I try to pull a value from this specific page, I get a "resource at URL not found" error. I've tried disabling JavaScript on the page to see if that was the issue, but everything appeared fine. It's specifically on this page however, and not on others. For example, I cannot pull XML data from https://finance.yahoo.com/quote/TSLA/key-statistics?p=TSLA, however, I can pull data from https://finance.yahoo.com/quote/TSLA perfectly fine. Is it an issue with the URL being wrong or has Yahoo somehow blocked data from being pulled?
2 Answers
As explained here, the content of yahoo web site is built dynamically by the mean of javascript. https://webapps.stackexchange.com/questions/115664/how-to-know-if-google-sheets-importdata-importfeed-importhtml-or-importxml-fun Nevertheless, the source contains all the elements in a json string called root.App.main . This json is far too big to be explored here, but we can take a slice, for example:
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]+"}")
}
The problem then is to explore the json as needed. I have performed a small test here https://docs.google.com/spreadsheets/d/1EfHtFr51cJdR6PK2E8cDtMAmUHJNQcOPeOs_6j0GZZc/edit?usp=sharing
Apparently, it seems that Yahoo made some changes on their website resulting to Google Sheets' IMPORT functions not to work properly on some tickers/webpage on Yahoo Finance.
As a workaround, I suggest using Google Sheets' built-in GOOGLEFINANCE() function or try to look for another source of data that will give you the same information that you want.
pull data
ofThe goal is just to pull data from finance.yahoo.com/quote/TSLA/key-statistics?p=TSLA using the IMPORTXML function.
. – Tanaike