Volver al blog

Navegador de huellas digitales no detectadas de Playwright con Scrapeless

Sophia Martinez
Sophia Martinez

Specialist in Anti-Bot Strategies

09-Jul-2026

TL;DR:

  • Playwright se conecta a cualquier navegador CDP con chromium.connectOverCDP(), así que apuntarlo a Scrapeless es una URL. Cambia un chromium.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.webdriver como false y 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.

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.goto llega al contenido.
  • Localiza la sesión — fija proxyCountry para que una página se resuelva como la ve un visitante en ese mercado.
  • Envía una huella digital consistente — pasa un objeto fingerprint para 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 profileId para 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-core instalado (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 Copy
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 Copy
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 Copy
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 Copy
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.webdriver es false, por lo que la primera verificación que ejecuta un sitio se lee como un Chrome real.
  • connectOverCDP devuelve un Browser normalnewPage, 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.

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.

Artículos más populares

Catalogar