Я пытался использовать селен для очистки всей веб-страницы.Я ожидаю, что, по крайней мере, несколько из них - спа, такие как Angular, React, Vue, поэтому я использую Selenium.
Мне нужно загрузить всю страницу (если какой-то контент не загружается из-за отложенной загрузки из-за отсутствия прокрутки вниз, это нормально).Я попытался установить задержку time.sleep (), но это не сработало.После того, как я получил страницу, я хочу ее хешировать и сохранить в БД для последующего сравнения и проверки, изменился ли контент.В настоящее время хэш каждый раз отличается, и это потому, что селен не загружает всю страницу, каждый раз, когда отсутствует другая частичная сумма.Я подтвердил это на нескольких веб-страницах, а не только на единственном.
У меня также есть, вероятно, более 1000 веб-страниц, которые нужно пройти вручную, просто получая все ссылки, чтобы у меня не было времени найти элемент начтобы убедиться, что он загружен.
Сколько времени занимает этот процесс, не важно.Если это занимает 1+ часа, то скорость важна не только точность.
Если у вас есть альтернативная идея, пожалуйста, поделитесь.
Моя декларация водителя
from selenium import webdriver
from selenium.common.exceptions import WebDriverException
driverPath = '/usr/lib/chromium-browser/chromedriver'
def create_web_driver():
options = webdriver.ChromeOptions()
options.add_argument('headless')
# set the window size
options.add_argument('window-size=1200x600')
# try to initalize the driver
try:
driver = webdriver.Chrome(executable_path=driverPath, chrome_options=options)
except WebDriverException:
print("failed to start driver at path: " + driverPath)
return driver
Мой URL-вызов my timeout = 20
driver.get(url)
time.sleep(timeout)
content = driver.page_source
content = content.encode('utf-8')
hashed_content = hashlib.sha512(content).hexdigest()
^ здесь каждый раз получаются разные хэши, поскольку один и тот же URL-адрес не создает одну и ту же веб-страницу