Integraciones · Intermedio

Usar proxies con Puppeteer y Chrome sin interfaz gráfica

Define el proxy al iniciar el navegador o en un contexto compatible de Puppeteer y facilita las credenciales antes de navegar. Comprueba la salida dentro de cada contexto y separa los flujos independientes en sesiones distintas.

2 minutos de lectura 5 secciones Revisado Equipo editorial Proxy Cyber

Inicie con un proxy y autentíquese#

Nodo.js
import puppeteer from "puppeteer";

const browser = await puppeteer.launch({
  headless: true,
  args: ["--proxy-server=http://res.proxy-cyber.com:9000", "--no-first-run"],
});
const page = await browser.newPage();
await page.authenticate({ username: "USER-cc-us-sid-run1-ttl-30m", password: "PASS" });

await page.goto("https://api.ipify.org", { waitUntil: "domcontentloaded", timeout: 45000 });
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();

Asigna un identificador de sesión distinto a cada flujo independiente cuando el gateway lo admita. Confirma la duración y los parámetros geográficos en los datos de conexión. Un dispositivo residencial puede desconectarse antes del plazo solicitado; una sesión persistente no garantiza la misma IP durante días. Para una dirección fija, compara productos estáticos dedicados.

Un proxy por navegador#

El parámetro de inicio --proxy-server define la ruta predeterminada del navegador. Puppeteer actual también admite proxyServer en browser.createBrowserContext(), con credenciales mediante page.authenticate(). Usa contextos distintos para configuraciones de proxy diferentes y directorios de datos separados para perfiles persistentes; verifica la salida en cada contexto.

Bloquear imágenes, fuentes y medios#

Solicitar interceptación
await page.setRequestInterception(true);
page.on("request", (req) => {
  const t = req.resourceType();
  if (["image", "media", "font", "stylesheet"].includes(t)) return req.abort();
  req.continue();
});

consistencia#

  • conjunto Accept-Language y la zona horaria del país de salida: page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"}) y page.emulateTimezone(\"Europe/Berlin\").
  • Deshabilite las fugas de WebRTC con --force-webrtc-ip-handling-policy=disable_non_proxied_udp en los argumentos de lanzamiento.
  • Mantenga un navegador por cuenta; reutilice su directorio de datos de usuario si la cuenta debe parecerse a un dispositivo que regresa.

Errores que encontrarás#

SíntomacausaArreglar
neto::ERR_TUNNEL_CONNECTION_FAILEDLa puerta de enlace rechazó CONNECT: credenciales, parámetro o sin salidaReproducir con cURL -v para leer el código de la puerta de enlace
net::ERR_PROXY_AUTH_UNSUPPORTED / mensajesautentificar() llamado después de la navegaciónLlame a page.authenticate antes de ir a
Misma IP en todos los navegadoresSe reutiliza la misma identificación de sesiónUtilice un -sid- distinto por navegador u omítalo
Primera carga muy lentaSalida del hogar y página pesada.Bloquear recursos; aumentar el tiempo de espera a 45 s

Preguntas que hace la gente#

¿Puede Puppeteer usar SOCKS5 con una contraseña?

Chrome no admite la autenticación SOCKS5. Utilice el proxy HTTP en el puerto 9000 con page.authenticate, o incluya la IP de su servidor en la lista blanca y pase --proxy-server=socks5://res.proxy-cyber.com:9001.

tu cuenta

Gestiona tus proxies en una sola cuenta

Compare redes, realice pedidos y siga su saldo y solicitudes de soporte desde un solo panel. Nuestro equipo revisa los pagos y proporciona detalles de conexión después de la entrega.

Crear cuenta