---
title: "Evita la Detección de Bots con Playwright Stealth"
slug: avoid-bot-detection-with-playwright-stealth
date: 2026-07-20T21:30:27+00:00
modified: 2026-07-20T21:30:27+00:00
permalink: https://brightdata.es/blog/procedimientos/avoid-bot-detection-with-playwright-stealth
type: blog
---

[ Blog ](https://brightdata.es/blog "Blog") / [Procedimientos](https://brightdata.es/blog/procedimientos)







 [Procedimientos](https://brightdata.es/blog/procedimientos)

# Evita la Detección de Bots con Playwright Stealth

Supera la detección de bots con el plugin Playwright Stealth. Nuestra guía rápida te muestra cómo integrar Stealth en tus scripts de Playwright, manteniendo tu automatización web fluida e indetectable.

 10 min de lectura





 [ ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg) ](https://brightdata.com/blog/authors/antonello-zanini)

 [Antonello Zanini

Technical Writer

July 20, 2026

 ](https://brightdata.com/blog/authors/antonello-zanini)





 ![](https://media.brightdata.es/2024/02/Avoid-Bot-Detection-with-Playwright-Stealth.png)





Este tutorial de Playwright Stealth cubrirá:

- Qué es la detección de bots y por qué representa un problema para Playwright.
- Qué es Playwright Stealth.
- Cómo usarlo tanto en Python como en JavaScript para evitar ser bloqueado.

¡Empecemos!

## La Detección de Bots como la Mayor Limitación de Playwright

[Playwright](https://playwright.dev/python/docs/intro) es una de las librerías de Python más populares para la automatización de navegadores. En concreto, es fiable y ampliamente utilizada porque es desarrollada y mantenida directamente por Microsoft. Su API de alto nivel e intuitiva facilita el control de navegadores headless o con interfaz gráfica en diferentes lenguajes de programación. Esto significa que Playwright es una gran herramienta para el desarrollo de bots multiplataforma y multinavegador, pruebas automatizadas y scraping web.

Playwright es una de las librerías de Python más populares para la automatización de navegadores. En concreto, es fiable y ampliamente utilizada porque es desarrollada y mantenida directamente por Microsoft. Su API de alto nivel e intuitiva facilita el control de navegadores headless o con interfaz gráfica en diferentes lenguajes de programación. Esto significa que Playwright es una gran herramienta para el desarrollo de bots multiplataforma y multinavegador, pruebas automatizadas y scraping web.

El principal problema con la librería es que puede ser fácilmente detectada y bloqueada por tecnologías anti-bot, especialmente cuando se utilizan [navegadores en modo headless](/blog/proxy-101/what-is-a-headless-browser). ¿Cómo es posible? Playwright modifica automáticamente el valor de propiedades especiales y cabeceras al controlar navegadores headless. Por ejemplo, establece la configuración de Chrome `navigator.webdriver` en `true`.

Las soluciones de detección de bots conocen esas configuraciones y las analizan para verificar si el usuario actual es una persona o un bot. Cuando estos mecanismos detectan configuraciones sospechosas, clasifican al usuario como bot y lo bloquean de inmediato.

Por ejemplo, considera [esta prueba de detección de bots](https://arh.antoinevastel.com/bots/areyouheadless) para el modo headless. Visita la página en tu navegador y verás:

![Página web mostrando el mensaje 'You are not Chrome headless'](https://media.brightdata.es/2024/02/Headless-chrome-checker.png)¡Perfecto, ese es el resultado esperado!

Ahora intenta visitar la misma página con Playwright estándar y extrae la respuesta de la página:

```none

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        # launch the browser
        browser = await p.chromium.launch()
        # open a new page
        page = await browser.new_page()

        # visit the target page
        await page.goto("https://arh.antoinevastel.com/bots/areyouheadless")

        # extract the answer contained on the page
        answer_element = page.locator("#res")
        answer = await answer_element.text_content()

        # print the resulting answer
        print(f'The result is: "{answer}"')

        # close the browser and release its resources
        await browser.close()

asyncio.run(main())
```

Ejecuta el programa Python y mostrará:

```none
The result is: "You are Chrome headless"
```

Esto significa que la página de prueba de automatización de bots ha podido detectar que la solicitud realizada por tu script automatizado proviene de un navegador headless.

En otras palabras, Playwright es una herramienta limitada que puede ser fácilmente detenida por tecnologías de detección de bots. Para evitarlo, puedes anular manualmente las configuraciones predeterminadas y esperar lo mejor. ¡O instalar el plugin Playwright Stealth!

## Plugin Playwright Stealth: Qué Es y Cómo Funciona

`playwright-stealth` es un paquete de Python que extiende Playwright anulando configuraciones específicas para evitar la detección de bots. Playwright Stealth es un port del paquete npm `<a href="https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth" rel="noreferrer noopener nofollow" target="_blank">puppeteer-extra-plugin-stealth</a>`, que utiliza [módulos de evasión integrados](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth/evasions) para evitar filtraciones y modificar propiedades que exponen los navegadores automatizados como bots. Por ejemplo, elimina la propiedad `navigator.webdriver` y quita “HeadlessChrome” de la cabecera User-Agent que Chrome establece por defecto en modo headless.

El objetivo del plugin Stealth es permitir que una instancia de navegador headless automatizada supere con éxito todas las pruebas de detección de bots en [sannysoft.com](https://bot.sannysoft.com/). En el momento de redactar este artículo, ese objetivo se ha cumplido. Sin embargo, [como se menciona en la documentación oficial](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth#status), aún existen métodos para detectar navegadores headless. Lo que funciona hoy puede no funcionar mañana. Eludir todos los mecanismos de detección de bots no es completamente alcanzable, pero la librería busca hacer este proceso lo más difícil posible.

## Cómo Usar Playwright Stealth para Evitar la Detección de Bots

Sigue los pasos a continuación para aprender cómo integrar Playwright Stealth en un script de Python con `playwright` y evitar ser bloqueado.

### Paso 1: Configurar un Proyecto Python con Playwright

Nota: Si ya tienes un proyecto Python con [`Playwright`](https://github.com/microsoft/playwright-python) configurado, puedes omitir este paso.

Primero, asegúrate de tener Python 3 instalado en tu máquina. De lo contrario, [descarga el instalador](https://www.python.org/downloads/), ejecútalo y sigue el asistente de instalación.

A continuación, usa los comandos siguientes para configurar un proyecto Python llamado `playwright-demo`:

```none
mkdir playwright-demo
cd playwright-demo
```

Estos comandos crean la carpeta `playwright-demo` y acceden a ella en la terminal.

Inicializa un [entorno virtual de Python](https://docs.python.org/3/library/venv.html) y actívalo:

```none
python -m venv env
env/Scripts/activate
```

Ejecuta el siguiente comando para instalar Playwright:

```none
pip install playwright
```

Esto tomará un momento, así que ten paciencia.

Después, instala los navegadores requeridos con:

```none
playwright install
```

Abre la carpeta del proyecto en el IDE de Python de tu elección y crea un archivo `index.py`. Inicialízalo con las siguientes líneas:

```none
import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()

        # browser automation logic...

        await browser.close()

asyncio.run(main())
```

El script anterior lanza una instancia de Chromium en modo headless, abre una nueva página y finalmente cierra el navegador. Así es como luce un script básico de Playwright en Python.

Para ejecutarlo, corre:

```none
python index.py
```

¡Perfecto, ya tienes un proyecto Playwright listo para ser extendido con el Plugin Stealth!

### Paso 2: Instalar y Usar el Plugin Stealth

Instala el plugin Playwright Stealth con:

```none
pip install playwright-stealth
```

Abre tu archivo `index.py` y añade la siguiente importación a tu script de Playwright:

```none
from playwright_stealth import stealth_async
```

O si estás usando la API síncrona:

```none
from playwright_stealth import stealth_sync
```

Para registrarlo en Playwright, pasa el objeto `page` a la función importada de la siguiente manera:

```none
await stealth_async(page)
```

O si estás usando la API síncrona:

```none
stealth_async(page)
```

La función `stealth_async()` extenderá `page` anulando algunas configuraciones predeterminadas para evitar la detección de bots.

¡Fantástico! Solo queda visitar la página objetivo y repetir la prueba.

### Paso 3: Unirlo Todo

Integra el plugin Stealth en el script de Playwright presentado al inicio del artículo:

```none
import asyncio
from playwright.async_api import async_playwright
from playwright_stealth import stealth_async
async def main():
    async with async_playwright() as p:
        # launch the browser
        browser = await p.chromium.launch()
        # open a new page
        page = await browser.new_page()

        # register the Playwright Stealth plugin
        await stealth_async(page)

        # visit the target page
        await page.goto("https://arh.antoinevastel.com/bots/areyouheadless")

        # extract the message contained on the page
        message_element = page.locator("#res")
        message = await message_element.text_content()

        # print the resulting message
        print(f'The result is: "{message}"')

        # close the browser and release its resources
        await browser.close()

asyncio.run(main())
```

Ejecútalo de nuevo y esta vez mostrará:

```none
The result is: "You are not Chrome headless"
```

¡Et voilà! La página objetivo, equipada con capacidades de detección de bots, ya no puede identificar tu script automatizado de Playwright como un bot.

¡Bien hecho! Ya dominas el arte de Playwright Stealth y ninguna tecnología de detección de bots podrá detenerte.

## Extra: Playwright Stealth en JavaScript

Si eres usuario de Playwright en JavaScript y quieres lograr el mismo resultado, necesitas usar el paquete npm `puppeteer-extra-plugin-stealth`. Esto funciona tanto para [Puppeteer Extra](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra) como para [Playwright Extra](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra). Si no estás familiarizado con estos proyectos, son esencialmente versiones mejoradas de las dos librerías de automatización de navegadores. En concreto, añaden funcionalidad de extensión mediante plugins a Puppeteer y Playwright, respectivamente.

Así pues, supón que tienes el siguiente script de Playwright en JavaScript y quieres integrarlo con el plugin Stealth:

```none
import { chromium } from "playwright"

(async () => {
    // set up the browser and launch it
    const browser = await chromium.launch()
    // open a new blank page
    const page = await browser.newPage()

    // navigate the page to the target page
    await page.goto("https://arh.antoinevastel.com/bots/areyouheadless")

    // extract the message contained on the page
    const messageElement = page.locator('#res')
    const message = await messageElement.textContent()

    // print the resulting message
    console.log(`The result is: "${message}"`)

  // close the browser and release its resources
  await browser.close()
})()
```

Primero, instala `playwright-extra` y `puppeteer-extra-plugin-stealth`:

```none
npm install playwright-extra puppeteer-extra-plugin-stealth
```

A continuación, importa `chromium` desde `playwright-extra` en lugar de `playwright` e importa `StealthPlugin` desde `puppeteer-extra-plugin-stealth`:

```none
import { chromium } from "playwright-extra"
import StealthPlugin from "puppeteer-extra-plugin-stealth"
```

Luego, registra el Plugin Stealth con:

```none
chromium.use(StealthPlugin())
```

Uniéndolo todo, obtendrás:

```none
import { chromium } from "playwright-extra"
import StealthPlugin from "puppeteer-extra-plugin-stealth"

(async () => {
    // configure the Stealth plugin
    chromium.use(StealthPlugin())

    // set up the browser and launch it
    const browser = await chromium.launch()
    // open a new blank page
    const page = await browser.newPage()

    // navigate the page to the target page
    await page.goto("https://arh.antoinevastel.com/bots/areyouheadless")

    // extract the message contained on the page
    const messageElement = page.locator('#res')
    const message = await messageElement.textContent()

    // print the resulting message
    console.log(`The result is: "${message}"`)

    // close the browser and release its resources
    await browser.close()
})()
```

¡Genial! Acabas de integrar el plugin Stealth en Playwright con JavaScript.

## Conclusión

En esta guía, comprendiste por qué la detección de bots representa un desafío para Playwright y cómo abordarlo. Gracias a la librería de Python Playwright Stealth, puedes mejorar la configuración predeterminada del navegador para eludir la detección de bots. Como se demostró aquí, un enfoque similar también puede aplicarse en JavaScript.

Independientemente de lo sofisticado que sea tu script de automatización de navegador en Playwright, los sistemas avanzados de detección de bots seguirán representando un problema. Aunque podrías considerar usar otro paquete de automatización de navegador, la causa raíz de la detección reside en el navegador, no en la librería en sí. La solución está en un navegador escalable con funcionalidad de evasión anti-bot que se integre perfectamente con cualquier librería de automatización. Ese navegador existe y se conoce como [Navegador de scraping](/products/scraping-browser).

El Navegador de scraping de Bright Data es un navegador en la nube altamente escalable compatible con Playwright, Puppeteer y Selenium. Rota automáticamente la IP de salida en cada solicitud y puede gestionar la huella digital del navegador, los reintentos automáticos y la [resolución de CAPTCHA](/products/web-unlocker/captcha-solver) por ti. Estas funciones son posibles gracias a las características de desbloqueo basadas en Proxy en las que se apoya.

Los proxies de Bright Data son utilizados por empresas del Fortune 500 y más de 20.000 clientes. Esta fiable red de proxies mundial incluye:

- [Proxies de centro de datos](/proxy-types/datacenter-proxies) – Más de 1,300,000+ IPs de centros de datos.
- [Proxies residenciales](/proxy-types/residential-proxies) – Más de 400M+ IPs residenciales en más de 195 países.
- [Proxies ISP](/proxy-types/isp-proxies) – Más de 1,300,000+ IPs ISP.



Contactar ventasPrueba gratuita![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Tabla de Contenidos













 [ ](https://news.ycombinator.com/submitlink?t=Evita+la+Detecci%C3%B3n+de+Bots+con+Playwright+Stealth&u=https://brightdata.es/blog/procedimientos/avoid-bot-detection-with-playwright-stealth) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Evita+la+Detecci%C3%B3n+de+Bots+con+Playwright+Stealth&url=https://brightdata.es/blog/procedimientos/avoid-bot-detection-with-playwright-stealth) [ ](http://www.reddit.com/submit?title=Evita+la+Detecci%C3%B3n+de+Bots+con+Playwright+Stealth&url=https://brightdata.es/blog/procedimientos/avoid-bot-detection-with-playwright-stealth)







##  Usted también puede estar interesado en

 [ ![Avoid Getting Blocked With Puppeteer Stealth](https://media.brightdata.es/2023/12/Avoid-Getting-Blocked-With-Puppeteer-Stealth.svg) ](https://brightdata.es/blog/procedimientos/avoid-getting-blocked-with-puppeteer-stealth "Evite ser bloqueado con Puppeteer Stealth")

 [Procedimientos



 ![Antonello Zanini](https://media.brightdata.es/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Evite ser bloqueado con Puppeteer Stealth

Aprenda a integrar Puppeteer Stealth en un script de raspado de datos de Puppeteer para evitar bloqueos.



 05-Dec-2023

 8 min de lectura

 ](https://brightdata.es/blog/procedimientos/avoid-getting-blocked-with-puppeteer-stealth)

 [ ](https://brightdata.es/blog/datos-web/web-scraping-without-getting-blocked "Scraping web sin ser bloqueado: 12 técnicas probadas")

 [Datos web



 ![](https://media.brightdata.es/2023/05/Michael-Nyamande-50x50.png)

Michael Nyamande





### Scraping web sin ser bloqueado: 12 técnicas probadas

Tutorial sobre cómo extraer datos de sitios web sin ser bloqueado. Descubra 12 soluciones diferentes para superar los bloqueos de extracción de datos de sitios web.



 18-Jun-2023

 28 min de lectura

 ](https://brightdata.es/blog/datos-web/web-scraping-without-getting-blocked)

 [ ![Guide on How to Bypass an IP Ban](https://media.brightdata.es/2022/08/Guide-on-How-to-Bypass-an-IP-Ban.png) ](https://brightdata.es/blog/101-proxy/how-to-bypass-an-ip-ban "Cómo Eludir un Bloqueo de IP: 7 Métodos Probados (Guía 2026)")

 [Proxy 101



 ![Man with beard smiling, wearing black shirt.](https://media.brightdata.es/2021/07/avivb-50x50.png)

Aviv Besinsky





### Cómo Eludir un Bloqueo de IP: 7 Métodos Probados (Guía 2026)

Aprende 7 métodos probados para eludir bloqueos de IP, desde proxies residenciales (95-99% de éxito) hasta VPNs y rotación de IP.



 11-Aug-2022

 31 min de lectura

 ](https://brightdata.es/blog/101-proxy/how-to-bypass-an-ip-ban)
