Como configurar e usar um proxy no Puppeteer

Comentários: 0

O Puppeteer é uma biblioteca Node.js que permite que o JavaScript controle navegadores baseados no Chromium, como o Google Chrome, o Microsoft Edge, o Opera e o Brave. Ela é particularmente útil para automatizar tarefas do navegador, como navegar em páginas, interagir com elementos da interface, gerar arquivos PDF, fazer capturas de tela e executar testes de serviço. Uma das principais caraterísticas do Puppeteer é o seu suporte para o modo headless, em que o navegador funciona sem uma interface gráfica. Esse modo é ideal para raspagem da Web, pois aumenta significativamente a velocidade de coleta e análise de dados.

A seguir, exploraremos como configurar e utilizar proxies no Puppeteer, um passo crucial para maximizar os recursos dessa biblioteca. A utilização de proxies é benéfica por vários motivos:

  • Emular o comportamento do utilizador: ao simular acções de diferentes dispositivos e endereços IP, torna-se possível imitar uma experiência de navegação mais natural;
  • Contornar medidas antifraude e Captchas: os proxies podem ajudar a evitar a deteção ao fazer inúmeros pedidos a partir de um único endereço IP durante um curto período de tempo, o que pode desencadear medidas de segurança como captchas;
  • Balanço de carga: a distribuição de pedidos por vários servidores pode aumentar a velocidade e a eficiência da recolha de dados;
  • Superar restrições geográficas: os proxies permitem o acesso a conteúdos específicos de uma região, contornando bloqueios geográficos, permitindo a recolha de dados localizados.

Essas vantagens ressaltam a importância de integrar o gerenciamento de proxy nas configurações do Puppeteer para garantir tarefas bem-sucedidas e eficientes de raspagem e automação da Web.

Configuração passo a passo do proxy no Puppeteer usando JavaScript

Para adicionar um proxy ao Puppeteer e configurá-lo para uso, siga estas etapas simplificadas:

  1. Inicie seu ambiente de desenvolvimento, como o Microsoft Visual Studio, e selecione a biblioteca JavaScript.
  2. Use o seguinte código:
    
    
    const puppeteer = require('puppeteer');
    
    async function run() {
    const browser = await puppeteer.launch({
    headless: false,
    args: ['--proxy-server=PROXY_IP:PROXY_PORT']
    });
    const page = await browser.newPage();
    
    const pageUrl = 'https://example.com/';
    
    // Adding proxy authentication
    
    await page.authenticate({ username: 'PROXY_USERNAME', password: 'PROXY_PASSWORD' });
    await page.goto(pageUrl);
    }
    
    run();
     
  3. O argumento --proxy-server=PROXY_IP:PROXY_PORT configura o browser para utilizar o proxy especificado.
    • --proxy-server: este é um sinalizador utilizado no argumento da linha de comandos para indicar que o browser deve encaminhar os seus pedidos de rede através de um servidor proxy.
    • PROXY_IP: substitua-o pelo endereço IP real do servidor proxy que pretende utilizar.
    • PROXY_PORT: substitua-o pelo número da porta em que o seu servidor proxy está configurado para receber ligações.

    Por exemplo, se o seu proxy estiver no IP 111.111.11.11 e na porta 2020, o código terá o seguinte aspeto:

    
    args: ['--proxy-server=111.111.11.11 : 2020]
    
  4. Para utilizar um servidor proxy privado, tem de fornecer detalhes de autenticação. Insira suas credenciais de login no método page.authenticate. Por exemplo, se o seu nome de utilizador for myUser e a sua palavra-passe for myPass, actualize o código da seguinte forma:
    await page.authenticate({ username: 'myUser', password: 'myPass' }); 
  5. Para especificar uma página inicial para o navegador, modifique a variável pageUrl. Substitua o URL padrão pelo que você precisa. Por exemplo, para definir a página inicial como https://example.com/, o código seria:
    const pageUrl = 'https://example.com/'; await page.goto(pageUrl); 

Usar um proxy no Puppeteer para rotear todo o tráfego do navegador através de um servidor específico pode ser extremamente útil. Permite-lhe contornar as restrições geográficas, aumentar o anonimato online e equilibrar a carga durante as actividades de recolha de dados da Web.

Comentários:

0 Comentários