Защита от обнаружения автоматизации в BotBrowser
Как BotBrowser предотвращает раскрытие сигналов фреймворков автоматизации, устраняя необходимость в stealth-плагинах.
Обзор
При запуске Chromium через Playwright или Puppeteer браузер раскрывает сигналы автоматизации. BotBrowser предотвращает раскрытие этих сигналов, обрабатывая их на уровне движка до выполнения любого кода страницы. Stealth-плагины и JavaScript-патчи не нужны.
Как BotBrowser справляется с этим
BotBrowser модифицирует сам движок браузера. Сигналы автоматизации контролируются на уровне C++ до создания любого JavaScript-контекста. Это означает, что navigator.webdriver возвращает false нативно, а headless-режим производит ту же поверхность API, что и режим с интерфейсом.
Простая настройка Playwright
const { chromium } = require('playwright-core');
(async () => {
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
],
headless: true,
});
const context = await browser.newContext();
const page = await context.newPage();
await page.goto('https://example.com');
await browser.close();
})();
Продакшен-конфигурация
const browser = await chromium.launch({
executablePath: '/path/to/botbrowser/chrome',
args: [
'--bot-profile=/path/to/profile.enc',
'--proxy-server=socks5://user:pass@proxy:1080',
'--bot-config-timezone=America/New_York',
'--bot-config-locale=en-US',
'--bot-config-languages=en-US,en',
'--bot-disable-console-message',
'--bot-disable-debugger',
],
headless: true,
});
Ключевые флаги: --bot-disable-debugger предотвращает приостановку выполнения страницами через операторы debugger. --bot-disable-console-message подавляет вывод в консоль.
Лучшие практики
Используйте playwright-core, а не playwright. Полный пакет включает собственный Chromium.
Установите defaultViewport: null. Сохраняет размеры экрана из профиля.
Сопоставляйте локацию прокси с профилем. Сочетайте профиль фингерпринта с географически соответствующим прокси.
Ротируйте профили между сессиями. Используйте --bot-profile-dir для случайного выбора из каталога профилей.
Что можно убрать
С BotBrowser вам больше не нужны stealth-библиотеки, пользовательские JavaScript-патчи, middleware для подмены user-agent и библиотеки-обертки "undetected" браузера. BotBrowser обрабатывает базовые сигналы на уровне движка.
Следующие шаги
- Начало работы с Playwright для базовой интеграции
- Руководство по развертыванию в Docker для контейнеризированной автоматизации
- Управление профилями для организации профилей