Назад в Центр знаний
Начало работы

Рецепты CLI для автоматизации браузера: примеры команд

Готовые команды запуска BotBrowser: от минимального headless-запуска до прокси и нескольких экземпляров, и как флаги CLI переопределяют значения профиля.

BotBrowser Team

Документация

Нужна поддерживаемая продуктовая документация?

У этой статьи есть соответствующая страница в центре документации. Используйте docs для каноничного сценария настройки, актуальных флагов и долгосрочной справки.

Запуск BotBrowser представляет собой командную строку Chromium с несколькими добавленными флагами --bot-*. Флаги определяют, какой профиль отпечатка загружается, как маршрутизируется трафик, какие региональные значения сообщает сеанс и как несколько процессов браузера уживаются на одной машине. Ниже собраны команды запуска, которые можно скопировать, с объяснением того, что делает каждый флаг, и способом добавлять флаги по одному, а не начинать с длинной команды, которую никто не помнит.

Каждый рецепт предполагает, что у вас есть исполняемый файл BotBrowser из релизов на GitHub и файл профиля, старшая версия которого совпадает с версией исполняемого файла. Адреса прокси, учетные данные, значения cookie и пути к файлам в примерах являются условными. Замените их своими и считайте каждый рецепт исходной конфигурацией, которую нужно адаптировать, а не обещанием одинакового результата на разных платформах, версиях профиля, прокси и целевых сайтах.

Схема трех слоев параметров запуска: флаги --bot-* командной строки с наивысшим приоритетом, блок configs профиля посередине и значения профиля по умолчанию с наименьшим приоритетом, которые формируют запущенный сеанс

Кратко

Рецепты CLI BotBrowser накладывают флаги запуска на настройки и значения профиля по умолчанию. Используйте --bot-profile, --proxy-server и --bot-noise-seed для профиля, маршрута и воспроизводимого сравнения; флаги без лицензии не действуют, а рецепт не гарантирует качество прокси.

Содержание

Выберите самый маленький рецепт для вашего сценария

Назовите обязательные входы до добавления флагов: минимальному запуску нужен --bot-profile, маршрутизируемому сеансу нужен --proxy-server, а воспроизводимому сравнению нужен --bot-noise-seed. Запишите major выбранного профиля рядом с major бинарника; команда без этих входов не является сравнимым рецептом.

Отталкивайтесь от сценария, а не от списка флагов. Если нужен только локальный тест, достаточно минимального запуска. Если сеанс должен выходить через конкретный маршрут, добавьте рецепт с прокси. Если нужны региональные значения, отличающиеся от этого маршрута, добавьте переопределения сверху. Если на одной машине работает больше одного процесса браузера, прочитайте раздел о параллельных экземплярах, прежде чем масштабироваться. Каждый шаг добавляет флаги к предыдущему, поэтому вы всегда можете убрать последнее добавление и вернуться к конфигурации, которой уже доверяете.

  • Локальный тест или разработка: минимальный headless-запуск.
  • Сеанс с маршрутизацией на сервере: прокси, изолированный каталог данных и порт отладки.
  • Региональные значения, отличающиеся от адреса выхода: переопределения часового пояса, локали, языков и местоположения.
  • Несколько процессов браузера на одной машине: отдельные каталоги данных, отдельные порты и заголовок для каждого.
  • Повторяемые сравнительные запуски: фиксированные начальные значения для шума и тайминга.
  • Подготовка сеанса: cookie, закладки, история посещений и пользовательские заголовки.
  • Диагностика: запись вызовов Canvas и журнал Chromium.

Короткую команду проще поддерживать. Каждый добавленный флаг нужно перепроверять после обновления профиля или исполняемого файла, поэтому оставляйте только те флаги, которые отвечают на требование, которое вы можете назвать.

Как флаги CLI и значения профиля взаимодействуют

Профиль содержит полный набор значений по умолчанию. Он также может содержать блок configs, который переопределяет эти значения, а командная строка может переопределить и то и другое. Согласно документации по управлению профилями, порядок от высшего приоритета к низшему такой: флаги --bot-* командной строки, затем блок configs профиля, затем значения профиля по умолчанию.

Именно этот порядок делает рецепты практичными. Вы храните один базовый профиль и меняете прокси, локаль, начальное значение и параметры окна при запуске, не редактируя файл профиля. Рецепт превращается в короткий читаемый список флагов вместо измененной копии профиля.

Существующие команды со старым написанием --bot-config-* по-прежнему поддерживаются. Используйте одно написание на опцию внутри одной команды запуска, чтобы результат оставался понятным.

Категории флагов

Флаги, используемые в рецептах, делятся на несколько групп.

  • Основные флаги (--bot-profile, --bot-profile-dir) выбирают, какой профиль отпечатка загрузить. Любой сеанс BotBrowser начинается с одного из них.
  • Флаги прокси (--proxy-server, --proxy-ip) управляют маршрутизацией. BotBrowser расширяет стандартный флаг Chromium --proxy-server, чтобы учетные данные можно было встроить в URL.
  • Переопределения конфигурации (--bot-timezone, --bot-locale, --bot-languages, --bot-window, --bot-screen, --bot-browser-brand) заменяют отдельные значения загруженного профиля.
  • Переключатели поведения (--bot-always-active, --bot-port-protection, --bot-local-dns) меняют поведение во время работы, не привязанное к одному значению профиля.
  • Флаги настройки (--bot-title, --bot-cookies, --bot-bookmarks, --bot-script, --bot-custom-headers) добавляют данные конкретного сеанса или стартовый скрипт.

Региональные значения по адресу выхода

По умолчанию BotBrowser выводит часовой пояс, локаль, языки и местоположение из IP-адреса, с которого сеанс выходит в интернет. При использовании прокси это адрес выхода прокси. В большинстве рецептов эти значения указывать не нужно. Переопределяйте их только тогда, когда нужна конфигурация, отличающаяся от той, что подсказывает адрес, и помните, что переопределения зависят от вашего уровня лицензии.

Стандартные флаги Chromium

BotBrowser также принимает стандартные флаги Chromium, такие как --headless, --user-data-dir, --remote-debugging-port, --window-size и --enable-logging. Их значение перечислено в справочнике параметров командной строки Chromium. Если вы не уверены, какой перед вами флаг, быстрой проверкой служит префикс --bot-, а справочник флагов CLI является первоисточником для флагов BotBrowser.

Какой слой побеждает для каждой настройки

Порядок приоритета фиксирован, но после запуска практический вопрос другой: какое значение сеанс реально применил. Таблица показывает побеждающий слой для пяти настроек и самый дешёвый способ прочитать результат из браузера, а не из набранной команды.

НастройкаЗначение профиля по умолчаниюConfigs профиляФлаг CLIКак прочитать в сеансе
Маршрут проксиПрямое подключение или маршрут, сохранённый в профилеМаршрут, записанный в configs профиля--proxy-serverОткройте страницу, возвращающую адрес, и сравните адрес выхода с хостом настроенного прокси.
User agentСтрока, захваченная вместе с профилемСтрока, записанная в configs профиля--user-agent, или флаг бренда, который её переписываетПрочитайте navigator.userAgent в консоли и сравните со значением флага, а не со строкой профиля.
Часовой поясЧасовой пояс, захваченный вместе с профилемПояс, записанный в configs профиля--bot-timezoneПрочитайте Intl.DateTimeFormat().resolvedOptions().timeZone в консоли.
Локаль и языкиЛокаль и список языков, захваченные вместе с профилемЗначения, записанные в configs профиля--bot-locale и --bot-languagesПрочитайте navigator.language и navigator.languages в консоли.
Экран и окноРазмеры, захваченные вместе с профилемРазмеры, записанные в configs профиля--bot-screen и --bot-windowПрочитайте screen.width и window.devicePixelRatio в консоли.

Значение в последнем столбце, отличающееся от переданного флага, означает, что флаг не применился. Обычные причины: опечатка в имени, уровень лицензии, который не покрывает флаг, или второе написание той же опции дальше в команде.

Пары флагов, которые гасят друг друга без предупреждения

Некоторые сочетания не завершаются ошибкой. Один вход побеждает, другой исчезает, и команда по-прежнему выглядит верной.

  • --bot-profile рядом с --bot-profile-dir: побеждает каталог, а одиночный файл игнорируется, поэтому запуск, задуманный как фиксация одного профиля, тихо меняется от старта к старту.
  • --bot-screen или --bot-window рядом с --window-size: они описывают разные поверхности, и сообщаемый экран может остаться на значении профиля, тогда как реальное окно следует флагу Chromium.
  • --proxy-ip рядом с маршрутом, который изменился: сеанс продолжает сообщать набранный адрес, поэтому устаревшее значение переживает смену провайдера.
  • --bot-timezone рядом с --bot-locale, --bot-languages или --bot-location: каждый применяется сам по себе, и сочетание, противоречащее адресу выхода, принимается без предупреждения.
  • Флаг бренда рядом с явной строкой в --user-agent: они могут описывать разные продукты, и оба доходят до страницы через разные поверхности.
  • socks5 рядом с --bot-local-dns: разбор имён происходит не там, где при socks5h, и маршрут может разрешать имена, которых прокси не видит.

Обнаруживайте это из браузера, а не из команды. Сравните адрес выхода, показанный страницей эха, с тем, что сообщает сеанс, прочитайте navigator.userAgent рядом со значениями client hints на панели Network и прочитайте часовой пояс, локаль и экран в консоли. Если два из этих значений расходятся, командная строка верна, а сеанс нет.

Рецепт, который запускается чисто, но сообщает значение локальной машины

Браузер стартует, страница загружается, а регион возвращается как собственный часовой пояс и локаль машины вместо адреса выхода. Команда завершается с кодом ноль, поэтому единственная улика - значение, которое читает страница. Пройдите эти проверки по порядку.

  1. Сначала подтвердите маршрут. Загрузите страницу эха и сравните адрес выхода с хостом прокси. Без рабочего маршрута все региональные значения выводятся из адреса машины.
  2. Читайте значение, которое сообщает сеанс, а не то, что вы передали, чтобы понять, какое из двух неверно, прежде чем что-то менять.
  3. Ищите переопределение, которое намеренно требует машину. --bot-timezone=real или то же значение, сохранённое в configs профиля, возвращает локальную настройку.
  4. Проверьте написание и уровень лицензии каждого регионального флага. Переопределения в этих рецептах относятся к ENT Tier1, и флаг без своего уровня оставляет выведенное значение на месте.
  5. Поищите в команде два написания одной опции, например старое имя --bot-config-* рядом с текущим.
  6. Запустите один раз без региональных флагов, чтобы увидеть, какие значения приходят из адреса выхода, затем добавляйте по одному переопределению и читайте результат.

Рецепты запуска

Каждый рецепт показывает команду, а затем объясняет важные флаги. Имя исполняемого файла chromium-browser соответствует Ubuntu. В Windows используйте chrome.exe или полный путь к распакованному файлу, а в macOS путь внутри пакета приложения Chromium. Имя файла .enc в примерах является условным и заменяется вашим собственным профилем.

Минимальный headless-запуск

Самая маленькая полезная конфигурация:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --user-data-dir="$(mktemp -d)" \
  --headless

Команда загружает профиль и работает в режиме headless с одноразовым каталогом данных. Часовой пояс, локаль и языки выводятся из IP-адреса, который использует машина. Применяйте ее для локального тестирования и разработки.

Сеанс с маршрутизацией и собственным каталогом данных

Добавьте прокси, каталог данных, уникальный для этого запуска, и порт отладки:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --proxy-server=socks5://user:[email protected]:1080 \
  --user-data-dir="/tmp/bb-session-$(date +%s)" \
  --remote-debugging-port=9222 \
  --headless

Прокси определяет адрес выхода, а BotBrowser выводит из него часовой пояс, локаль и языки. Уникальный --user-data-dir сохраняет хранилище и состояние сеанса независимыми от других процессов. Порт отладки позволяет фреймворку, например Playwright или Puppeteer, подключиться к работающему браузеру. Chromium привязывает этот порт к локальной машине, если не передать --remote-debugging-address, поэтому на общих машинах оставляйте значение по умолчанию.

Известный адрес выхода

Если вы уже знаете публичный адрес выхода прокси, укажите его:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --proxy-server=socks5://user:[email protected]:1080 \
  --proxy-ip="203.0.113.1" \
  --user-data-dir="$(mktemp -d)" \
  --headless

--proxy-ip пропускает определение IP на каждой странице, что ускоряет навигацию. Флаг принимает один адрес IPv4, один адрес IPv6 или пару через запятую. Это флаг ENT Tier1, поэтому проверьте свой уровень, прежде чем на него полагаться.

Явные часовой пояс, локаль и местоположение

Используйте явные региональные значения, когда адрес выхода не описывает нужный регион:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --proxy-server=socks5://user:[email protected]:1080 \
  --bot-timezone="Europe/Berlin" \
  --bot-locale="de-DE" \
  --bot-languages="de-DE,de,en-US" \
  --bot-location="52.5200,13.4050" \
  --user-data-dir="$(mktemp -d)" \
  --headless

Эти четыре переопределения заменяют значения, выведенные из адреса выхода, и все четыре относятся к ENT Tier1. Часовой пояс должен быть именем IANA, например Europe/Berlin, а не сокращением вроде EST. Сохраняйте согласованность языков, локали, часового пояса и координат между собой: расхождение между ними придется замечать вам самим.

Согласование бренда браузера

Выберите бренд, который должен сообщать профиль:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-browser-brand="edge" \
  --user-data-dir="$(mktemp -d)" \
  --headless

Допустимые значения: chrome, chromium, edge, brave, opera и webview. Когда вы задаете бренд, BotBrowser подстраивает строку User-Agent, заголовки Client Hints и связанные значения под него. Смена бренда требует ENT Tier2, а webview требует ENT Tier3. Выбирайте бренд, подходящий к платформе и версии загруженного профиля.

Подготовьте сеанс, который стартует с уже заданными данными:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-cookies='[{"url":"https://example.com","name":"session_id","value":"abc123","domain":".example.com"}]' \
  --bot-bookmarks='[{"title":"Dashboard","type":"url","url":"https://example.com/dashboard"}]' \
  --bot-inject-random-history \
  --bot-always-active \
  --user-data-dir="/data/persistent-session" \
  --headless

--bot-cookies загружает начальные cookie. Каждому объекту cookie нужно поле url, а cookie без него молча пропускаются. --bot-bookmarks добавляет закладки. --bot-inject-random-history добавляет историю посещений: по умолчанию небольшое случайное число записей, а при передаче числа точное количество. --bot-always-active сохраняет окна и вкладки активными, когда они не в фокусе. Cookie, история посещений и переключатель постоянной активности относятся к PRO, а постоянный --user-data-dir сохраняет результат между запусками.

Для большого набора cookie читайте их из файла JSON:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-cookies="@/opt/data/cookies.json" \
  --user-data-dir="$(mktemp -d)" \
  --headless

Префикс @ сообщает BotBrowser, что cookie нужно прочитать из файла, а не разбирать значение как встроенный JSON. Файл проще проверять, и он избавляет от проблем с кавычками в оболочке. Относитесь к нему как к учетным данным: ограничьте круг тех, кто может его читать, и держите его вне системы контроля версий.

Фиксированные начальные значения для повторяемых запусков

Зафиксируйте начальные значения, когда два запуска должны быть сопоставимы:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-noise-seed=42 \
  --bot-time-seed=42 \
  --bot-time-scale=0.92 \
  --user-data-dir="$(mktemp -d)" \
  --headless

--bot-noise-seed делает воспроизводимой защиту Canvas, WebGL, WebGPU, текста, ClientRect и звука: одно и то же начальное значение дает один и тот же результат между запусками, а 0 сохраняет значения профиля по умолчанию. --bot-time-seed делает воспроизводимой политику тайминга выполнения, а --bot-time-scale принимает дробное число меньше 1.0 для политики масштаба времени. Все три относятся к ENT Tier2. Используйте фиксированные значения, когда сравниваете две сборки или две конфигурации и хотите, чтобы единственным отличием было внесенное вами изменение.

Запись вызовов Canvas для диагностики

Записывайте вызовы Canvas в файл, когда нужно увидеть, что запросила страница:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-canvas-record-file="/tmp/canvas-capture.jsonl" \
  --user-data-dir="$(mktemp -d)" \
  --headless

--bot-canvas-record-file записывает вызовы API Canvas 2D, WebGL, WebGL2 и WebGPU в файл JSONL. Во время записи вариативность шума отключается, поэтому снимок детерминирован. Это диагностический сценарий, а инструмент CanvasLab, описанный в документации, умеет воспроизводить такой файл. В обычных запусках оставляйте запись выключенной.

Автоматизация без фреймворка со скриптом бота

Запустите файл JavaScript при старте без отдельного фреймворка автоматизации:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-script="/opt/scripts/automation.js" \
  --user-data-dir="$(mktemp -d)" \
  --headless

--bot-script выполняет файл один раз для каждого процесса браузера сразу после запуска BotBrowser, поэтому проект Node.js не нужен. Создание нового контекста браузера не запускает скрипт повторно, так что контекст, которому нужна собственная стартовая логика, получает флаг через собственные параметры запуска. Руководство по автоматизации скриптами бота показывает, на что способны такие скрипты.

Размеры окна и экрана

Задайте вместе размеры, которые сообщает сеанс, и реальный размер окна:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-window="1920x1080" \
  --bot-screen="2560x1440" \
  --window-size=1920,1080 \
  --headless

--bot-window и --bot-screen задают размеры окна и экрана, которые сообщает сеанс. Они принимают значения WxH, profile или real. --window-size является стандартным флагом Chromium для реального окна. Профили для компьютеров по умолчанию используют real в режиме с окном, поэтому передайте --bot-window=profile и --bot-screen=profile вместе, если нужны размеры из профиля при запуске с окном.

Конечные точки WebRTC и локальный DNS

Управляйте тем, какие конечные точки WebRTC открыты и где разрешаются имена:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --proxy-server=socks5://user:[email protected]:1080 \
  --bot-webrtc-ice="google" \
  --bot-local-dns \
  --headless

--bot-webrtc-ice выбирает конечные точки STUN и TURN, которые открывает WebRTC, с помощью набора google или списка custom:stun:...,turn:.... --bot-local-dns разрешает адреса прокси локально, а не полагается на поведение DNS поставщика прокси. Оба флага относятся к ENT Tier1.

Пользовательские заголовки запросов

Добавьте заголовки к каждому исходящему HTTP-запросу:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-custom-headers='{"X-Request-Source":"internal-tool","X-Team":"research"}' \
  --headless

--bot-custom-headers принимает объект JSON и добавляет эти заголовки ко всем исходящим запросам. В коде запуска на JavaScript не оборачивайте значение в дополнительные кавычки, потому что одинарные кавычки, показанные для Bash, станут частью значения. Используйте флаг для заголовков, которые ожидают ваши собственные службы, и не помещайте настоящие секреты в командную строку, которую могут прочитать другие пользователи машины. Это флаг PRO.

Защита портов

Не давайте страницам зондировать локальные службы:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --bot-port-protection \
  --headless

--bot-port-protection не позволяет удаленным страницам определять, какие службы работают на localhost, закрывая наиболее часто зондируемые локальные порты, например порты серверов разработки и средств удаленного рабочего стола. Включайте его на машинах, которые также размещают локальные службы. Это флаг PRO.

Журнал Chromium для поиска неполадок

Направьте вывод журнала Chromium в стандартный поток ошибок:

chromium-browser \
  --bot-profile="profiles/profile.enc" \
  --enable-logging=stderr \
  --headless

--enable-logging=stderr является стандартным флагом Chromium. Если флаг как будто не действует, проверьте его написание, уровень лицензии и порядок приоритета, прежде чем читать журнал. В обычных запусках отключайте подробный журнал.

Параллельные экземпляры

Профиль можно использовать повторно. Он может запускать несколько процессов браузера, поэтому один файл профиля не привязан к одному браузеру. Между процессами должны различаться хранилище и порт управления.

Выдайте каждому процессу браузера собственный --user-data-dir. Без отдельных каталогов данных процессы делят cookie, кеш и данные профиля, что приводит к непредсказуемому поведению. Выдайте каждому процессу и собственный --remote-debugging-port, потому что два процесса не могут слушать один порт. Добавьте --bot-title, чтобы заголовок окна или запись на панели задач показывали, к какому процессу они относятся.

#!/bin/bash
PROFILES_DIR="profiles/windows-chrome"
BASE_PORT=9222

for i in $(seq 1 3); do
  chromium-browser \
    --bot-profile-dir="${PROFILES_DIR}" \
    --bot-title="Worker ${i}" \
    --user-data-dir="/tmp/bb-worker-${i}" \
    --remote-debugging-port=$((BASE_PORT + i)) \
    --proxy-server=socks5://user:[email protected]:1080 \
    --headless &
done
wait

С --bot-profile-dir при каждом запуске выбирается случайный профиль из каталога. Флаг каталога нельзя сочетать с --bot-profile: если указаны оба, приоритет у каталога. Используйте --bot-profile, когда конфигурация должна оставаться неизменной, и --bot-profile-dir, когда нужно разнообразие между запусками.

Сколько процессов выдержит машина, зависит от ее процессора, памяти и загружаемых страниц, поэтому измерьте это на своей нагрузке, прежде чем выбирать число. Цикл выше использует небольшое число только ради краткости примера.

Для серверов руководство по настройке headless-сервера описывает среду Ubuntu, которую предполагают эти команды.

Проверьте рецепт, прежде чем на него полагаться

После настройки рецепта подтвердите, что сеанс действительно сообщает. Запустите его, откройте публичную страницу проверки отпечатка и сравните увиденное с заданным: часовой пояс и языки с адресом выхода или вашими переопределениями, размер окна с --bot-window, а бренд браузера с флагом.

  1. Запустите команду дважды с теми же флагами и тем же начальным значением и убедитесь, что значения, которые должны быть стабильными, стабильны.
  2. Запустите ее один раз с другим начальным значением или другим профилем и убедитесь, что значения, которые должны меняться, действительно меняются.
  3. Откройте страницу проверки с прокси и без него, чтобы увидеть, какие региональные значения приходят из адреса выхода.
  4. Повторяйте проверку после любого обновления исполняемого файла, профиля или флагов.

Страницы проверки отпечатка показывают, согласована ли конфигурация сама с собой на вашей машине. Они не предсказывают, как любой сторонний сайт отнесется к сеансу, поэтому не заменяют проверку вашего собственного рабочего процесса на сайтах и в инструментах, которыми вы действительно пользуетесь. Как проверить защиту отпечатка вашего браузера описывает более подробную процедуру проверки.

Симптомы и первые проверки

Большинство неожиданностей имеет небольшой набор причин. Проверьте это в первую очередь:

  • Флаг не действует: проверьте написание имени --bot-* и то, покрывает ли ваш уровень лицензии этот флаг.
  • Прокси не работает: проверьте полный вид URL scheme://user:pass@host:port и сначала проверьте прокси отдельно.
  • Часовой пояс выглядит неверным: передайте --bot-timezone с корректным именем IANA, например America/New_York, а не EST.
  • Размер окна игнорируется при запуске с окном: профили для компьютеров по умолчанию используют реальные размеры системы, поэтому задайте --bot-window=profile и --bot-screen=profile.
  • Значение JSON не разбирается: проверьте кавычки. В CMD под Windows используйте двойные кавычки для внешней строки и экранируйте внутренние.

Уровни лицензии, конфликты и ограничения

Некоторые флаги требуют определенного уровня лицензии. Справочник флагов CLI помечает их (PRO, ENT Tier1, ENT Tier2 и так далее), а флаг, использованный без нужного уровня, не действует. В этих рецептах региональные переопределения, --proxy-ip, --bot-webrtc-ice и --bot-local-dns относятся к ENT Tier1, смена бренда и флаги начальных значений и тайминга относятся к ENT Tier2, а cookie, история посещений, пользовательские заголовки и защита портов относятся к PRO. Сверяйтесь со справочником для своей версии, прежде чем строить планы вокруг флага, потому что пометки могут меняться между релизами.

Когда два параметра конфликтуют, решает порядок, описанный выше: флаг CLI сильнее блока configs профиля, а этот блок сильнее значения профиля по умолчанию. Не повторяйте одну и ту же опцию дважды в одной команде и используйте одно написание на опцию, чтобы команда оставалась однозначной.

Чтобы вернуться к значениям профиля по умолчанию, запустите браузер без добавленных флагов --bot-*. Храните наборы флагов в скрипте оболочки или в общем модуле конфигурации с массивом аргументов для Playwright или Puppeteer, чтобы рецепт проверялся и хранился в системе контроля версий, как любой другой код. Практического ограничения на число флагов нет, но каждый из них является кандидатом на проверку, когда что-то работает неожиданно.

Те же флаги работают в Windows, macOS и Linux. Подстройте имя исполняемого файла и формат путей под платформу и используйте профиль, старшая версия которого совпадает с версией вашего исполняемого файла. Управление профилями объясняет, как выбирать и организовывать профили.

BotBrowser поддерживает флаги CLI --bot-* на момент запуска, которые имеют наивысший приоритет над configs профиля и значениями профиля по умолчанию, поэтому вы можете хранить один базовый профиль и менять прокси, локаль, начальное значение и параметры окна для каждого рецепта, не редактируя файл профиля. BotBrowser не может заставить флаг работать вне его уровня лицензии, не гарантирует качество прокси и точность IP-адреса выхода и не заменяет проверку полученной конфигурации на вашем собственном целевом рабочем процессе.

Итог

Ограничьте каждую команду названными требованиями, запишите major профиля и бинарника и проверьте маршрут в собственном процессе. CLI выбирает документированные входы, но не доказывает качество выхода прокси.

Источники

#Cli#Recipes#Flags#конфигурация#быстрый старт

Эта статья входит в руководство: Начало работы с автоматизацией браузера: карта

Переведите BotBrowser из исследований в продакшн

Используйте эти руководства, чтобы понять модель, а затем перейти к кроссплатформенной валидации, изолированным контекстам и масштабируемому браузерному развертыванию.