Recetas CLI para automatización de navegador: ejemplos de comandos
Recetas de lanzamiento de BotBrowser para copiar, del arranque headless mínimo al proxy y a varias instancias, con notas sobre cómo los flags CLI anulan valores del perfil.
BotBrowser Team
Prefieres la documentación del producto mantenida?
Este artículo tiene una página equivalente en el centro de documentación. Usa los docs para el flujo canónico, las flags actuales y la referencia duradera.
Un lanzamiento de BotBrowser es una línea de comandos de Chromium con algunos flags --bot-* añadidos. Los flags deciden qué perfil de huella se carga, cómo se enruta el tráfico, qué valores regionales informa la sesión y cómo conviven varios procesos del navegador en una misma máquina. Las recetas siguientes son comandos de lanzamiento que puedes copiar, con una explicación de lo que hace cada flag y una forma de añadirlos uno a uno en lugar de partir de un comando largo que nadie recuerda haber escrito.
Cada receta da por hecho que tienes un binario de BotBrowser de las versiones de GitHub y un archivo de perfil cuya versión mayor coincide con la del binario. Las direcciones de proxy, las credenciales, los valores de cookies y las rutas de archivo de los ejemplos son marcadores de posición. Sustitúyelos por los tuyos y trata cada receta como una configuración inicial que debes adaptar, no como una promesa de resultados idénticos entre plataformas, versiones de perfil, proxies o sitios de destino.
Resumen
Las recetas CLI de BotBrowser superponen flags a la configuración y los valores por defecto del perfil. Usa --bot-profile, --proxy-server y --bot-noise-seed para perfil, ruta y comparación repetible; los flags sin licencia no surten efecto y una receta no garantiza la calidad del proxy.
Contenido
- Elige la receta más pequeña para tu escenario
- Cómo interactúan los flags de la CLI y los valores del perfil
- Recetas de lanzamiento
- Instancias en paralelo
- Verifica una receta antes de depender de ella
- Niveles de licencia, conflictos y límites
Elige la receta más pequeña para tu escenario
Nombra las entradas necesarias antes de añadir flags: una ejecución mínima necesita --bot-profile, una sesión enrutada añade --proxy-server y una comparación repetible añade --bot-noise-seed. Anota juntos el major del perfil elegido y el major del binario; una orden que omite esas entradas no es una receta comparable.
Parte del escenario, no de la lista de flags. Si solo necesitas una prueba local, basta el lanzamiento mínimo. Si la sesión debe salir por una ruta concreta, añade la receta del proxy. Si necesitas valores regionales distintos de esa ruta, añade las sobrescrituras encima. Si más de un proceso del navegador se ejecuta en la misma máquina, lee la sección sobre instancias en paralelo antes de escalar. Cada paso añade flags al anterior, así que siempre puedes quitar la última adición y volver a una configuración en la que ya confías.
- Prueba local o desarrollo: el lanzamiento headless mínimo.
- Sesión enrutada en un servidor: un proxy, un directorio de datos aislado y un puerto de depuración.
- Valores regionales distintos de la dirección de salida: sobrescrituras de zona horaria, idioma regional, idiomas y ubicación.
- Varios procesos del navegador en una máquina: directorios de datos separados, puertos separados y un título para cada uno.
- Ejecuciones comparables y repetibles: semillas fijas para el ruido y la temporización.
- Preparación de sesión: cookies, marcadores, historial y encabezados personalizados.
- Diagnóstico: grabación de Canvas y registro de Chromium.
Un comando corto es más fácil de mantener. Cada flag que añades es una cosa más que revisar tras actualizar un perfil o el binario, así que conserva solo los flags que responden a un requisito que sepas nombrar.
Cómo interactúan los flags de la CLI y los valores del perfil
Un perfil trae un conjunto completo de valores por defecto. También puede contener un bloque configs que sobrescribe esos valores, y la línea de comandos puede sobrescribir ambos. Según la documentación de gestión de perfiles, el orden de mayor a menor prioridad es: flags --bot-* de la CLI, después el bloque configs del perfil y por último los valores por defecto del perfil.
Ese orden es lo que hace prácticas las recetas. Mantienes un perfil base y varías proxy, idioma regional, semilla y ventana en el lanzamiento, sin editar el archivo del perfil. Una receta pasa a ser una lista corta y legible de flags en lugar de una copia modificada del perfil.
Los comandos existentes que usan la grafía antigua --bot-config-* siguen siendo compatibles. Usa una sola grafía por opción dentro de un mismo comando de lanzamiento para que el resultado sea fácil de leer.
Categorías de flags
Los flags de las recetas se reparten en unos pocos grupos.
- Los flags principales (
--bot-profile,--bot-profile-dir) eligen qué perfil de huella se carga. Toda sesión de BotBrowser empieza con uno de ellos. - Los flags de proxy (
--proxy-server,--proxy-ip) controlan el enrutamiento. BotBrowser amplía el flag estándar--proxy-serverde Chromium para que las credenciales puedan ir incrustadas en la URL. - Las sobrescrituras de configuración (
--bot-timezone,--bot-locale,--bot-languages,--bot-window,--bot-screen,--bot-browser-brand) reemplazan valores concretos del perfil cargado. - Los interruptores de comportamiento (
--bot-always-active,--bot-port-protection,--bot-local-dns) cambian un comportamiento en ejecución que no está ligado a un único valor del perfil. - Los flags de personalización (
--bot-title,--bot-cookies,--bot-bookmarks,--bot-script,--bot-custom-headers) añaden datos propios de la sesión o un script de arranque.
Valores regionales según la dirección de salida
Por defecto, BotBrowser deriva la zona horaria, el idioma regional, los idiomas y la ubicación de la dirección IP con la que la sesión sale a internet. Con un proxy, esa es la dirección de salida del proxy. En la mayoría de las recetas no hace falta indicar estos valores. Sobrescríbelos solo cuando necesites una configuración distinta de la que sugiere la dirección, y recuerda que las sobrescrituras dependen de tu nivel de licencia.
Flags estándar de Chromium
BotBrowser también acepta los flags estándar de Chromium, como --headless, --user-data-dir, --remote-debugging-port, --window-size y --enable-logging. Su significado figura en la referencia de opciones de línea de comandos de Chromium. Si dudas del tipo de flag que tienes delante, el prefijo --bot- es una prueba rápida, y la referencia de flags de la CLI es la fuente de referencia para los de BotBrowser.
Qué capa gana en cada ajuste
El orden de prioridad es fijo, pero la pregunta práctica tras un lanzamiento es otra: qué valor aplicó realmente la sesión. La tabla registra la capa que gana en cinco ajustes y la forma más barata de leer el resultado desde el navegador y no desde la orden que escribiste.
| Ajuste | Valor por defecto del perfil | Configs del perfil | Flag CLI | Cómo leerlo en la sesión |
|---|---|---|---|---|
| Ruta del proxy | Conexión directa o la ruta guardada en el perfil | Una ruta escrita dentro de los configs del perfil | --proxy-server | Abre una página que devuelva tu dirección y compara la dirección de salida con el equipo del proxy configurado. |
| User agent | La cadena capturada con el perfil | Una cadena escrita dentro de los configs del perfil | --user-agent, o un flag de marca que la reescribe | Lee navigator.userAgent en la consola y compáralo con el valor del flag, no con la cadena del perfil. |
| Zona horaria | La zona horaria capturada con el perfil | Una zona escrita dentro de los configs del perfil | --bot-timezone | Lee Intl.DateTimeFormat().resolvedOptions().timeZone en la consola. |
| Locale e idiomas | El locale y la lista de idiomas capturados con el perfil | Valores escritos dentro de los configs del perfil | --bot-locale y --bot-languages | Lee navigator.language y navigator.languages en la consola. |
| Pantalla y ventana | Las dimensiones capturadas con el perfil | Dimensiones escritas dentro de los configs del perfil | --bot-screen y --bot-window | Lee screen.width y window.devicePixelRatio en la consola. |
Un valor de la última columna distinto del flag que pasaste significa que el flag no se aplicó. Las causas habituales son un nombre mal escrito, un nivel de licencia que no cubre el flag, o una segunda forma de escribir la misma opción más adelante en el comando.
Pares de flags que se anulan sin aviso
Algunas combinaciones no fallan. Una entrada gana, la otra desaparece y el comando sigue pareciendo correcto.
--bot-profilejunto a--bot-profile-dir: gana el directorio y se ignora el archivo único, así que un lanzamiento pensado para fijar un perfil varía en silencio entre arranques.--bot-screeno--bot-windowjunto a--window-size: describen superficies distintas, y la pantalla informada puede quedarse en el valor del perfil mientras la ventana real sigue el flag de Chromium.--proxy-ipjunto a una ruta que cambió: la sesión sigue informando la dirección que escribiste, así que un valor viejo sobrevive a un cambio de proveedor.--bot-timezonejunto a--bot-locale,--bot-languageso--bot-location: cada uno se aplica por su cuenta, y una combinación que contradice la dirección de salida se acepta sin aviso.- Un flag de marca junto a una cadena explícita en
--user-agent: ambos pueden describir productos distintos y los dos llegan a la página por superficies separadas. socks5junto a--bot-local-dns: la resolución de nombres ocurre en un punto distinto que consocks5h, y la ruta puede resolver nombres que el proxy nunca ve.
Detecta esto desde el navegador y no desde el comando. Compara la dirección de salida que muestra una página de eco con la que informa la sesión, lee navigator.userAgent junto a los valores de client hints en el panel Red, y lee zona horaria, locale y pantalla en la consola. Si dos de esos valores no coinciden, la línea de comandos es correcta y la sesión no.
Una receta que arranca sin errores pero informa el valor de la máquina
El navegador arranca, la página carga y la región vuelve como la zona horaria y el locale de la propia máquina en lugar de la dirección de salida. El comando termina con código cero, así que la única evidencia es el valor que lee la página. Recorre estas comprobaciones en orden.
- Confirma primero la ruta. Carga una página de eco y compara la dirección de salida con el equipo del proxy. Sin una ruta operativa, todos los valores regionales se derivan de la dirección de la máquina.
- Lee el valor que informa la sesión, no el que pasaste, para saber cuál de los dos está mal antes de cambiar nada.
- Busca una sobrescritura que pida la máquina a propósito.
--bot-timezone=real, o el mismo valor guardado en los configs del perfil, restaura el ajuste local. - Revisa la ortografía y el nivel de licencia de cada flag regional. Las sobrescrituras de estas recetas son ENT Tier1, y un flag sin su nivel deja el valor derivado en su sitio.
- Busca en el comando dos formas de escribir la misma opción, por ejemplo el nombre antiguo
--bot-config-*junto al actual. - Ejecuta una vez sin flags regionales para ver qué valores vienen de la dirección de salida, luego añade una sobrescritura a la vez y lee el resultado.
Recetas de lanzamiento
Cada receta muestra el comando y después explica los flags que importan. El nombre de binario chromium-browser es el de Ubuntu. En Windows usa chrome.exe o la ruta completa del binario extraído, y en macOS usa la ruta dentro del paquete de la aplicación Chromium. El nombre de archivo .enc de los ejemplos es un marcador de posición para tu propio perfil.
Lanzamiento headless mínimo
La configuración útil más pequeña:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--user-data-dir="$(mktemp -d)" \
--headless
Esto carga el perfil y se ejecuta en modo headless con un directorio de datos desechable. La zona horaria, el idioma regional y los idiomas se derivan de la dirección IP que usa la máquina. Úsalo para pruebas locales y desarrollo.
Sesión enrutada con su propio directorio de datos
Añade un proxy, un directorio de datos exclusivo de esta ejecución y un puerto de depuración:
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
El proxy decide la dirección de salida y BotBrowser deriva de ella la zona horaria, el idioma regional y los idiomas. Un --user-data-dir único mantiene el almacenamiento y el estado de sesión independientes de otros procesos. El puerto de depuración permite que un framework como Playwright o Puppeteer se conecte al navegador en ejecución. Chromium enlaza ese puerto a la máquina local salvo que pases --remote-debugging-address, así que deja el valor por defecto en máquinas compartidas.
Dirección de salida conocida
Si ya conoces la dirección pública de salida del proxy, indícala:
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 omite la consulta de IP en cada página, lo que acelera la navegación. Acepta una dirección IPv4, una dirección IPv6 o una pareja separada por comas. Es un flag de ENT Tier1, así que confirma tu nivel antes de depender de él.
Zona horaria, idioma regional y ubicación explícitos
Usa valores regionales explícitos cuando la dirección de salida no describe la región que quieres:
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
Estas cuatro sobrescrituras reemplazan los valores derivados de la dirección de salida, y las cuatro son de ENT Tier1. La zona horaria debe ser un nombre IANA como Europe/Berlin, no una abreviatura como EST. Mantén coherentes entre sí los idiomas, el idioma regional, la zona horaria y las coordenadas, porque una discrepancia entre ellos tienes que detectarla tú.
Alinear la marca del navegador
Elige la marca que debe informar el perfil:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-browser-brand="edge" \
--user-data-dir="$(mktemp -d)" \
--headless
Los valores aceptados son chrome, chromium, edge, brave, opera y webview. Cuando fijas una marca, BotBrowser ajusta la cadena User-Agent, las cabeceras Client Hints y los valores relacionados para que coincidan con ella. El cambio de marca requiere ENT Tier2, y webview requiere ENT Tier3. Elige una marca acorde con la plataforma y la versión del perfil que cargaste.
Cookies, marcadores e historial al arrancar
Prepara una sesión que arranque con datos ya colocados:
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 carga cookies iniciales. Cada objeto de cookie necesita un campo url, y las cookies sin él se omiten sin aviso. --bot-bookmarks añade marcadores. --bot-inject-random-history añade historial de navegación, un número pequeño y aleatorio de entradas por defecto o una cantidad exacta si pasas un número. --bot-always-active mantiene activas las ventanas y pestañas cuando pierden el foco. Las cookies, el historial y el interruptor de actividad permanente son funciones PRO, y el --user-data-dir persistente conserva el resultado entre ejecuciones.
Cargar cookies desde un archivo
Para un conjunto grande de cookies, léelas desde un archivo JSON:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-cookies="@/opt/data/cookies.json" \
--user-data-dir="$(mktemp -d)" \
--headless
El prefijo @ indica a BotBrowser que lea las cookies del archivo en lugar de interpretar el valor como JSON en línea. Un archivo es más fácil de revisar y evita problemas de comillas en el shell. Trátalo como una credencial: limita quién puede leerlo y mantenlo fuera del control de versiones.
Semillas fijas para ejecuciones repetibles
Fija las semillas cuando necesites que dos ejecuciones sean comparables:
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 hace reproducible la protección de Canvas, WebGL, WebGPU, texto, ClientRect y audio: la misma semilla da el mismo resultado entre ejecuciones, y 0 conserva los valores por defecto del perfil. --bot-time-seed hace reproducible la política de temporización de ejecución, y --bot-time-scale admite un decimal menor que 1.0 para la política de escala de tiempo. Los tres son de ENT Tier2. Usa semillas fijas cuando compares dos compilaciones o dos configuraciones y quieras que la única diferencia sea el cambio que hiciste.
Grabar llamadas de Canvas para diagnóstico
Escribe las llamadas de Canvas en un archivo cuando necesites ver qué pidió una página:
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 graba las llamadas a las API de Canvas 2D, WebGL, WebGL2 y WebGPU en un archivo JSONL. La variación de ruido se desactiva durante la grabación, así que la captura es determinista. Es un flujo de diagnóstico, y la herramienta CanvasLab descrita en la documentación puede reproducir el archivo. Déjalo desactivado en las ejecuciones habituales.
Automatización sin framework con un script de bot
Ejecuta un archivo JavaScript al arrancar sin un framework de automatización aparte:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-script="/opt/scripts/automation.js" \
--user-data-dir="$(mktemp -d)" \
--headless
--bot-script ejecuta el archivo una vez por proceso del navegador justo después de que BotBrowser arranque, así que no hace falta un proyecto de Node.js. Crear un nuevo contexto del navegador no vuelve a ejecutar el script, por lo que un contexto que necesite su propia lógica de arranque recibe el flag en sus propias opciones de lanzamiento. La guía de automatización con scripts de bot muestra qué pueden hacer esos scripts.
Tamaños de ventana y de pantalla
Fija a la vez las dimensiones que informa la sesión y el tamaño real de la ventana:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-window="1920x1080" \
--bot-screen="2560x1440" \
--window-size=1920,1080 \
--headless
--bot-window y --bot-screen fijan las dimensiones de ventana y de pantalla que informa la sesión. Aceptan valores WxH, profile o real. --window-size es el flag estándar de Chromium para la ventana real. Los perfiles de escritorio usan real por defecto en modo con ventana, así que pasa --bot-window=profile y --bot-screen=profile juntos si quieres las dimensiones del perfil en una ejecución con ventana.
Puntos de conexión WebRTC y DNS local
Controla qué puntos de conexión WebRTC se exponen y dónde se resuelven los nombres:
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 elige los puntos de conexión STUN y TURN que expone WebRTC, con el preajuste google o una lista custom:stun:...,turn:.... --bot-local-dns resuelve los destinos del proxy en local en lugar de depender del comportamiento DNS del proveedor del proxy. Ambos son de ENT Tier1.
Encabezados de solicitud personalizados
Añade encabezados a cada solicitud HTTP saliente:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-custom-headers='{"X-Request-Source":"internal-tool","X-Team":"research"}' \
--headless
--bot-custom-headers recibe un objeto JSON y añade esos encabezados a todas las solicitudes salientes. En código de lanzamiento JavaScript no envuelvas el valor en comillas adicionales, porque las comillas simples que se muestran para Bash pasarían a formar parte del valor. Úsalo para encabezados que esperan tus propios servicios y no pongas secretos reales en una línea de comandos que otros usuarios de la máquina puedan leer. Es un flag PRO.
Protección de puertos
Mantén los servicios locales fuera del alcance del sondeo desde páginas:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--bot-port-protection \
--headless
--bot-port-protection impide que las páginas remotas detecten qué servicios se ejecutan en localhost, al cubrir los puertos locales que se sondean con más frecuencia, como los de servidores de desarrollo y herramientas de escritorio remoto. Actívalo en máquinas que además alojen servicios locales. Es un flag PRO.
Registro de Chromium para resolver problemas
Envía la salida de registro de Chromium a la salida de error estándar:
chromium-browser \
--bot-profile="profiles/profile.enc" \
--enable-logging=stderr \
--headless
--enable-logging=stderr es un flag estándar de Chromium. Cuando un flag parezca no tener efecto, revisa su grafía, su nivel de licencia y el orden de precedencia antes de leer los registros. Desactiva el registro detallado en las ejecuciones habituales.
Instancias en paralelo
Un perfil es reutilizable. Puede iniciar varios procesos del navegador, así que un archivo de perfil no está atado a un único navegador. Lo que debe diferir entre procesos es el almacenamiento y el puerto de control.
Da a cada proceso del navegador su propio --user-data-dir. Sin directorios de datos separados, los procesos comparten cookies, caché y datos del perfil, lo que provoca un comportamiento impredecible. Da también a cada proceso su propio --remote-debugging-port, porque dos procesos no pueden escuchar en el mismo puerto. Añade --bot-title para que el título de la ventana o la entrada de la barra de tareas te diga a qué proceso pertenece.
#!/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
Con --bot-profile-dir, cada arranque elige un perfil aleatorio del directorio. El flag de directorio no se puede combinar con --bot-profile: si ambos están presentes, prevalece el directorio. Usa --bot-profile cuando una configuración deba mantenerse fija y --bot-profile-dir cuando quieras variación entre arranques.
Cuántos procesos aguanta una máquina depende de su CPU, de su memoria y de las páginas que cargues, así que mide con tu propia carga de trabajo antes de elegir una cifra. El bucle anterior usa un número pequeño solo para que el ejemplo sea breve.
Para servidores, la guía de configuración de servidor headless describe el entorno Ubuntu que dan por supuesto estos comandos.
Verifica una receta antes de depender de ella
Después de ajustar una receta, confirma lo que la sesión informa realmente. Lánzala, abre una página pública de prueba de huella y compara lo que ves con lo que configuraste: la zona horaria y los idiomas frente a la dirección de salida o tus sobrescrituras, el tamaño de ventana frente a --bot-window y la marca del navegador frente al flag.
- Ejecuta el comando dos veces con los mismos flags y la misma semilla, y comprueba que los valores que esperas estables lo son.
- Ejecútalo una vez con otra semilla u otro perfil, y comprueba que los valores que esperas que cambien cambian.
- Abre la página de prueba con y sin el proxy para ver qué valores regionales proceden de la dirección de salida.
- Repite la comprobación tras cualquier actualización del binario, del perfil o de los flags.
Las páginas de prueba de huella muestran si una configuración es coherente consigo misma en tu máquina. No predicen cómo tratará una sesión cualquier sitio de terceros, así que no sustituyen una prueba de tu propio flujo de trabajo con los sitios y herramientas que usas de verdad. Cómo verificar la protección de la huella de tu navegador describe una rutina de pruebas más amplia.
Síntomas y primeras comprobaciones
La mayoría de las sorpresas vienen de un conjunto reducido de causas. Revisa esto antes que nada:
- Un flag no tiene efecto: revisa la grafía del nombre
--bot-*y si tu nivel de licencia cubre ese flag. - El proxy no funciona: verifica la forma completa de la URL
scheme://user:pass@host:porty prueba antes el proxy por separado. - La zona horaria parece incorrecta: pasa
--bot-timezonecon un nombre IANA válido, por ejemploAmerica/New_York, noEST. - El tamaño de ventana se ignora en una ejecución con ventana: los perfiles de escritorio usan por defecto las dimensiones reales del sistema, así que fija
--bot-window=profiley--bot-screen=profile. - Un valor JSON no se interpreta: revisa las comillas. En CMD de Windows, usa comillas dobles para la cadena exterior y escapa las interiores.
Niveles de licencia, conflictos y límites
Algunos flags requieren un nivel de licencia. La referencia de flags de la CLI los etiqueta (PRO, ENT Tier1, ENT Tier2, etc.), y un flag usado sin el nivel requerido no tiene efecto. En estas recetas, las sobrescrituras regionales, --proxy-ip, --bot-webrtc-ice y --bot-local-dns son de ENT Tier1; el cambio de marca y los flags de semilla y temporización son de ENT Tier2; y las cookies, el historial, los encabezados personalizados y la protección de puertos son PRO. Consulta la referencia de tu versión antes de planificar en torno a un flag, porque las etiquetas pueden cambiar entre versiones.
Cuando dos ajustes entran en conflicto, decide el orden descrito antes: un flag de la CLI prevalece sobre el bloque configs del perfil, y ese bloque prevalece sobre el valor por defecto del perfil. No repitas la misma opción dos veces en un comando y usa una sola grafía por opción, para que el comando no sea ambiguo.
Para volver a los valores por defecto del perfil, lanza sin los flags --bot-* que añadiste. Guarda los conjuntos de flags en un script de shell, o en un módulo de configuración compartido que contenga el array de argumentos de Playwright o Puppeteer, para que una receta se revise y se versione como cualquier otro código. No hay un límite práctico al número de flags, pero cada uno es un candidato a revisar cuando algo se comporta de forma inesperada.
Los mismos flags funcionan en Windows, macOS y Linux. Ajusta el nombre del binario y el formato de las rutas a la plataforma, y usa un perfil cuya versión mayor coincida con la de tu binario. Gestión de perfiles explica cómo elegir y organizar perfiles.
BotBrowser soporta flags CLI --bot-* en el momento del lanzamiento que tienen la máxima prioridad sobre los configs y los valores por defecto del perfil, así que puedes mantener un perfil base y variar proxy, idioma regional, semilla y ventana por receta sin editar el archivo del perfil. BotBrowser no puede hacer que un flag funcione fuera de su nivel de licencia, no garantiza la calidad del proxy ni la precisión de la IP de salida, y no sustituye probar la configuración resultante con tu propio flujo de trabajo de destino.
Conclusión práctica
Limita cada comando a requisitos nombrados, registra los majors del perfil y del binario y valida la ruta en tu propio flujo. La CLI selecciona entradas documentadas, pero no demuestra la calidad de salida del proxy.
Fuentes
Este artículo forma parte de la guía: Primeros pasos con automatización de navegador: mapa inicial
Artículos Relacionados
Primeros pasos con automatización de navegador: mapa inicial
Primeros pasosPuppeteer + BotBrowser: errores de lanzamiento y de perfil
Primeros pasosProxy launcher de BotBrowser: perfiles, proxy e inicio
Primeros pasosPlaywright con perfiles de identidad coherentes
Primeros pasosIntegración de perfiles de navegador con Selenium
IdentidadGestión de cookies del navegador para flujos multi-identidad
Lleva BotBrowser de la investigación a producción
Usa estas guías para entender el modelo y después avanzar hacia validación multiplataforma, contextos aislados y despliegue de navegador preparado para escalar.