Почему исходный код HTML из Selenium выглядит иначе, чем тот, который отображается в представлении веб-браузера? - PullRequest
0 голосов
/ 21 апреля 2019

Я использую Python и Selenium для захвата источника HTML веб-страницы, чтобы я мог разобрать его, чтобы найти определенный элемент.Однако источник не совпадает с тем, что я получаю, используя браузер в виде «проверить элемент».Элемент, который я ищу, отсутствует в источнике, который предоставляет Selenium.Есть ли способ получить тот же источник, используя Selenium или другой инструмент или метод?

Ответы [ 2 ]

1 голос
/ 21 апреля 2019

Как описано в селене Документация :

getPageSource
java.lang.String getPageSource ()

Получить источник последней загруженной страницы.Если страница была изменена после загрузки (например, с помощью Javascript), нет гарантии, что возвращаемый текст соответствует тексту измененной страницы.Пожалуйста, обратитесь к документации конкретного используемого драйвера, чтобы определить, отражает ли возвращаемый текст текущее состояние страницы или текст, последний отправленный веб-сервером.Возвращенный источник страницы является представлением базовой DOM: не ожидайте, что он будет отформатирован или экранирован так же, как ответ, отправленный с веб-сервера.Думайте об этом как о впечатлении художника.

Возвращает: Источник текущей страницы

0 голосов
/ 21 апреля 2019

Вам нужно будет скачать драйвер веб-браузера, который генерирует этот динамический контент. Возможно здесь http://chromedriver.chromium.org/downloads

от http://chromedriver.chromium.org/getting-started

import time
from selenium import webdriver

driver = webdriver.Chrome('/path/to/chromedriver')  # Optional argument, if not specified will search path.
driver.get('http://www.google.com/xhtml');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()

это откроет окно Chrome, сработает и получит контент. Не забудьте закрыть его после и установить time.sleep () , чтобы у драйвера было время для генерации контента. Вы также можете запустить его без головы , затем запустить в виртуальном окне и установить значение f.e. ширина и высота окна 4000px, нормальный режим не позволяет, что

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...