Получите полный код элемента проверки с веб-страницы с python3 - PullRequest
0 голосов
/ 03 июля 2019

Я пытался получить загруженный html после запуска js-кода с веб-страницы, так же, как это показано в «элементе проверки».Но это не дает правильного результата.Я попытался сделать следующее:

from selenium import webdriver

import requests


url = 'xxx'

options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(chrome_options=options)
driver.get(url)

# This will get the initial html - before javascript
html1 = driver.page_source

# This will get the html after on-load javascript
html2 = driver.execute_script("return document.documentElement.innerHTML;")

print(html1)
print('\n\n')
print(html2)

Я хочу получить полный код от элемента inspect (html2 в данном случае).Я обнаружил, что эта попытка получить информацию со страницы до ее полной загрузки.Что я могу сделать, чтобы это исправить?

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Зависимость:

from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

Это будет ожидать элемента, чей идентификатор равен [ID_OF_ELEMENT].

timeout = 5

try:
    element = WebDriverWait(driver timeout).until(EC.presence_of_element_located((By.ID, '[ID_OF_ELEMENT]')))
    #Page ready
except TimeoutException:
    #Timeout
0 голосов
/ 03 июля 2019

Вам нужно подождать, пока нужные вам данные появятся на странице

...