Назад к блогу
Начало работы

Начало работы с 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. Контексты наследуют профиль отпечатка, загруженный на уровне браузера; для разных идентичностей запускайте отдельные инстансы.

Минимальная интеграция

  1. Установите playwright-core.
  2. Укажите путь к бинарнику BotBrowser в executablePath.
  3. Передайте файл профиля .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 в параметрах запуска.

Следующие шаги

#playwright#automation#getting-started#tutorial