Volver al blog

¿Qué es Camoufox? El navegador anti-detección de Firefox para Python.

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

10-Jul-2026

Resumen:

  • Camoufox es un navegador anti-detección de código abierto construido sobre Firefox que engaña su huella digital a nivel del motor C++ — propiedades del navegador, pantalla, WebGL, fuentes, y más — en lugar de parchearlas con una capa de JavaScript inyectada que un detector puede leer de vuelta.
  • Se entrega como un paquete de Python que envuelve Playwright, así que lo controlas con la API de Playwright que ya conoces: pip install camoufox[geoip], obtén el navegador y lanza con un administrador de contexto Camoufox(...).
  • Su característica principal es la intermediación proxy coincidente con geoip: apúntalo a un proxy y Camoufox alinea automáticamente la zona horaria, el locale y la geolocalización a esa IP, de modo que la huella digital y el nodo de salida cuentan la misma historia.
  • Camoufox está explícitamente en desarrollo y no está destinado a producción estable — el paquete estable camoufox y el paquete alfa cloverlabs-camoufox divergen, y una nueva llamada a browser.new_page() puede provocar un error de viewport en la construcción del navegador que un contexto no_viewport evita.
  • Camoufox simula la huella digital; no suministra IPs ni resuelve desafíos. Para objetivos difíciles, Scrapeless Scraping Browser combina la anti-detección con proxies residenciales en más de 195 países en una sesión administrada — el mismo flujo de trabajo de Playwright, sin necesidad de autohospedaje.
  • Gratis para empezar. Las nuevas cuentas de Scrapeless incluyen un tiempo de ejecución gratuito de Scraping Browser — regístrate en app.scrapeless.com.

Introducción: huellas digitales que sobreviven una segunda mirada

La mayoría de las herramientas de automatización sigilosas parchean el navegador desde dentro de la página: un script inyectado anula navigator.webdriver, redefine screen, adapta WebGL. El problema es que el parche en sí es observable — un detector puede comparar lo que JavaScript informa con lo que el nivel C++ reportaría, y la discrepancia es la pista. Camoufox toma el camino más difícil: modifica Firefox a nivel de código fuente para que los valores simulados sean lo que el motor realmente devuelve, sin inyecciones de JavaScript que detectar.

Camoufox es de código abierto bajo la Licencia Pública de Mozilla 2.0, envuelve Playwright para Python, y ha acumulado cerca de 10,000 estrellas en GitHub. También está, según el propio enunciado de sus mantenedores, aún en desarrollo activo y no destinado todavía a producción estable — lo que moldea cómo deberías adoptarlo.

Esta guía cubre la instalación de Camoufox, su lanzamiento a través de Playwright, qué simula, la función de proxy geoip, los inconvenientes que encontrarás, y cómo se combina con un navegador en la nube cuando el objetivo necesita más que una buena huella digital.

¿Qué es Camoufox?

Camoufox es una versión personalizada de Firefox cuya anti-detección reside en el binario del navegador, no en una capa de script. En lugar de sobrescribir las superficies de huella digital desde JavaScript, parchea el motor Gecko de Firefox para que los valores sean nativos: propiedades de navigator, métricas de pantalla y ventana, proveedor y renderizador de WebGL, fuentes, y las superficies de audio/canvas reportan valores simulados que una página no puede distinguir de los de un navegador real, porque a nivel de motor son reales. Esas superficies son exactamente las que la investigación sobre huellas digitales de navegadores — como el proyecto Cover Your Tracks de la EFF — muestra que llevan la mayor entropía identificativa.

Lo controlas a través de un delgado envoltorio de Python alrededor de Playwright. Eso significa que toda la superficie de Playwright — selectores, evaluate, navegación, contextos — está disponible, y la única parte específica de Camoufox es cómo lanzas el navegador y pasas las opciones de huella digital. La opción os, por ejemplo, rota toda la historia de la plataforma: solicita Windows y el navegador informa Win32 y un agente de usuario de Firefox para Windows; solicita macOS y reporta el equivalente de mac — verificado a continuación.

Instalar Camoufox

Camoufox se instala desde PyPI. El extra [geoip] descarga la base de datos que utiliza para alinear la geolocalización con una IP proxy:

bash Copy
# Instalar el envoltorio de Python con el extra geoip
pip install -U "camoufox[geoip]"

# Obtener la construcción de Firefox parcheada que Camoufox controla
python -m camoufox fetch

python -m camoufox fetch descarga el binario del navegador (una versión beta de Firefox 135 al momento de escribir) y la base de datos GeoIP. Una nota sobre empaquetamiento que te ahorraré una tarde: la línea de desarrollo mantenida se ha trasladado a nuevos repositorios, y las versiones alfa se publican bajo un nombre de paquete separado, cloverlabs-camoufox. Si el paquete estable camoufox lanza un error de protocolo de navegador al iniciar (ver los inconvenientes a continuación), el paquete alfa rastrea la construcción actual del navegador de manera más cercana.

Lánzalo a través de Playwright

El lanzamiento mínimo es un administrador de contexto Camoufox que genera un navegador Playwright. Este ejemplo lee la huella digital falsificada para que puedas ver el funcionamiento de la sustitución a nivel de motor:

python Copy
from camoufox.sync_api import Camoufox

# os="windows" hace que toda la historia de la plataforma sea Windows, a nivel profundo del motor
with Camoufox(headless=True, os="windows") as browser:
    context = browser.new_context(no_viewport=True)
    page = context.new_page()
    page.goto("https://example.com")

    print("plataforma:", page.evaluate("navigator.platform"))
    print("ua:", page.evaluate("navigator.userAgent")[:75])
    print("webdriver:", page.evaluate("navigator.webdriver"))

Ejecutar esto imprime plataforma: Win32, un agente de usuario de Firefox Windows NT 10.0; Win64; x64; rv:135.0, y webdriver: False — la bandera de automatización que la mayoría de los detectores verifica primero. Cada uno de esos valores proviene del motor parcheado, no de una anulación inyectada.

El no_viewport=True en el contexto es intencionado: en la versión actual del navegador, la ruta por defecto browser.new_page() puede desencadenar un error de protocolo Browser.setDefaultViewport, y crear el contexto con no_viewport=True evita eso mientras deja la huella digital intacta. Este es exactamente el tipo de borde afilado sobre el que la etiqueta "en desarrollo" del proyecto te está advirtiendo.

Obtén tu clave API en el plan gratuito: app.scrapeless.com

La característica de proxy geoip

La capacidad más útil de Camoufox para scraping es la coherencia entre la huella digital y la red. Pasa un proxy y habilita geoip, y establece automáticamente la zona horaria, el idioma y la geolocalización del navegador para que coincidan con la IP del proxy:

python Copy
from camoufox.sync_api import Camoufox

with Camoufox(
    headless=True,
    geoip=True,  # alinea la zona horaria / idioma / geolocalización con la IP del proxy
    proxy={
        "server": "http://proxy.example.com:8000",
        "username": "user",
        "password": "pass",
    },
) as browser:
    context = browser.new_context(no_viewport=True)
    page = context.new_page()
    page.goto("https://example.com")
    print(page.title())

El valor es la consistencia: una IP residencial en Berlín emparejada con un navegador que reporta America/New_York y en-US es una contradicción que un detector puede señalar, y geoip lo elimina. Lo que Camoufox no hace es proporcionarte el proxy — esa IP es algo que tú proporcionas y pagas por separado, que es la costura donde un navegador administrado cambia la ecuación.

Los bordes ásperos — y la brecha operativa

Hay dos categorías de limitaciones que importan aquí, y son diferentes en tipo.

El borde de estabilidad es real y reconocido. El README de Camoufox establece claramente que el proyecto está en desarrollo y puede no ser adecuado para producción estable. En la práctica, eso se presenta como la división de versión entre los paquetes estables y alfa y las incompatibilidades de construcción del navegador como el error de vista anterior. El proyecto vale la pena usar y mejorar rápidamente, pero una implementación en producción necesita la fijación de versiones y pruebas por objetivo que darías a cualquier dependencia anterior a 1.0 — y su licencia MPL-2.0 lleva obligaciones que un equipo comercial debería revisar antes de incorporarla.

La brecha operativa es estructural y permanente. Una huella digital perfecta no mueve tu IP ni responde a una página de desafío. Camoufox se ejecuta en tu infraestructura, desde tu salida, así que un objetivo que limita la tasa de tu rango IP o sirve un intersticial de validación de tráfico responde a tu red, no a tu objeto navigator. Aún necesitas proxies (con el emparejamiento geoip anterior) y un plan para desafíos — y ambos son sistemas separados que ensamblas y operas.

Combinándolo con Scrapeless Scraping Browser

Cuando un objetivo necesita una huella digital fuerte y una salida residencial limpia y manejo de desafíos — y preferirías no operar tres sistemas — Scrapeless Scraping Browser combina todo en una sola sesión administrada. Es un navegador en la nube anti-detección alimentado por Chromium desarrollado internamente, con proxies residenciales en más de 195 países seleccionados por sesión, y expone un punto final CDP al que Playwright se conecta. El flujo de trabajo se mantiene nativo de Playwright, igual que Camoufox:

python Copy
import os
from playwright.sync_api import sync_playwright

# Construye el punto final WebSocket del navegador en la nube Scrapeless (salida residencial en EE. UU.)
API_KEY = os.environ["SCRAPELESS_API_KEY"]
ws_endpoint = (
    "wss://browser.scrapeless.com/api/v2/browser"
    f"?token={API_KEY}&session_ttl=180&proxy_country=US"
)

with sync_playwright() as p:
    browser = p.chromium.connect_over_cdp(ws_endpoint)
    page = browser.contexts[0].new_page() if browser.contexts else browser.new_page()
    page.goto("https://example.com", wait_until="domcontentloaded")
    print(page.title())
    browser.close()

El intercambio es claro: Camoufox cuando deseas controlar la huella digital a nivel de motor en la infraestructura que administras, Scrapeless cuando deseas que la huella digital, las IP y el manejo de desafíos se entreguen como un servicio. La documentación de Scrapeless tiene el conjunto completo de parámetros, y el precio se basa en el uso con un nivel gratuito. Dado que la emparejamiento de geoip es tan bueno como los proxies detrás de ella, la guía sobre proxies residenciales para web scraping cubre la mitad de salida de la que depende este emparejamiento.

Conclusión: sigilo a nivel de motor, con las costuras nombradas

El enfoque de Camoufox — falsificando la huella digital dentro de un Firefox parcheado en lugar de sobre él — es la idea técnicamente más fuerte, y su proxy de geoip emparejado resuelve un problema de coherencia que la mayoría de las herramientas de sigilo ignoran. Las advertencias son su estado de pre-producción (versiones fijas, prueba por objetivo, cuidado con la división del paquete) y el hecho de que es una herramienta de huellas digitales, no un stack de scraping completo.

Despliega donde controlas la infraestructura y deseas un control profundo de la huella digital, y enruta los objetivos difíciles y de alto valor — aquellos que también se basan en la reputación de IP y desafíos — a través de una sesión de Scrapeless Scraping Browser. Ambos hablan Playwright, así que es una elección de enrutamiento dentro de una única base de código, no dos reescrituras.


¿Listo para construir tu canal de datos impulsado por IA?

Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que construyen canales de anti-detección: Discord · Telegram.

Regístrate en app.scrapeless.com para obtener una ejecución gratuita de Scraping Browser y envía tus objetivos más difíciles a través de él mientras Camoufox maneja aquellos que auto-albergas.

FAQ

P: ¿Qué hace que Camoufox sea diferente de parchear un navegador normal con un plugin de sigilo?
Camoufox falsifica los valores de la huella digital en el motor C++ de Firefox, por lo que JavaScript en la página lee directamente el valor falsificado sin ninguna inyección que detectar. Los parches de sigilo basados en plugins modifican los valores desde JavaScript, lo que deja un hueco detectable entre lo que el script informa y lo que el motor informaría.

P: ¿Uso Camoufox con Playwright o Puppeteer?
Playwright, a través de su API de Python. Camoufox se entrega como un envoltorio de Python (camoufox.sync_api / camoufox.async_api) que lanza el Firefox parcheado y te entrega un objeto de navegador Playwright, por lo que el resto de tu script es un Playwright ordinario.

P: ¿Es Camoufox apto para producción?
Sus mantenedores indican que está en desarrollo y puede no ser adecuado para producción estable. Trátalo como cualquier dependencia anterior a 1.0: fija la versión, nota que el alfa se entrega bajo el paquete separado cloverlabs-camoufox, y prueba cada objetivo antes de confiar en él.

P: ¿Camoufox incluye proxies?
No. Camoufox falsifica la huella digital y, con geoip=True, alinea la zona horaria y la geolocalización a un proxy que tú proporciones, pero el proxy en sí es tu responsabilidad. Scrapeless Scraping Browser agrupa proxies residenciales en más de 195 países dentro de la sesión.

P: ¿Por qué emparejar Camoufox con Scrapeless en lugar de simplemente agregar proxies?
Porque los objetivos difíciles combinan tres verificaciones — calidad de huellas digitales, reputación de IP y páginas de desafío — y una herramienta de huellas digitales auto-alojada solo aborda la primera. Scrapeless Scraping Browser entrega Chromium anti-detección, salida residencial y manejo de desafíos como una sesión gestionada, por lo que todo el conjunto está cubierto sin la necesidad de ensamblar y operar sistemas separados.

En Scrapeless, solo accedemos a datos disponibles públicamente y cumplimos estrictamente con las leyes, regulaciones y políticas de privacidad del sitio web aplicables. El contenido de este blog es sólo para fines de demostración y no implica ninguna actividad ilegal o infractora. No ofrecemos garantías y renunciamos a toda responsabilidad por el uso de la información de este blog o enlaces de terceros. Antes de realizar cualquier actividad de scraping, consulte a su asesor legal y revise los términos de servicio del sitio web de destino u obtenga los permisos necesarios.

Artículos más populares

Catalogar