элементы селенового webdriver (chrome) отличаются от элементов driver.page_source - PullRequest
1 голос
/ 19 октября 2019

Я пытался почистить статью в среде.

Но это не удалось, поскольку selenium.webdriver.page_source не содержит целевой div.

[EG] Демистификация Python Decorators в LessЧем 10 минут https://medium.com/@adrianmarkperea/demystifying-python-decorators-in-10-minutes-ffe092723c6c

На этом сайте класс div для владельца содержимого имеет вид "x y z ab ac ez af ag", но этот элемент не отображается в driver.page_source.

шорткод: ниже.

Это не та проблема тайм-аута. Похоже, что drive.page_source не обрабатывается с помощью javascript, но я не знаю.

ARTICLE = "https://medium.com/@adrianmarkperea/demystifying-python-decorators-in-10-minutes-ffe092723c6c"
driver.get(ARTICLE)
text_soup = BeautifulSoup(driver.page_source,"html5lib")

text = text_soup.select(".x.y.z.ab.ac.ez.af.ag")
print(text) # => [] 

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

Обновление: Я провел некоторый эксперимент. Я сомневался, что webdriver не сможет обработать html-исходник с помощью javascript, поэтому я «селен-ред» нижеприведенного html-файла.

Но я получил html-файл с удаленным элементом.

результат:

веб-драйвер и обычная хромированная консоль одинаковы -> обработано

<html lang="en">
<body>

    <script type="text/javascript">
    document.querySelector("#id").remove();
    </script>

</body></html>

wget / запросы -> не обработано

<html lang="en">
<body>
    <div id="id">
        test element
    </div>    
    <script type="text/javascript">
    document.querySelector("#id").remove();
    </script>

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