En esta guía aprenderás:
- Qué es un CAPTCHA y si se puede evitar
- Cómo implementar la lógica de omisión de CAPTCHA de Playwright
- Qué hacer en caso de que el CAPTCHA siga apareciendo.
¡Es hora de ponerse manos a la obra!
¿Qué son los CAPTCHA y se pueden evitar?
Un CAPTCHA, abreviatura de «Completely Automated Public Turing tests to tell Computers and Humans Apart» (pruebas de Turing públicas completamente automatizadas para distinguir entre ordenadores y humanos), es una prueba que se utiliza para distinguir entre usuarios humanos y bots automatizados. Se trata de un reto diseñado específicamente para que sea fácil de resolver para los humanos, pero difícil para las máquinas.

Entre los proveedores de CAPTCHA más populares se encuentran Google reCAPTCHA, hCaptcha y BotDetect. Por lo general, admiten uno o varios de los siguientes tipos de CAPTCHA:
- Desafíos basados en imágenes: los usuarios deben identificar objetos específicos en una cuadrícula de imágenes o identificar imágenes que cumplan con una suposición determinada.
- Desafíos basados en texto: los usuarios deben escribir una secuencia de letras y números distorsionados.
- Desafíos basados en audio: se pide a los usuarios que escriban las palabras que oyen.
- Desafíos tipo rompecabezas: los usuarios deben resolver un rompecabezas sencillo, como deslizar una pieza hasta su lugar.
Los CAPTCHA pueden formar parte de un flujo de usuario concreto, como el paso final de enviar un formulario:

En estos casos, el CAPTCHA siempre se muestra y los bots no pueden evitarlo. Lo que se puede hacer es integrar el software con bibliotecas de resolución de CAPTCHA para automatizarlos o con servicios que dependen de operadores humanos para resolver estos retos en tiempo real. Sin embargo, los CAPTCHAs codificados no son habituales porque resultan molestos y arruinan la experiencia del usuario.
Más comúnmente, los CAPTCHA se utilizan como parte de soluciones antibots más amplias, como los WAF ( cortafuegos de aplicacionesweb):

Estos sistemas muestran dinámicamente un CAPTCHA cuando sospechan que el usuario puede ser un bot. En estos casos, los CAPTCHA se pueden eludir haciendo que tu bot imite el comportamiento humano. Aun así, se trata de un juego del gato y el ratón que requiere actualizar continuamente tu script automatizado para evitar las nuevas medidas de detección de bots.
Una solución más eficaz para eludir los CAPTCHA es utilizar una herramienta basada en la emulación de usuarios y siempre actualizada, como CAPTCHA Solver de Bright Data.
Playwright Bypass CAPTCHA: tutorial paso a paso
Como acaba de aprender, un enfoque eficaz para evitar los CAPTCHA es hacer que su script automatizado simule comportamientos humanos mientras utiliza una huella digital similar a la de un humano. Una de las mejores herramientas para este fin es Playwright, una biblioteca líder en automatización de navegadores que aparece en la lista de las mejores herramientas de scraping web del año.
En esta sección del tutorial, verás cómo implementar la lógica de omisión de CAPTCHA de Playwright. Aprenderás a lograr este objetivo utilizando un script Node.js en JavaScript. Si eres desarrollador de Python, puedes echar un vistazo a nuestra guía equivalente sobre Playwright Stealth.
¡Empecemos!
Paso n.º 1: Inicializa tu proyecto Node.js
Si ya tienes un script de Scraping web o pruebas de Playwright, puedes saltarte este paso. De lo contrario, crea una carpeta para tu proyecto de resolución de CAPTCHA de Playwright e introdúcela en la terminal:
mkdir playwright_demo
cd playwright_demo
Inicializa un nuevo proyecto Node.js dentro de ella con el comando npm init que se muestra a continuación:
npm init -y
Abre la carpeta del proyecto en tu IDE de JavaScript favorito y añade un nuevo archivo script.js.

A continuación, no olvides abrir package.json y marcar tu proyecto como módulo añadiendo:
"type": "module"
Genial, la carpeta de tu proyecto ahora contiene una aplicación Node.js.
Paso n.º 2: Instalar Playwright Extra
Una de las debilidades conocidas de Playwright es que no admite complementos. La comunidad ha compensado esta deficiencia con Playwright Extra, una biblioteca que amplía Playwright con compatibilidad con complementos.
Añade playwright y playwright-extra a las dependencias de tu proyecto con este comando:
npm i playwright playwright-extra
Esto puede tardar un poco, así que ten paciencia.
Paso 3: Configure su script de Playwright
Es hora de inicializar tu script para que Playwright resuelva los retos CAPTCHA. Importa el navegador que deseas controlar desde playwright-extra añadiendo esta línea a script.js:
import { chromium } from "playwright-extra"
En este caso, vamos a automatizar el comportamiento humano en Chromium.
A continuación, inicialice una nueva función asíncrona donde realizar la interacción similar a la humana utilizando la API de Playwright:
(async () => {
// configura el navegador y ejecútalo
const browser = await chromium.launch()
// abre una nueva página en blanco
const page = await browser.newPage()
// lógica de automatización del navegador...
// cierra el navegador y libera sus recursos
await browser.close()
})()
Esto inicia una nueva instancia de Chromium y abre una nueva página antes de cerrar el navegador. ¡Genial, ya estás listo para añadir la lógica de automatización del navegador!
Paso n.º 4: implementar la lógica de automatización del navegador
El sitio de destino será bot.sannysoft.com, una página web especial que ejecuta algunas pruebas en el navegador para determinar si el usuario es un humano o un bot. Si intentas visitar esta página en tu navegador local, deberías ver que se superan todas las pruebas.
Conéctese a la página de destino utilizando el método goto():
await page.goto("https://bot.sannysoft.com/")
A continuación, realice una captura de pantalla de toda la página para ver los resultados de las pruebas antibots:
await page.screenshot("results.png")
Combina todo y obtendrás el siguiente archivo script.js:
import { chromium } from "playwright-extra"
(async () => {
// configura el navegador y ejecútalo
const browser = await chromium.launch()
// abre una nueva página en blanco
const page = await browser.newPage()
// navega a la página de destino
await page.goto("https://bot.sannysoft.com/")
// tomar una captura de pantalla de toda la página
await page.screenshot({
path: "results.png",
fullPage: true
})
// cerrar el navegador y liberar sus recursos
await browser.close()
})()
Ejecute el código anterior con el siguiente comando:
node script.js
El script abrirá una instancia de Chromium en modo sin interfaz gráfica, visitará la página deseada, tomará una captura de pantalla y luego cerrará el navegador. Si abre el archivo results.png que aparecerá en la carpeta raíz del proyecto al final de la ejecución del script, verá lo siguiente:

Como puede ver, Playwright vanilla en modo sin interfaz gráfica no supera varias pruebas. Por eso los WAF muestran CAPTCHAs al interactuar con páginas en Playwright. ¿La solución? ¡El complemento Stealth!
Paso n.º 5: Instalar el complemento Playwright Stealth
Playwright Stealth es un complemento para playwright-extra que evita la detección de bots. Este complemento anula varias configuraciones para que la instancia del navegador parezca natural, como si no estuviera controlada por Playwright. En concreto, este módulo modifica las propiedades del navegador para evitar todas las fugas que revelan que el navegador es automatizado.
El complemento Stealth se desarrolló originalmente para Puppeteer Extra, pero también funciona para Playwright Extra. Instálalo a través del paquete npm puppeteer-extra-plugin-stealth con este comando:
npm i puppeteer-extra-plugin-stealth
A continuación, importe el complemento Stealth en su archivo script.js con esta línea:
import StealthPlugin from "puppeteer-extra-plugin-stealth"
Paso n.º 6: registrar la configuración de Stealth
Para implementar la lógica de omisión de CAPCHA de Playwright, simplemente registre el complemento Stealth en playwright-extra mediante el método use():
chromium.use(StealthPlugin())
El navegador controlado por Playwright aparecerá ahora como un navegador real utilizado por un usuario humano.
Paso 7: Repita la prueba de detección de bots
Así es como debería verse actualmente su archivo script.js:
import { chromium } from "playwright-extra"
import StealthPlugin from "puppeteer-extra-plugin-stealth"
(async () => {
// registrar el complemento Stealth
chromium.use(StealthPlugin())
// configurar el navegador y ejecutarlo
const browser = await chromium.launch()
// abrir una nueva página en blanco
const page = await browser.newPage()
// navegar a la página de destino
await page.goto("https://bot.sannysoft.com/")
// hacer una captura de pantalla de toda la página
await page.screenshot({
path: "results.png",
fullPage: true
})
// cerrar el navegador y liberar sus recursos
await browser.close()
})()
Vuelve a ejecutar el script:
node script.js
Vuelve a abrir results.png y verás que ahora se han superado todas las pruebas de detección de bots:

¡Et voilà! ¡El truco para evitar el CAPTCHA de Playwright está completo!
¿Qué pasa si la solución anterior para resolver CAPTCHA con Playwright no funciona?
Desafortunadamente, la configuración del navegador no es el único aspecto en el que se centran las herramientas antibots. La reputación de la IP es otro factor clave, y no se puede cambiar la IP de salida con una biblioteca gratuita. ¡Para eso se necesita la integración del Proxy de Playwright!
Por lo tanto, es posible que los CAPTCHA sigan apareciendo incluso si configura su navegador de forma óptima. Para CAPTCHAs sencillos que solo requieren un clic, puede utilizar el complemento puppeteer-extra-plugin-recaptcha. Sin embargo, el enfoque basado en complementos del capítulo anterior solo funciona contra medidas antibots básicas. Cuando se trata de herramientas más complejas como Cloudflare, se necesita algo más potente.
¿Busca un solucionador de CAPTCHA real para Playwright? Pruebe las soluciones de scraping web de Bright Data.
Estas proporcionan capacidades de desbloqueo superiores con una función dedicada a la resolución de CAPTCHA para gestionar automáticamente reCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha, GeeTest CAPTCHA, FunCaptcha, Cloudflare Turnstile, AWS WAF Captcha, KeyCAPTCHA y muchos otros. Integrar el solucionador de CAPTCHA de Bright Data en su script es fácil, ya que funciona con cualquier cliente HTTP o herramienta de automatización del navegador.
Obtenga más información sobre cómo utilizar el CAPTCHA Solver de Bright Data. Además, consulte la documentación para conocer todos los detalles de integración y configuración.
Conclusión
En este artículo, ha aprendido por qué los CAPTCHA suponen un reto para Playwright y cómo abordarlos. Con la biblioteca Playwright Stealth, puede anular la configuración predeterminada del navegador para eludir la detección de bots. Sin embargo, es posible que este enfoque no siempre sea suficiente.
Por muy sofisticado que sea tu script de Playwright, los sistemas avanzados de detección de bots pueden seguir identificándote como un bot. La solución es conectarte a tu página de destino a través de una API de desbloqueo que pueda devolver sin problemas el HTML sin CAPTCHA de cualquier página web.
Ese API existe y se llama Web Unlocker. Su objetivo es rotar automáticamente la IP de salida con cada solicitud mediante la integración de un proxy, gestionar las huellas digitales del navegador, los reintentos automáticos y la resolución de CAPTCHA por ti. ¡Olvídate de las medidas antibots!
Regístrese ahora y comience su prueba gratuita hoy mismo.