Pular para o conteúdo
Guides 2 min de leitura 846 visualizações

Configuração de proxy no Puppeteer para Node.js

Domine a configuração de proxy no Puppeteer em projetos Node.js. Este guia cobre integração, configuração e boas práticas para automação e scraping web robustos.

Browser
Configuração de proxy no Puppeteer para Node.js

Para configurar um proxy no Puppeteer com Node.js, defina os argumentos de inicialização do navegador com --proxy-server=<proxy_address>:<port> para rotear todo o tráfego do navegador pelo proxy indicado. Isso permite mascarar o endereço IP, fazer segmentação geográfica ou contornar limites de requisições e bloqueios de IP durante interações web automatizadas.

Configuração básica de proxy

O Puppeteer controla uma instância do Chromium, passando as configurações de proxy diretamente por argumentos de linha de comando. O argumento principal é --proxy-server.

Como indicar o servidor proxy

O argumento --proxy-server recebe o endereço e a porta do proxy. O protocolo (HTTP, HTTPS, SOCKS4, SOCKS5) pode ser definido explicitamente; se for omitido, normalmente assume-se HTTP.

const puppeteer = require('puppeteer');

async function launchBrowserWithProxy(proxyAddress) {
  const browser = await puppeteer.launch({
    args: [
      `--proxy-server=${proxyAddress}`,
      // Opcional: para anonimato extremo, considere desativar o WebRTC
      // '--disable-features=WebRTC'
    ],
    headless: true, // ou false para modo com interface
  });
  const page = await browser.newPage();
  return { browser, page };
}

async function runBasicProxyExample() {
  const proxy = 'http://your-proxy-ip:port'; // Exemplo: 'http://192.168.1.1:8080' ou 'socks5://192.168.1.1:1080'
  let browser;
  try {
    const { browser: launchedBrowser, page } = await launchBrowserWithProxy(proxy);
    browser = launchedBrowser; // Atribui à variável do escopo externo para o bloco finally
    await page.goto('https://httpbin.org/ip'); // Um serviço que mostra seu IP externo
    const ipInfo = await page.evaluate(() => document.body.textContent);
    console.log('External IP through proxy:', ipInfo);
  } catch (error) {
    console.error('Error launching browser with proxy:', error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

runBasicProxyExample();

Substitua your-proxy-ip:port pelo endereço IP e pela porta reais do seu servidor proxy. Garanta que o prefixo de protocolo (por exemplo, http://, socks5://) corresponda ao tipo do seu proxy.

Proxies com autenticação

Muitos serviços de proxy exigem autenticação. O Puppeteer trata disso por meio de page.authenticate() após a inicialização do navegador e da página, enviando cabeçalhos de autenticação HTTP Basic para o proxy.

Métodos de autenticação em proxy

  1. page.authenticate(): recomendado para autenticação HTTP Basic com o Puppeteer.
  2. username:password@ip:port em --proxy-server: embora algumas ferramentas aceitem esse formato diretamente, page.authenticate() é a abordagem padrão do Puppeteer para autenticação.
const puppeteer = require('puppeteer');

async function launchBrowserWithAuthenticatedProxy(proxyAddress, username, password) {
  const browser = await puppeteer.launch({
    args: [`--proxy-server=${proxyAddress}`],
    headless: true,
  });
  const page = await browser.newPage();

  // Autentica no proxy
  await page.authenticate({ username, password });

  return { browser, page };
}

async function runAuthenticatedProxyExample() {
  const proxy = 'http://your-authenticated-proxy-ip:port';
  const proxyUsername = 'your_username';
  const proxyPassword = 'your_password';
  let browser;
  try {
    const { browser: launchedBrowser, page } = await launchBrowserWithAuthenticatedProxy(proxy, proxyUsername, proxyPassword);
    browser = launchedBrowser;
    await page.goto('https://httpbin.org/ip');
    const ipInfo = await page.evaluate(() => document.body.textContent);
    console.log('External IP through authenticated proxy:', ipInfo);
  } catch (error) {
    console.error('Error with authenticated proxy:', error);
  } finally {
    if (browser) {
      await browser.close();
    }
  }
}

runAuthenticatedProxyExample();

Estratégias de rotação de proxy

Em scraping de larga escala, um único proxy pode levar a limitação de requisições. A rotação de proxies consiste em alternar entre vários servidores proxy para distribuir as requisições e manter o anonimato.

Como implementar a rotação de proxies

  1. Mantenha uma lista de proxies: guarde os proxies disponíveis em um array, incluindo os dados de autenticação quando necessário.
  2. Lógica de seleção: implemente uma estratégia para escolher um proxy a cada nova instância de navegador ou requisição. Estratégias comuns: round-robin, seleção aleatória, rotação ponderada.

```javascript
const puppeteer = require('puppeteer');

// Lista de exemplo de proxies, alguns com dados de autenticação
const proxyConfigurations = [
{ address: 'http://proxy1.example.com:8080' },
{ address: 'http://auth-proxy1.example.com:8080', username: 'userA', password: 'passA' },
{ address: 'socks5://proxy3.

Atualizado: 03.03.2026
Voltar à categoria

Leia também

Experimente nossos proxies

20,000+ proxies em 100+ países do mundo

support_agent
GProxy Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.