Опции эмуляции Selenium для веб-парсинга
Этот урок посвящён опциям эмуляции Selenium, которые позволяют настроить внешний вид и поведение браузера, парся элементы <address> с классом email на странице parsertools.ru/test.
Опции эмуляции
Эти параметры помогают настроить поведение браузера для эмуляции пользователя и устройства, а также управлять интерфейсом окна:
--start-fullscreen
Запускает браузер в полноэкранном режиме. Полезно, когда нужно имитировать поведение пользователя на полностью развёрнутом экране. Также обеспечивает корректное отображение элементов на сайтах, которые адаптируются под размеры окна. Особенно актуально для тестирования UI и визуальных компонентов.
--kiosk
Включает режим киоска, при котором браузер работает без панели управления и вкладок. Полезно для демонстрационных стендов, публичных терминалов или автоматизированных тестов. В этом режиме пользовательский интерфейс минимален, что позволяет сосредоточиться только на контенте страницы. Также используется для эмуляции ограниченной среды работы браузера.
--force-device-scale-factor=1
Задаёт коэффициент масштабирования интерфейса браузера.
Например, 1 означает стандартное масштабирование 100%.
Полезно для тестирования верстки и отображения элементов на разных устройствах.
Опция помогает сделать результаты автоматизации стабильными при различных разрешениях экранов.
--lang=ru-RU
Устанавливает язык интерфейса браузера. В данном случае задаёт русский язык для всех сообщений и системных элементов. Это удобно при локализации тестов и парсинга сайтов с учетом языковой версии. Также влияет на форматы дат, чисел и локализацию встроенных диалогов.
--enable-automation
Включает режим автоматизации, который позволяет управлять браузером с помощью инструментов типа Selenium. По умолчанию эта опция активна. Она открывает доступ к API для скриптов и тестов. При этом в интерфейсе появляется уведомление о том, что браузер управляется автоматизацией.
--disable-blink-features=AutomationControlled
Скрывает факт использования автоматизации от сайтов. Без этой опции многие сайты могут определять, что браузером управляет скрипт, и блокировать доступ или показывать капчи. Она отключает специальные функции Blink, которые выдают автоматизацию. Особенно полезно при парсинге и обходе детекции ботов.
Пример по этой теме с описанием можно посмотреть здесь.
Пример парсинга
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time
# Настройка Selenium с опциями эмуляции
options = webdriver.ChromeOptions()
options.add_argument('--start-fullscreen')
options.add_argument('--kiosk')
options.add_argument('--force-device-scale-factor=1')
options.add_argument('--lang=ru-RU')
options.add_argument('--enable-automation')
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
url = "https://parsertools.ru/test/"
try:
driver.get(url)
time.sleep(3)
print("****** Находим элементы с классом email ******")
address_tags = driver.find_elements(By.CLASS_NAME, 'email')
if address_tags:
for i, address in enumerate(address_tags, 1):
print(f"Элемент {i}: {address.text.strip()}")
else:
print("Класс 'email' не найден")
finally:
driver.quit()
Как работает код
- Опции эмуляции: Настраивают интерфейс и поведение браузера.
- Парсинг: Извлекает текст из
<address>с классомemail.
Тестирование
Пример структуры страницы:
Результат:
Элемент 1: Автор: admin@parsertools.ru
Оптимизация
- Явное ожидание: Используйте
WebDriverWait. - Масштабирование: Подходит для тестирования на разных разрешениях.
Этические аспекты
Проверяйте robots.txt, избегайте перегрузки сервера, соблюдайте правила использования данных.
Ограничения
- Совместимость: Некоторые опции зависят от окружения.
Заключение
Опции эмуляции Selenium делают браузер похожим на пользовательский. Экспериментируйте на parsertools.ru/test.
Больше уроков по парсингу на parsertools.ru/lessons.
