Integrações · Intermediário

Usando proxies com Puppeteer e Chrome sem interface gráfica

Defina o proxy no arranque do navegador ou num contexto compatível do Puppeteer e forneça as credenciais antes de navegar. Verifique a saída em cada contexto e separe os fluxos independentes em sessões diferentes.

2 minutos de leitura 5 seções Revisto Equipa editorial Proxy Cyber

Inicie com um proxy e autentique#

Node.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();

Atribua um identificador de sessão diferente a cada fluxo independente quando o gateway o permitir. Confirme a duração e os parâmetros geográficos nos dados de ligação. Um dispositivo residencial pode desligar-se antes do prazo pedido; uma sessão persistente não garante o mesmo IP durante dias. Para um endereço fixo, compare produtos estáticos dedicados.

Um proxy por navegador#

O parâmetro de arranque --proxy-server define o encaminhamento predefinido do navegador. O Puppeteer atual também permite proxyServer em browser.createBrowserContext(), com credenciais através de page.authenticate(). Utilize contextos diferentes para configurações de proxy distintas e diretórios de dados separados para perfis persistentes; verifique a saída em cada contexto.

Bloqueie imagens, fontes e mídia#

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

Consistência#

  • Definir Accept-Language e o fuso horário do país de saída: page.setExtraHTTPHeaders({\"Accept-Language\": \"de-DE,de;q=0.9\"}) e page.emulateTimezone(\"Europe/Berlin\").
  • Desative vazamentos de WebRTC com --force-webrtc-ip-handling-policy=disable_non_proxied_udp nos argumentos de lançamento.
  • Mantenha um navegador por conta; reutilize seu diretório de dados do usuário se a conta parecer um dispositivo de retorno.

Erros que você encontrará#

SintomaCausaCorreção
rede::ERR_TUNNEL_CONNECTION_FAILEDGateway recusou CONNECT: credenciais, parâmetro ou nenhuma saídaReproduza com cURL -v para ler o código do gateway
net::ERR_PROXY_AUTH_UNSUPPORTED / promptsauthenticate() chamado após a navegaçãoChame page.authenticate antes de ir para
O mesmo IP em todos os navegadoresMesmo ID de sessão reutilizadoUse um navegador -sid- distinto ou omita-o
Primeiro carregamento muito lentoSaída doméstica mais página pesadaBloquear recursos; aumentar o tempo limite para 45 s

Perguntas que as pessoas fazem#

O Puppeteer pode usar o SOCKS5 com uma senha?

O Chrome não oferece suporte à autenticação SOCKS5. Use o proxy HTTP na porta 9000 com page.authenticate ou coloque o IP do seu servidor na lista de permissões e passe --proxy-server=socks5://res.proxy-cyber.com:9001.

Sua conta

Gerencie seus proxies em uma conta

Compare redes, faça pedidos e acompanhe seu saldo e solicitações de suporte em um painel. Nossa equipe analisa os pagamentos e fornece detalhes de conexão após a entrega.

Criar conta