Выскабливание данных из интерактивного графика - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь получить данные, которые генерируют график в javascript на этой странице:

https://www.energy -charts.de / price.htm

Iнашел элементы SVG, которые рисуют линии с их элементами M и L, но я не знаю, с чего начать поиск массива javascript, который содержит фактические данные.(Я предполагаю, что где-то должен быть массив).

Я благодарен за любые советы и подсказки, с которых мне нужно начать поиск этих данных.

1 Ответ

2 голосов
/ 22 мая 2019

Краткий ответ

Данные хранятся в файле JSON по адресу https://www.energy -charts.de / price / week_2019_21.json


Длинный ответ

Если вы откроете инструменты разработчика (F12), вы увидите загрузку console.log s из файла price.js.Большинство из них бесполезны, но строка got chartTitle from JSON! _chartTitle: Electricity production and spot prices in Germany in week 21 2019 выглядит так, как будто она может быть нам полезна.

Открытие price.js и поиск "got chartTitle", я нашел функцию с именем createChart, который, кажется, загружает файлы JSON.Я предполагаю, что они будут возвращены из какого-то API-интерфейса и не будут сохранены непосредственно в файлах JS.

Прокручивая вверх из "got chartTitle", я заметил эту строку: d3.json(filepath, function(error, json) {.Для меня это загрузка JSON из пути к файлу.В поисках «filepath» я обнаружил, что он объявлен как глобальная переменная.Набрав это в консоли javascript, я вижу значение "./price/week_2019_21.json", поэтому переход по этому URL (https://www.energy -charts.de / price / week_2019_21.json ) должен бытьданные, которые вы ищете!

Этот URL рассчитывается в следующем блоке кода:

if(defaultweek < 10){
  filepath = "./price/week_" + defaultyear +"_0"+ defaultweek +".json"; //default file on first-load
}
else{
  filepath = "./price/week_" + defaultyear +"_"+ defaultweek +".json"; //default file on first-load
}

Значения по умолчанию установлены в energy-charts_default.js.

Надеюсь, что этопомогает!

...