Пример использования Selenium для снятия скриншота страницы

Этот пример демонстрирует, как с помощью Python и библиотеки Selenium можно автоматически открывать веб-страницу и сохранять её скриншот. Такой подход полезен для тестирования сайтов, мониторинга изменений контента, создания визуальных отчётов или архивирования страниц. Вы сможете видеть точное состояние страницы в любой момент времени без ручного взаимодействия.

Установка необходимых библиотек.

pip install selenium webdriver-manager

Пример кода для снятия скриншота страницы:

from selenium import webdriver

# Создаем экземпляр браузера Chrome
driver = webdriver.Chrome()

# Открываем страницу, которую хотим сохранить
driver.get("https://parsertools.ru/primers")

# Сохраняем скриншот страницы в файл screenshot.png
driver.save_screenshot("screenshot.png")

# Выводим сообщение о сохранении скриншота
print("Скриншот сохранён как screenshot.png: откройте файл чтобы просмотреть")

# Закрываем браузер
driver.quit()

Давайте разберём каждую часть кода более подробно:

  • from selenium import webdriver – импортируем модуль для управления браузером.
  • driver = webdriver.Chrome() – создаём объект браузера Chrome. Можно использовать Firefox или другой поддерживаемый драйвер.
  • driver.get("URL") – открывает указанную страницу. В нашем примере это https://parsertools.ru/primers.
  • driver.save_screenshot("screenshot.png") – делает скриншот всей страницы и сохраняет в файл screenshot.png.
  • print(...) – информирует пользователя о сохранении скриншота.
  • driver.quit() – закрывает браузер и освобождает ресурсы.

Советы и рекомендации при использовании данного подхода:

  • Можно использовать абсолютный путь для сохранения скриншота, чтобы знать точное место на диске.
  • Для динамических страниц с подгружаемым контентом рекомендуется использовать WebDriverWait вместо простого sleep, чтобы дождаться загрузки всех элементов.
  • Если вы планируете делать много скриншотов, рассмотрите использование headless-режима браузера для экономии ресурсов: options.add_argument("--headless").
  • Код можно расширить, добавляя подписи к скриншотам, временные метки или автоматическую сортировку файлов.
  • Скриншоты можно использовать для отчетов тестирования, мониторинга изменений на сайте или обучения.

Больше примеров по парсингу на parsertools.ru/primers.