HighCharts скребок - PullRequest
       25

HighCharts скребок

0 голосов
/ 28 марта 2020

Я пытаюсь очистить данные от HighCharts. Я пробовал разные вещи после подобных вопросов / проблем в StackOverflow, но я не могу его здесь взломать.

Это по этому URL: https://www.bustabit.com/user/9mins

Поэтому некоторые решения предлагают использовать консольную команду Highcharts.charts [..]. Это не работает здесь. Можно просто взять "highcharts-series-group". Однако полученные данные:

M 3.7745098039216 79.5788071428571 L 7.5871459694989 94.70737857142853 L 11.399782135076 48.41395 L .....

Это преобразованные данные (данные -> преобразование -> SVG) координаты?). Поэтому вопрос заключается в том, как предварительно преобразовать данные.

Другой StackOverflow вопрос / ответ удалось выполнить обратное преобразование, найдя код в локальном файле js в Источники страницы. Я нашел что-то похожее в источниках страницы, но очень трудно расшифровать из-за его длины.

Должен ли я найти ответ в этом файле для обратного инжиниринга чисел или есть способ получить пре-преобразование данных другим способом?

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

В конце концов, не было способа извлечь чистые данные через какой-то скрытый метод, файл или скрипт. Однако я заметил, что во всплывающей подсказке было видно достаточно информации. Если вы наводите курсор мыши на график, он генерирует всплывающую подсказку на каждую точку данных, которая дает вам совокупную прибыль net и сделанную ставку и т. Д. c.

. Я использовал Selenium, чтобы найти ось Y метка на графике. Затем используйте move_to_element и горизонтальный move_by_offset, чтобы навести курсор на график и создать подсказку. Я только предположил и обнаружил, что прыжок со смещением 7 генерирует все всплывающие подсказки в одном go без двойных или пропущенных. Веб-сайт также обновляет диаграмму, поэтому я ловлю исключения для этого, чтобы сбросить все настройки и продолжить снова. Затем после 107 точек данных нажмите предыдущую страницу и перезапустите!

0 голосов
/ 28 марта 2020

Вы можете сделать это из консоли разработчика браузера. Обратите внимание, что любая законность использования этих данных ложится на вас - необходимо изучить лицензирование данных для сайта, с которого вы хотите извлечь данные. В командной строке консоли разработчика своего браузера введите:

console.log($('#chartDiv').highcharts().series)

и нажмите клавишу ввода. #chartDiv - это идентификатор DIV, содержащий диаграмму. Обычно это тот, что чуть выше DIV с id="highcharts-information-region-0" или чем-то похожим. Это выплюнет все серии, которые показаны на графике. В каждом возвращаемом объекте серии есть свойство с именем data, которое вы хотите.

...