Как отсканировать значения Highcharts? - PullRequest
1 голос
/ 08 марта 2020

Я пытаюсь получить данные из старшей диаграммы, но у меня есть только значение "Нет".

Для доступа к диаграмме требуется пароль, но у меня та же проблема с диаграммой на эта страница .

Используя DevTools браузера, я могу получить значение y из старшей диаграммы, используя:

Highcharts.charts[0].series[0].data[0].y

Таким образом, комбинируя этот код со структурой al oop, я могу имеют все значения y.

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

page.execute_script('Highcharts.charts[0].series[0].data[0].y')

Ответ, который я ожидаю, равен 2 (как в DevTools), но вместо этого я получаю «None» в качестве ответа.

Я уже пытался используйте Beautifulsoup для получения значения y из тега <path>, но оно не соответствует ожидаемому значению.

Источник HTML кажется сложным (я не эксперт в этой области). Полный xpath <svg>: /html/body/form/div[3]/div[2]/div[2]/section/div/div/div[2]/div/section/div/div/div/div[2]/div[2]/div[1]/div[2]/div/div/svg

Кроме того, я не могу найти ни одного <iframe>, который мог бы помешать мне получить доступ к графику.

Кто-нибудь знает что я делаю не так? (Я новичок в этой области, поэтому дайте мне знать, если потребуется дополнительная информация)

1 Ответ

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

После долгого застревания в нем я понял, как решить эту проблему.

Моя ошибка в том, что я отправлял в свой браузер через селен нижеприведенный скрипт js.

page.execute_script('Highcharts.charts[0].series[0].data[0].y')

Этот код работает отлично, но он не возвращает мне никакого значения. Итак, чтобы получить значение y (это то, что мне нужно), мне просто нужно использовать «return» в предыдущем коде. Финальный код

page.execute_script('return Highcharts.charts[0].series[0].data[0].y')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...