Опции оптимизации Selenium для веб-парсинга
Этот урок посвящён опциям оптимизации Selenium для ускорения и упрощения веб-парсинга. Мы разберём, как отключить изображения, уведомления и звук, парся элементы <address> с классом email на странице parsertools.ru/test.
Опции оптимизации
Эти параметры помогают ускорить работу браузера и снизить потребление ресурсов, что особенно важно при парсинге и автоматизированных тестах:
--blink-settings=imagesEnabled=false
Эта опция отключает загрузку изображений в браузере. Благодаря этому страницы открываются быстрее, так как не тратятся ресурсы на загрузку и отрисовку графики. Особенно полезно при парсинге, где требуется только текстовая информация. Однако стоит учитывать, что на некоторых сайтах изображения могут быть частью функционала.
--disable-popup-blocking
Отключает встроенный блокировщик всплывающих окон. Это полезно в тестах, где нужно проверить работу попапов или автоматизировать их обработку. Без этой опции браузер может блокировать всплывающие окна, мешая корректной автоматизации. При этом в реальной среде опцию лучше не использовать, так как попапы могут мешать работе.
--disable-notifications
Полностью отключает отображение уведомлений, которые запрашивают сайты (например, «Разрешить отправку уведомлений»). Это делает автоматизацию более стабильной, так как всплывающие окна не будут мешать скриптам. Особенно актуально при массовом парсинге сайтов, где подобные запросы могут появляться неожиданно. Пользовательский опыт при этом не эмулируется полностью, но стабильность выше.
--mute-audio
Отключает звук в браузере. Эта опция полезна, если страницы содержат мультимедиа-контент с автостартом аудио или видео. В автоматизированных тестах и CI/CD это помогает избежать шума и лишней нагрузки на систему. Функциональность самих медиаэлементов сохраняется, но звук будет выключен.
--disable-translate
Отключает встроенный переводчик Chrome, который предлагает перевести страницы на другой язык. При автоматизации такие всплывающие уведомления могут мешать корректной работе скриптов. Эта опция делает поведение браузера более предсказуемым. Особенно полезно при парсинге сайтов на иностранных языках.
--disable-features=VizDisplayCompositor
Отключает компонент VizDisplayCompositor, который используется для рендеринга.
В headless-режиме он может снижать производительность и вызывать нестабильности.
Благодаря этой опции браузер работает быстрее и стабильнее при автоматизированных задачах.
Особенно полезна на серверах и в контейнерах, где важна экономия ресурсов.
Пример по этой теме с описанием можно посмотреть здесь.
Пример парсинга
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('--blink-settings=imagesEnabled=false')
options.add_argument('--disable-popup-blocking')
options.add_argument('--disable-notifications')
options.add_argument('--mute-audio')
options.add_argument('--disable-translate')
options.add_argument('--disable-features=VizDisplayCompositor')
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, избегайте перегрузки сервера, соблюдайте правила использования данных.
Ограничения
- Совместимость: Некоторые опции работают только в headless-режиме.
Заключение
Опции оптимизации Selenium ускоряют веб-парсинг. Экспериментируйте на parsertools.ru/test.
Больше уроков по парсингу на parsertools.ru/lessons.
