Selenium парсинг: когда ещё жив классика

Selenium для парсинга через браузерные драйверы. Где он уместен в 2026, чем слабее Playwright и когда лучше не строить скрейпер на Selenium.

← Все статьи

selenium парсинг

Selenium парсинг — управление браузером через WebDriver для страниц с рендером или UI-действиями. Вырос из QA и до сих пор жив в корпоративных контурах. Для новых скрейперов чаще берут Playwright или Puppeteer, но Selenium логичен при готовом Grid и многоязычных биндингах.

selenium парсинг

Кратко

  • Selenium = WebDriver + драйверы; биндинги Java, Python, C#, JS…
  • Сильная сторона — зрелость в QA и корпоративная инфраструктура.
  • Для парсинга чаще шумнее: waits, flaky селекторы.
  • На greenfield обычно выигрывает Playwright по DX.
  • Дорог по ресурсам относительно HTTP+парсер.
selenium парсинг

Инфографика: WebDriver-хаб → браузеры → собранные данные в таблицу/хранилище.

Типовые задачи

ЗадачаПодходСложностьКогда не подходит
Сбор с уже существующего GridRemote WebDriverСредняяНет Grid, есть только HTTP
Общий код с e2e-тестамиPage Object + extractСредняяНужен чистый краулер
Мультиязычная командаJava/.NET bindingsСредняяКоманда только на Node/Python + Playwright
Массовый HTTP-краулБерите Scrapy

Пример кода: Python WebDriver

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

def scrape_catalog(url: str) -> list[dict]:
    options = webdriver.ChromeOptions()
    options.add_argument("--headless=new")
    driver = webdriver.Chrome(options=options)
    try:
        driver.get(url)
        WebDriverWait(driver, 15).until(
            EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".product-card"))
        )
        cards = driver.find_elements(By.CSS_SELECTOR, ".product-card")
        return [
            {
                "title": c.find_element(By.CSS_SELECTOR, "h2").text.strip(),
                "price": c.find_element(By.CSS_SELECTOR, ".price").text.strip(),
            }
            for c in cards
        ]
    finally:
        driver.quit()

Когда Selenium ещё логичен

  1. Уже крутится Selenium Grid / облако драйверов.
  2. Тот же код обслуживает e2e и выгрузки.
  3. Команда сильна в Java/.NET биндингах.
  4. Внутренние стандарты ИБ завязаны на WebDriver.
  5. Миграция на Playwright отложена.

Сравнение

КритерийSeleniumPlaywrightScrapy
Рендер JSДаДаНет (без доработок)
OriginQAАвтоматизация + e2eКраулинг
Типичная больWaits, драйверыРесурсы браузераJS-сайты
Масштаб HTTPНизкийНизкий–среднийВысокий

Ограничения

Selenium не делает парсинг юридически безопасным. Для статичных каталогов сначала проверьте HTML/API — возможно, хватит Beautiful Soup или Scrapy.

Когда не подходит

Не стартуйте greenfield-парсер на Selenium «потому что знакомо с курсов». Node/Chromium — Puppeteer/Playwright. Без кода — no-code.

FAQ

Selenium устарел для парсинга?

Не мёртв, но для новых скрейперов чаще выбирают Playwright.

Selenium IDE подойдёт?

Для прототипа кликов — да; для продакшена нужны код, очередь и мониторинг.

Grid обязателен?

Нет. Для малого объёма хватит локального драйвера.

Кастом: парсинг сайтов, парсинг магазина. Серия: Playwright, Puppeteer.