Начало работы с BotBrowser и Playwright
Подробное руководство по интеграции BotBrowser с Playwright: профили отпечатков, прокси и несколько контекстов.
Введение
Playwright — это фреймворк для автоматизации браузеров от Microsoft, известный своим надёжным авто-ожиданием, поддержкой нескольких браузеров и мощным API. BotBrowser заменяет стандартный бинарный Chromium на бинарник, создающий управляемые профили отпечатков. Playwright отвечает за логику автоматизации, BotBrowser — за слой идентичности браузера.
В этом руководстве описаны установка, параметры запуска, прокси, контексты, управление viewport, распространённые ошибки и варианты размещения в продакшене.
Почему Playwright + BotBrowser?
По умолчанию Playwright использует Chromium, который может раскрывать отпечаток хоста. BotBrowser позволяет загружать разные профили отпечатков для каждой инстанции, предоставляя отдельные идентичности без изменения скриптов автоматизации.
Технический контекст
playwright-core vs playwright
Пакет playwright включает бинарники браузеров. playwright-core предоставляет тот же API без бинарников, поэтому необходимо указывать executablePath при launch, что удобно для указания BotBrowser.
# Установите playwright-core, а не playwright
npm install playwright-core
Как происходит запуск
Playwright запускает процесс Chrome с переданными аргументами. Флаги BotBrowser (--bot-profile, --bot-config-*) передаются через args и обрабатываются BotBrowser при старте. Playwright затем подключается к CDP серверу, предоставленному BotBrowser.
Контексты браузера
Контекст — это изолированная сессия с собственными cookies и storage. Контексты наследуют профиль отпечатка, загруженный на уровне браузера; для разных идентичностей запускайте отдельные инстансы.
Минимальная интеграция
- Установите
playwright-core. - Укажите путь к бинарнику BotBrowser в
executablePath. - Передайте файл профиля
.enc.
Примеры
Базовый запуск
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');
console.log('Page title:', await page.title());
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',
],
headless: true,
});
Лучшие практики
- Используйте
playwright-core. - Указывайте абсолютный путь для
--bot-profile. - Не переопределяйте viewport, если профиль уже задаёт разрешение.
- На Linux установите
DISPLAY=:10.0.
Резюме
Интеграция минимальна: установите playwright-core, добавьте executablePath и --bot-profile. Дальнейшая работа возможна через стандартное API Playwright.
title: "Начало работы с BotBrowser и Playwright" description: "Руководство по быстрому старту с BotBrowser и Playwright для автоматизации браузера с согласованными профилями фингерпринтов." date: "2025-02-18" locale: ru category: getting-started tags: ["playwright", "automation", "getting-started", "tutorial"] published: true
Обзор
Playwright управляет логикой автоматизации. BotBrowser управляет слоем идентификации браузера. Вместе они обеспечивают автоматизацию браузера с согласованным выводом фингерпринтов, контролируемым файлами профилей.
Предварительные требования
- Бинарный файл BotBrowser (скачать с GitHub)
- Файл профиля фингерпринта (формат
.enc) - Node.js 18+
npm install playwright-core
Быстрый старт
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();
})();
Ключевая конфигурация
Используйте playwright-core, а не playwright. Полный пакет playwright включает собственный Chromium. Используйте playwright-core для запуска бинарного файла BotBrowser.
Установите defaultViewport: null, чтобы Playwright не переопределял размеры экрана из вашего профиля фингерпринта.
Профиль + прокси
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',
],
headless: true,
});
Распространенные проблемы
Браузер не запускается: убедитесь, что бинарный файл BotBrowser имеет права на выполнение (chmod +x chrome).
Профиль не загружается: используйте абсолютные пути для --bot-profile. Относительные пути могут разрешаться некорректно.
Несоответствие размера экрана: установите defaultViewport: null в параметрах запуска.
Следующие шаги
- CLI-рецепты для дополнительных комбинаций флагов
- Начало работы с Puppeteer для интеграции с Puppeteer
- Управление профилями для организации профилей