Navegador de huellas digitales no detectadas de Playwright con Scrapeless
Specialist in Anti-Bot Strategies
TL;DR:
- Playwright se conecta a cualquier navegador CDP con
chromium.connectOverCDP(), así que apuntarlo a Scrapeless es una URL. Cambia unchromium.launch()local por una conexión al navegador en la nube y cada script se ejecuta con una identidad limpia. - Un navegador local de Playwright filtra la automatización en tres ejes: la bandera
navigator.webdriver, una huella digital por defecto en modo sin cabeza y tu propia IP de salida. Los sistemas anti-bot puntúan los tres juntos. - El Scrapeless Scraping Browser responde a los tres del lado del servidor — Chromium real autodesarrollado, una huella digital consistente por sesión sin indicios de
webdriver, y salida residencial en más de 195 países. - Tu código de Playwright permanece sin cambios.
page.goto,page.locator,page.evaluate, y las esperas se comportan exactamente igual que a nivel local; solo la línea de conexión se mueve. - Verificado en vivo: una sesión
connectOverCDP()leyónavigator.webdrivercomofalsey devolvió el verdadero título de la página de destino a través del navegador en la nube de Scrapeless. - Gratis para comenzar. Las nuevas cuentas de Scrapeless incluyen tiempo de ejecución gratuito de Scraping Browser — regístrate en app.scrapeless.com.
Introducción: conecta Playwright a un navegador que lee limpio
Playwright controla Chromium, Firefox o WebKit a través de una única API. Lanza Chromium en tu propia máquina y cada script hereda las señales que hacen obvia la automatización: se anuncia a través de la propiedad navigator.webdriver, envía fuentes y comportamientos de canvas por defecto sin cabeza, y sale desde una IP que ya los servicios de reputación reconocen.
Puedes parchear cada uno de esos manualmente y luego continuar parchando a medida que Chromium y los detectores evolucionan. Hay un camino más corto. Playwright se adjunta a cualquier navegador que exponga un punto final de DevTools a través de chromium.connectOverCDP(), y el Scrapeless Scraping Browser es un punto final del Chrome DevTools Protocol alcanzado a través de una URL WebSocket. Apunta Playwright a él y la huella digital, la superficie de comportamiento y la IP de salida se mueven del lado del servidor — tu script se queda donde está.
Lo que puedes hacer con ello
- Ejecutar scripts contra sitios protegidos por anti-bot — el navegador en la nube supera los desafíos durante el renderizado, por lo que
page.gotollega al contenido. - Localiza la sesión — fija
proxyCountrypara que una página se resuelva como la ve un visitante en ese mercado. - Envía una huella digital consistente — pasa un objeto
fingerprintpara que el agente de usuario, la plataforma, la pantalla y la zona horaria se mantengan coherentes. - Persiste el estado de inicio de sesión — lleva un
profileIdpara que las cookies y el almacenamiento local sobrevivan entre ejecuciones. - Escala más allá de tu máquina — las sesiones se ejecutan en la nube, no en tu laptop.
- Mantén la automatización idéntica — localizadores,
page.evaluate, clics y esperas automáticas no cambian.
Por qué Scrapeless Scraping Browser
El Scrapeless Scraping Browser es un navegador en la nube personalizable contra detecciones, diseñado para rastreadores web y agentes de IA. Para Playwright específicamente, ofrece:
- Chromium autodesarrollado real que ejecuta JavaScript de página exactamente como Chrome, por lo que los SPAs y los desafíos se resuelven.
- Una huella digital consistente por sesión — sin indicios de
navigator.webdriver, sin filtraciones de por defecto en modo sin cabeza. - Salida residencial en más de 195 países, seleccionada por sesión con un solo valor de
proxyCountry. - Persistencia de sesión a través de
profileId, por lo que un flujo autenticado mantiene su estado. - Una superficie de conexión — cada opción es un parámetro de consulta en el mismo punto final de WebSocket.
Obtén tu clave de API en el plan gratuito en app.scrapeless.com.
Requisitos previos
- Node.js 18 o más reciente
playwright-coreinstalado (no se necesita navegadores empaquetados — te conectas a uno remoto)- Una cuenta de Scrapeless y clave de API — regístrate en app.scrapeless.com
Los detalles completos de conexión viven en la documentación de Scraping Browser.
Instalación
Usa playwright-core — omite la descarga del navegador, ya que Chromium vive en la nube.
bash
npm install playwright-core
export SCRAPELESS_API_KEY=tu_token_api_aqui # clave gratuita en https://app.scrapeless.com
Configura la conexión
El punto final es wss://browser.scrapeless.com/api/v2/browser, y cada opción es un parámetro de consulta. Fija proxyCountry a una región residencial.
javascript
import { URLSearchParams } from "node:url";
function scrapelessEndpoint(extra = {}) {
```javascript
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180", // segundos
proxyCountry: "US",
...extra,
});
return `wss://browser.scrapeless.com/api/v2/browser?${params}`;
}
Conectar y ejecutar
Reemplaza chromium.launch() con chromium.connectOverCDP() y dale el punto final. Todo lo que viene después es estándar de Playwright.
javascript
import { chromium } from "playwright-core";
import { URLSearchParams } from "node:url";
const params = new URLSearchParams({
token: process.env.SCRAPELESS_API_KEY,
sessionTTL: "180",
proxyCountry: "US",
});
const endpoint = `wss://browser.scrapeless.com/api/v2/browser?${params}`;
const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.newPage();
await page.goto("https://www.scrapeless.com/en", { waitUntil: "domcontentloaded", timeout: 60000 });
console.log("título:", await page.title());
console.log("navigator.webdriver:", await page.evaluate(() => navigator.webdriver));
await browser.close();
Una ejecución en vivo de este script imprimió el título de la página Herramienta de raspado web sin esfuerzo - Scrapeless y navigator.webdriver: false — la misma API de Playwright que ya usas, obtenida a través del navegador en la nube.
Obtén tu clave API en el plan gratuito: app.scrapeless.com
Envía una huella dactilar consistente
Un objeto huella dactilar mantiene la identidad anunciada del navegador coherente: el agente de usuario, la plataforma, la pantalla y la zona horaria están de acuerdo. Codifícalo en JSON, codifícalo en URL y pásalo como un parámetro más. La especificación W3C WebDriver requiere que la automatización en conformidad exponga la bandera webdriver; el navegador en la nube no la lleva, por lo que nada contradice la huella dactilar que envías.
javascript
const fingerprint = {
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
platform: "Windows",
screen: { width: 1920, height: 1080 },
localization: { languages: ["es-ES", "es"], timezone: "America/Madrid" },
};
const endpoint = scrapelessEndpoint({ fingerprint: encodeURIComponent(JSON.stringify(fingerprint)) });
Donde se detiene Playwright local
Ejecutar Playwright en tu propio Chromium está bien para páginas abiertas y desprotegidas. La fricción comienza donde el objetivo detecta el navegador: un intersticial de desafío que se detiene en una IP de centro de datos, una página que huella los valores predeterminados sin cabeza, o una pared de inicio de sesión que quiere una identidad estable a través de visitas. Cada uno es un problema de huella dactilar, comportamiento o IP — exactamente los tres que el navegador en la nube maneja del lado del servidor. Conectarse a Scrapeless entrega esos casos a una sesión gestionada mientras tus localizadores y llamadas page permanecen idénticas.
Lo que obtienes a cambio
La sesión se comporta como cualquier sesión de Playwright — los localizadores, page.goto, page.evaluate, la espera automática y las cookies funcionan. Algunas observaciones sinceras de ejecutar esto a través del navegador en la nube:
navigator.webdriveresfalse, por lo que la primera verificación que ejecuta un sitio se lee como un Chrome real.connectOverCDPdevuelve unBrowsernormal —newPage, contextos y localizadores no cambian.- La IP de salida coincide con
proxyCountry— las páginas geo-restringidas se resuelven como un visitante local las ve. - Calienta la sesión para páginas obstinadas — carga primero la página de inicio del sitio antes de la página protegida, para que la superficie de comportamiento se lea como una visita normal.
Conclusión: el mismo Playwright, navegador más limpio
Playwright decide qué hacer; Scrapeless decide cómo se ve el navegador para el sitio. La integración es solo una línea — chromium.connectOverCDP() contra el navegador en la nube — y el resto de tu script permanece intacto. Fija proxyCountry a una región residencial, pasa una huella dactilar coherente y reutiliza un profileId para flujos autenticados. Para ejecutar el mismo navegador en la nube desde Python, consulta la guía de producción de Scrapling, y compara planes en la página de precios de Scrapeless.
¿Listo para construir tu canal de raspado de Playwright?
Únete a nuestra comunidad para reclamar un plan gratuito y conectarte con desarrolladores que están construyendo tuberías de Playwright: Discord · Telegram.
Regístrate en app.scrapeless.com para obtener de forma gratuita el tiempo de ejecución del Scraping Browser y apunta connectOverCDP() al navegador en la nube que tus objetivos no pueden identificar.
FAQ
P: ¿Tengo que cambiar mi código de Playwright?
No. Cambias la forma en que se obtiene el navegador: chromium.connectOverCDP(endpoint) en lugar de chromium.launch(). Cada localizador y llamada a page después de eso es idéntica.
P: ¿playwright o playwright-core?
Usa playwright-core. Omite la descarga del navegador porque te conectas al navegador en la nube en lugar de iniciar uno local.
P: ¿connectOverCDP soporta los tres motores de navegador?
La conexión CDP se basa en Chromium, que es lo que expone el navegador en la nube de Scrapeless. Apunta chromium.connectOverCDP() al endpoint; tus scripts dirigidos a Chromium se ejecutan sin cambios.
P: ¿Necesito un proxy?
No. La salida residencial está integrada: establece proxyCountry a una región o ANY. No hay un proxy separado que configurar.
P: ¿Es legal el web scraping con Playwright?
Acceder a datos disponibles públicamente generalmente está permitido, pero las reglas varían según la jurisdicción y el sitio. Revisa los términos de servicio del objetivo, respeta las directivas de robots y consulta a un abogado para cualquier cosa sensible.
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.



