Best Proxies for Puppeteer 2026 - DataImpulse cover

Puppeteer controla Chrome headless para scraping y automatización — renderiza JavaScript, maneja logins y clics, y alimenta una enorme parte de las pilas de scraping en Node.js en 2026. Pero apúntalo a un objetivo real desde una sola IP de datacenter y serás bloqueado o limitado por tasa rápido. La solución es enrutar Puppeteer a través de proxies — idealmente residenciales — para que cada sesión parezca un usuario común. El detalle único de Puppeteer: Chrome no acepta un nombre de usuario y contraseña en la URL del proxy, así que la autenticación necesita un paso extra. Esta guía muestra exactamente cómo configurar un proxy en Puppeteer (con código funcional), y luego clasifica los 8 mejores proxies para Puppeteer en 2026 por precio, tasa de éxito e integración.

Soy Andrii Byzov, un CMO Fraccional AI-Native que corre pipelines de datos basados en Puppeteer a diario. Abajo: la configuración para copiar y pegar incluyendo el paso de autenticación con el que todos tropiezan, el patrón de rotación que escala, y los proveedores que valen tu presupuesto — con DataImpulse residencial a $1/GB como la línea base de valor.


Datos Clave

  • Define el proxy con la flag de lanzamiento --proxy-server. Pásala en args a puppeteer.launch(); se aplica a cada página en ese navegador.
  • Chrome ignora las credenciales en la URL del proxy. Para un proxy autenticado debes llamar a page.authenticate({ username, password }) antes de page.goto() — o envolver el proxy con la biblioteca proxy-chain, que maneja la autenticación por ti.
  • La autenticación SOCKS5 no es soportada. Chromium (y por tanto Puppeteer) no hace nombre de usuario/contraseña sobre SOCKS5 — usa el endpoint HTTP/HTTPS para proxies residenciales autenticados.
  • Rota relanzando o con proxy-chain. La flag --proxy-server es fija por navegador, así que rotar significa un nuevo navegador por proxy, o un wrapper local proxy-chain apuntado a un upstream rotativo — un gateway residencial rotativo da una IP nueva por conexión automáticamente.
  • DataImpulse es la opción de valor — residencial $1/GB pay-as-you-go, datacenter $0,50/GB, móvil $2/GB, 90M+ IPs en 195 países, HTTP/HTTPS/SOCKS5, segmentación por país/ciudad/ASN — una fracción del precio empresarial por GB.

Cómo Configurar un Proxy en Puppeteer

Hay dos patrones fiables: la flag incorporada más page.authenticate(), o la biblioteca proxy-chain para una autenticación y rotación más limpias.

1. La flag --proxy-server + page.authenticate()

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    args: ['--proxy-server=http://gw.dataimpulse.com:823'], // DataImpulse gateway
  });
  const page = await browser.newPage();

  // Chrome won't take credentials in the URL — authenticate separately,
  // BEFORE the first navigation:
  await page.authenticate({
    username: 'YOUR_LOGIN__cr.us', // __cr.us = target the US
    password: 'YOUR_PASSWORD',
  });

  await page.goto('https://httpbin.org/ip'); // verify the egress IP
  console.log(await page.evaluate(() => document.body.innerText));
  await browser.close();
})();

2. La biblioteca proxy-chain (autenticación + rotación más limpias)

El proxy-chain de Apify levanta un proxy local que mantiene tus credenciales y reenvía al gateway upstream, así que te saltas page.authenticate() y puedes intercambiar los upstreams para rotar:

const puppeteer = require('puppeteer');
const proxyChain = require('proxy-chain');

(async () => {
  const upstream = 'http://YOUR_LOGIN__cr.us:[email protected]:823';
  const newProxyUrl = await proxyChain.anonymizeProxy(upstream); // local, auth handled

  const browser = await puppeteer.launch({ args: [`--proxy-server=${newProxyUrl}`] });
  const page = await browser.newPage();
  await page.goto('https://httpbin.org/ip');
  console.log(await page.evaluate(() => document.body.innerText));
  await browser.close();
  await proxyChain.closeAnonymizedProxy(newProxyUrl, true);
})();

3. SOCKS5 y una nota sobre la rotación

Puppeteer puede usar SOCKS5 (--proxy-server=socks5://gw.dataimpulse.com:824), pero Chromium no soporta autenticación por nombre de usuario/contraseña sobre SOCKS5 — así que reserva SOCKS5 para acceso con whitelist de IP y mantén los proxies residenciales autenticados en el endpoint HTTP/HTTPS. Como --proxy-server es fijo durante la vida del navegador, rotas lanzando un nuevo navegador por proxy o apuntando proxy-chain a un gateway rotativo, que entrega una IP nueva en cada nueva conexión. DataImpulse mantiene un tutorial de proxy para Puppeteer con la configuración actual.


Mejores Proxies para Puppeteer de un Vistazo

Proveedor Mejor para Puppeteer Precio residencial Protocolos Destacado
DataImpulse Mejor valor, pipelines internos $1/GB PAYG HTTP/HTTPS/SOCKS5 Pool de 90M+, tutorial oficial de Puppeteer, nunca caduca
Bright Data Empresarial + Scraping Browser ~$2,50/GB promo; $5 normal HTTP/HTTPS/SOCKS5 “Scraping Browser” alojado conecta vía CDP, Web Unlocker
Oxylabs SLA empresarial desde $6/GB HTTP/HTTPS/SOCKS5 Pool de 175M+, Web Scraper API, guía oficial
Decodo Mercado medio, grilla geo completa $3,75/GB starter; ~$2 a 1TB+ HTTP/HTTPS/SOCKS5 Pool de 115M+, sticky hasta 24h
IPRoyal Sesiones sticky largas desde $7,35/GB HTTP/HTTPS/SOCKS5 Sticky hasta 7 días; entrada PAYG barata
SOAX Mezcla residencial + móvil $3,60/GB Starter HTTP/HTTPS/SOCKS5 155M+ res, 33M+ móvil
Webshare Económico / self-serve desde $3,50/mes res; $2,99/mes DC HTTP/SOCKS5 Nivel gratis, datacenter más barato
NetNut Estabilidad ISP-residencial desde $3,53/GB HTTP/HTTPS IPs estáticas de ISP de consumidor, rotación rápida

Mejores proxies para Puppeteer 2026: precio residencial en bruto por GB vs precio de scraping API gestionada por 1K registros (unidades heterogéneas)


Las selecciones, en resumen

DataImpulse es la línea base de valor para el scraping con Puppeteer — residencial a $1/GB pay-as-you-go (datacenter $0,50/GB, móvil $2/GB), 90M+ IPs en 195 países, HTTP/HTTPS y SOCKS5, con segmentación por país/ciudad/ASN vía el nombre de usuario y un tutorial oficial de Puppeteer. El tráfico nunca caduca, así que las ejecuciones de prueba no queman una suscripción. El soporte es humano 24/7; la tasa de éxito publicada es 99,51%; G2 es 4,8/5. Es el valor por defecto cuando corres tu propio pipeline de Puppeteer y quieres el menor costo por página exitosa.

Bright Data es la opción empresarial — además del residencial (~$2,50/GB promo, $5 normal), ofrece un Scraping Browser alojado al que conectas vía CDP (puppeteer.connect({ browserWSEndpoint })) que empaqueta proxies y anti-bot, más un Web Unlocker. Oxylabs (desde $6/GB, pool de 175M+) es la opción empresarial de nivel SLA con una guía documentada de Puppeteer. Decodo (desde $3,75/GB, sticky hasta 24h) es la opción equilibrada de mercado medio. IPRoyal (desde $7,35/GB, sticky hasta 7 días) sirve para flujos largos y estables en sesión de Puppeteer. SOAX ($3,60/GB, 155M+ residencial + 33M+ móvil) es fuerte cuando necesitas IPs móviles. Webshare (nivel gratis, datacenter desde $2,99/mes) es la entrada económica self-serve, y NetNut (desde $3,53/GB) es la opción de estabilidad ISP-residencial.


Proxies Rotativos vs Sticky con Puppeteer

Dos modos, dos trabajos. Residencial rotativo — una IP nueva por conexión — es el valor por defecto para recolección amplia: hacer scraping de muchas páginas, listados o SERPs donde cada solicitud es independiente. Con un gateway rotativo recibes una nueva IP automáticamente; para rotar explícitamente en Puppeteer, lanza un nuevo navegador por proxy o apunta proxy-chain al endpoint rotativo. Sesiones sticky — la misma IP mantenida durante minutos a días — son lo que los flujos con estado necesitan: iniciar sesión, navegar por un embudo multi-paso o mantener un carrito, donde rotar a mitad del flujo rompe la sesión y dispara el anti-bot. Mantén un navegador (y una IP sticky) para todo el flujo; el sticky de hasta 7 días de IPRoyal es el más largo. La mayoría de las pilas de Puppeteer mezclan ambos: rotativo para recolección, un pool sticky para el trabajo multi-paso.

Errores Comunes de Proxy en Puppeteer

  • Poner credenciales en la URL del proxy. Chrome las ignora — usa page.authenticate() (antes de page.goto()) o proxy-chain.
  • Llamar a page.authenticate() después de la navegación. Debe correr antes del primer goto, o la solicitud falla con un 407.
  • Usar IPs de datacenter en objetivos defendidos — son bloqueadas rápido; usa residencial o móvil para cualquier cosa con anti-bot real.
  • Olvidar el fingerprint. Un proxy oculta tu IP, no tus señales de bot — combínalo con user-agents realistas y puppeteer-extra-plugin-stealth para que Chrome headless no se delate.
  • Esperar que el SOCKS5 autenticado funcione — no funciona en Chromium; usa HTTP/HTTPS para proxies con nombre de usuario/contraseña.

¿Qué Tipo de Proxy para Puppeteer — Residencial, Datacenter o Móvil?

Los tres tipos mapean a tres trabajos:

  • Residencial ($1/GB) — el caballo de batalla por defecto. IPs reales de ISP de consumidor para el grueso del scraping con Puppeteer: e-commerce, SERPs, contenido, cualquier cosa con anti-bot. Si eliges un tipo, elige este.
  • Móvil ($2/GB) — IPs reales de operadora para los objetivos más duros y para superficies de web móvil o in-app. La clase de IP más confiable, así que resérvala para endpoints que bloquean residencial.
  • Datacenter ($0,50/GB) — el más barato y rápido, para capas desprotegidas: parsear páginas ya recopiladas, datos de referencia abiertos o tu propia infraestructura. No lo apuntes a sitios pesados en anti-bot.

Para la mayoría del trabajo con Puppeteer el patrón es residencial para recolección, móvil para los pocos objetivos defendidos o exclusivos de app, y datacenter para trabajo desprotegido barato. DataImpulse ofrece los tres en una sola cuenta pay-as-you-go, así que un solo pipeline de Puppeteer puede enrutar cada navegador al nivel correcto.


Cómo Empezar con DataImpulse + Puppeteer

Paso 1. Crea una cuenta DataImpulse y obtén tus credenciales residenciales. El intro de $5 / 5GB nunca caduca — un presupuesto de prueba de verdad.

Paso 2. Añade --proxy-server=http://gw.dataimpulse.com:823 a tus args de lanzamiento, y luego o llama a page.authenticate({ username: 'YOUR_LOGIN__cr.us', password: '...' }) antes de navegar, o envuelve la URL con credenciales con proxy-chain. Añade un código de país como __cr.us al nombre de usuario para segmentación geo. Mantén los proxies autenticados en HTTP/HTTPS — Puppeteer no hace autenticación sobre SOCKS5.

Paso 3. Relanza (o usa proxy-chain) para rotar, y mantén un navegador sticky para flujos con estado. Combínalo con puppeteer-extra-plugin-stealth y un user-agent realista. Consulta el tutorial de proxy para Puppeteer y la página de proxies residenciales para los detalles.


FAQ

¿Cómo uso un proxy en Puppeteer?

Pasa --proxy-server=http://gw.dataimpulse.com:823 en el array args de puppeteer.launch(). Para un proxy autenticado, llama a page.authenticate({ username, password }) antes de page.goto() — Chrome no lee credenciales de la URL del proxy. Alternativamente, usa la biblioteca proxy-chain, que mantiene las credenciales en un proxy local y reenvía al gateway.

¿Cuál es el mejor proxy para Puppeteer?

Proxies residenciales, porque la mayoría de los objetivos bloquean IPs de datacenter. DataImpulse a $1/GB es la opción de valor (HTTP/HTTPS/SOCKS5, 90M+ IPs, tutorial oficial de Puppeteer); el Scraping Browser alojado de Bright Data u Oxylabs sirven para empresarial; SOAX y el móvil de DataImpulse ($2/GB) ayudan en superficies de app. Siempre combina el proxy con un plugin stealth y un fingerprint realista.

¿Por qué mi proxy de Puppeteer devuelve un error 407?

Un 407 (Proxy Authentication Required) significa que el proxy necesita credenciales y Puppeteer no las suministró — normalmente porque se pusieron en la URL (Chrome lo ignora) o se llamó a page.authenticate() después de la primera navegación. Llama a page.authenticate({ username, password }) justo después de newPage() y antes de page.goto(), o usa proxy-chain para manejar la autenticación.

¿Cómo roto proxies en Puppeteer?

La flag --proxy-server es fija por navegador, así que rota lanzando un nuevo navegador por proxy, o apuntando la biblioteca proxy-chain a un gateway rotativo. Con un gateway residencial rotativo como DataImpulse, cada nueva conexión ya recibe una IP nueva, así que a menudo no necesitas gestionar una lista de IPs. Para flujos con estado, mantén una IP sticky para toda la sesión en vez de rotar.

¿Puppeteer soporta SOCKS5 y proxies autenticados?

Puppeteer soporta proxies HTTP/HTTPS autenticados vía page.authenticate() o proxy-chain. Puede usar SOCKS5 (--proxy-server=socks5://...) pero Chromium no soporta autenticación por nombre de usuario/contraseña sobre SOCKS5 — así que usa el endpoint HTTP/HTTPS para proxies residenciales autenticados y reserva SOCKS5 para acceso con whitelist de IP.

¿Cuánto cuestan los proxies para Puppeteer?

El residencial en bruto se cobra por GB — DataImpulse $1/GB (piso de valor), NetNut desde $3,53, SOAX $3,60, Decodo $3,75, Oxylabs desde $6, IPRoyal $7,35; Webshare ofrece suscripciones económicas desde $3,50/mes. Una página renderizada es una pequeña fracción de un GB, así que el residencial por GB es mucho más barato que las APIs gestionadas por registro para recolección de alto volumen con Puppeteer; las opciones gestionadas sirven para los objetivos más duros.


Share article: