Текстовое значение Google Sheets Import XML не отображается

Я пытаюсь импортировать некоторые данные об энергопотреблении в таблицу Google, но не могу получить отображаемое значение, поскольку это просто текст в строке HTML и отображается как -, --- в выводе. Я пробовал добавить / text () в XPath, но это тоже не работает.

Веб-сайт с данными для импорта:

http://www.caiso.com/TodaysOutlook/Pages/default.aspx

Формула в Google Таблицах:

=IMPORTXML("http://www.caiso.com/TodaysOutlook/Pages/default.aspx","//div[@class='overview-large-number']")

Также попробовал следующий Xpath с тем же отображением -, ---.

/html/body/div[2]/div[3]/div[4]/div/div/div[2]/div/div[1]/div[1]/div[1]
/html/body/div[2]/div[3]/div[4]/div/div/div[2]/div/div[1]/div[1]/div[1]/text()

Снимок экрана веб-страницы:

Caiso Webage с данными

Элемент HTML с данными:

<div class="overview-large-number">41,946 <span>MW</span></div>

Снимок экрана текущего вывода Google Таблиц:

Скриншот Google Таблиц

Заранее благодарим вас за любую информацию.


person Cory    schedule 10.09.2020    source источник
comment
Значит, вам просто нужны значения 6 МВт?   -  person Calculuswhiz    schedule 10.09.2020
comment
@Calculuswhiz Правильно.   -  person Cory    schedule 10.09.2020


Ответы (1)


Данные заполняются после загрузки страницы, поэтому вы не можете использовать ImportXML(). Данные запрашиваются через HTTP Get по URL http://www.caiso.com/outlook/SP/stats.txt и возвращаются в формате JSON.

  1. Получите скрипт ImportJSON с здесь и добавьте его в свою таблицу (Инструменты ›Редактор скриптов).
  2. Этого должно быть достаточно, чтобы вы начали:
=Transpose(ArrayFormula(HLOOKUP(
{"AvailableCapacity","CurrentSystemDemand","todayForecastPeakDemand","histDemand","TodaysPeakDemand","tomorrowsForecastPeakDemand"},
ImportJSON("http://www.caiso.com/outlook/SP/stats.txt"),2,0)))

Обратите внимание, что значение Historical Peak уже является строкой, поэтому вам, возможно, придется проделать дополнительную работу, чтобы получить это число.

person Calculuswhiz    schedule 10.09.2020
comment
Большое тебе спасибо. Я добавил файл сценария, и это решение сработало. Как вы узнали, где найти URL-адрес с запросом данных? И для справки, поскольку это был URL-адрес .aspx, вот откуда вы узнали, что ему потребуется запрашивать информацию за пределами текущей страницы? - person Cory; 10.09.2020
comment
@Cory Я открыл сетевой монитор в своем браузере (F12) и поискал XHR. - person Calculuswhiz; 10.09.2020