Антидетект и маскировка браузеров (antidetect)¶
Модуль browser_stealth.antidetect отвечает за устранение всех известных маркеров автоматизации в рантайме браузера.
1. Конфигурация AntidetectConfig¶
Центральный класс настроек антидетекта:
from browser_stealth import AntidetectConfig
config = AntidetectConfig(
hide_webdriver=True, # navigator.webdriver = undefined
patch_permissions=True, # Notification / Permissions API spoofing
patch_plugins=True, # Эмуляция PDF Viewer и стандартных плагинов
patch_screen=True, # Согласованность window.screen и window.outerWidth
screen_width=1920,
screen_height=1080,
patch_webgl=True, # Вендор и рендерер WebGL (например, NVIDIA/ANGLE)
webgl_vendor="Google Inc. (NVIDIA)",
webgl_renderer="ANGLE (NVIDIA, NVIDIA GeForce RTX 3070 Direct3D11 vs_5_0 ps_5_0)",
patch_audio=True, # Аудио-джиттер WebAudio API
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...",
languages=["ru-RU", "ru", "en-US", "en"],
platform="Win32",
)
Готовые пресеты¶
AntidetectConfig.preset_stealth_playwright()AntidetectConfig.preset_stealth_nodriver()AntidetectConfig.preset_stealth_selenium()AntidetectConfig.preset_mobile_android()
2. Адаптеры интеграции¶
Playwright¶
from browser_stealth import apply_antidetect_playwright, AntidetectConfig
config = AntidetectConfig.preset_stealth_playwright()
await apply_antidetect_playwright(page_or_context, config)
nodriver¶
from browser_stealth import launch_nodriver, AntidetectConfig
# Фабрика сама применяет нужные флаги командной строки и CDP-инъекции
browser = await launch_nodriver(
config=AntidetectConfig.preset_stealth_nodriver(),
headless=False,
)
Selenium WebDriver¶
from browser_stealth import apply_antidetect_selenium, AntidetectConfig
config = AntidetectConfig.preset_stealth_selenium()
apply_antidetect_selenium(driver, config)
WebDriver BiDi¶
Поддержка W3C WebDriver BiDi протокола для двунаправленного управления через WebSockets:
from browser_stealth.bidi import BiDiClient, apply_antidetect_bidi
async with BiDiClient("ws://localhost:9222/session") as client:
await apply_antidetect_bidi(client, config)
3. Мост авторизации (Clearance Bridge)¶
Связка браузерной сессии с легковесным TLS HTTP-клиентом:
После прохождения Cloudflare Turnstile в браузере вы можете извлечь cookies и User-Agent и продолжить работу через TLSAsyncClient из chutils.http: