Latenode

Automação Invisível: Usando puppeteer-extra-plugin-stealth para Contornar a Proteção Contra Bots

Saiba como usar técnicas de automação furtiva de forma eficaz para contornar sistemas de detecção de bots durante a navegação.

8 min de leitura
Navegador headless com técnicas stealth para reduzir a detecção de bots

Quer contornar sistemas de detecção de bots ao automatizar o Chrome? O puppeteer-extra-plugin-stealth é uma ferramenta que ajuda a ocultar rastros de automação, dificultando que sites detectem bots.

Principais pontos:

  • O que faz: Oculta marcadores de automação (como navigator.webdriver) e imita o comportamento de navegadores reais.
  • Como funciona: Ajusta impressões digitais do navegador, introduz padrões naturais de navegação e gerencia detalhes da sessão.
  • Por que é importante: Ajuda a evitar a detecção por sistemas antibot avançados, como desafios CAPTCHA e fingerprinting de navegadores.
  • Configuração: Instale Puppeteer, puppeteer-extra e o plugin stealth via npm ou Yarn. Use o plugin stealth para configurar seu navegador para se comportar como um usuário real.

Exemplo rápido:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await browser.close();
})();

Essa ferramenta é ideal para automatizar tarefas em sites com detecção rigorosa de bots. Saiba como configurá-la, otimizar suas definições e simular comportamentos humanos para evitar a detecção.

Tutorial de Nodejs Puppeteer nº 7 - Contornar detecção usando ...

Instalação e configuração

Para começar, você precisará instalar os pacotes necessários e configurá-los para minimizar a detecção durante a automação. Esta seção aborda o processo de instalação, a configuração inicial e os testes para garantir que tudo funcione como esperado.

Instalação dos pacotes necessários

Primeiro, instale Puppeteer, Puppeteer Extra e o plugin Stealth. Abra seu terminal e execute o seguinte comando:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Se você usa Yarn, utilize este comando:

yarn add puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Etapas da configuração inicial

Após a instalação, configure seu arquivo JavaScript para integrar o plugin stealth. Veja o código necessário:

import puppeteer from 'puppeteer-extra';
import StealthPlugin from 'puppeteer-extra-plugin-stealth';

puppeteer.use(StealthPlugin());

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://nowsecure.nl/');
  await browser.close();
})();

Importante: Importe o Puppeteer de 'puppeteer-extra' em vez de 'puppeteer' para acessar as funcionalidades adicionais [2].

Depois de concluir a configuração, é hora de verificar se tudo está funcionando corretamente.

Testando sua instalação

Execute estes testes para confirmar que sua configuração funciona como esperado:

  • Teste de funcionalidade básica: Tente navegar até um site que detecta bots e analise os resultados.
  • Verificação por captura de tela: Faça uma captura de tela da página de teste para confirmar que os recursos stealth foram aplicados corretamente.
  • Verificação de pontuação do reCAPTCHA: Observe suas pontuações do reCAPTCHA v3 para determinar se houve melhorias.

Para uma verificação rápida, use o seguinte script:

(async () => {
  const browser = await puppeteer.launch({ headless: true });
  const page = await browser.newPage();
  await page.goto('https://bot.sannysoft.com');
  await page.waitForTimeout(5000);
  await page.screenshot({ path: 'stealth-test.png' });
  await browser.close();
})();

Esse script fará uma captura de tela da página de teste. Verifique a imagem para confirmar se seu navegador se comporta como um navegador Chrome comum, sem revelar sinais de automação.

Quando sua configuração passar nesses testes, você estará pronto para explorar os recursos avançados do plugin, abordados na próxima seção.

Principais recursos stealth

O puppeteer-extra-plugin-stealth utiliza diversas técnicas para tornar a navegação automatizada mais difícil de detectar.

Mascaramento da identidade do navegador

O plugin ajusta propriedades importantes do navegador para imitar um navegador Chrome típico. Isso inclui:

  • Substituir o user-agent padrão HeadlessChrome por uma opção mais natural
  • Definir cabeçalhos Accept-Language realistas
  • Ajustar o suporte a codecs para reprodução de mídia
  • Modificar navigator.vendor para corresponder ao comportamento padrão do Chrome

Essas alterações ajudam a criar um perfil de navegador que parece pertencer a um usuário comum, e não a um bot. Além disso, o plugin emprega técnicas antifingerprinting para reduzir ainda mais o risco de detecção.

Métodos antifingerprinting

RecursoMétodoObjetivo
Emulação de processadorLimita os processadores lógicos a 4Imita o hardware típico de usuários
Emulação de pluginsSimula navigator.mimeTypes e pluginsImita a funcionalidade padrão do Chrome
Propriedades da janelaAdiciona outerWidth e outerHeightCompleta a simulação do navegador
Propriedades do fornecedorAjusta o identificador do Google no ChromeAjuda a evitar a detecção de automação

Esses métodos garantem que o navegador se comporte de uma maneira compatível com o que os sites esperam de usuários reais.

Remoção de marcadores de automação

Para disfarçar ainda mais a automação, o plugin remove ou modifica sinais reveladores de atividade de bots:

  • Exclui a propriedade navigator.webdriver
  • Adiciona os objetos chrome.app e chrome.csi, presentes em navegadores Chrome comuns
  • Oculta o atributo sourceurl em scripts do Puppeteer
  • Ajusta propriedades de permissions para corresponder ao comportamento natural do navegador

Gerenciamento de CAPTCHA

O plugin também ajuda a reduzir desafios CAPTCHA ao manter um comportamento consistente do navegador e gerenciar sessões com eficiência. Isso cria um padrão de navegação alinhado à atividade humana, permitindo contornar a maioria dos testes de detecção de bots em plataformas como sannysoft.com [2]. No entanto, sistemas antibot avançados, como os usados pela Cloudflare, ainda podem detectar automação em alguns casos [1].

sbb-itb-23997f1

Configuração personalizada

A configuração personalizada permite ajustar as definições stealth e o comportamento do navegador, ajudando você a evitar a detecção de forma mais eficaz.

Configurações do módulo Stealth

O Puppeteer Stealth permite gerenciar seus módulos de evasão para sites específicos. Você pode ativar ou desativar módulos conforme necessário:

const StealthPlugin = require('puppeteer-extra-plugin-stealth')
const stealth = StealthPlugin({
  webglVendor: "Google Inc. (Intel)",
  webglRenderer: "Intel Iris OpenGL Engine",
  navigator: {
    platform: "MacIntel",
    languages: ["en-US", "en"]
  }
})

Após configurar os módulos stealth, você pode ajustar o comportamento do navegador para imitar melhor a atividade de usuários reais.

Configurações de comportamento do navegador

Ajuste os parâmetros do navegador para simular uma experiência de navegação autêntica:

CategoriaOpçõesObjetivo
Identidade do usuárioUser-Agent, plataforma, idiomasCria uma identidade consistente para o navegador
Perfil de hardwareFornecedor WebGL, dimensões da telaImita características reais do dispositivo
Ambiente de execuçãoObjetos de runtime do Chrome, propriedades do NavigatorEmula o comportamento normal do navegador

Introduza atrasos naturais entre as ações para tornar a automação menos detectável:

const randomDelay = (min, max) => {
  return Math.floor(Math.random() * (max - min + 1) + min);
}

await page.waitForTimeout(randomDelay(1000, 3000));

Adicionar esses atrasos ajuda sua automação a se parecer mais com o comportamento humano.

Configuração de proxy

Usar proxies durante a inicialização do navegador aumenta o anonimato:

const browser = await puppeteer.launch({
  args: [
    `--proxy-server=http://proxy.example.com:8080`,
    '--disable-features=IsolateOrigins,site-per-process'
  ]
});

"Provavelmente é impossível impedir todas as formas de detectar o Chromium headless, mas deve ser possível tornar isso tão difícil que o custo se torne proibitivo ou gere falsos positivos demais para ser viável." - TiZho, colaborador do GitHub [3]

Alterne os proxies e configure failover automático para manter uma conectividade confiável. Essas configurações ajudam a minimizar os riscos de detecção enquanto garantem desempenho estável.

Boas práticas de stealth

Para manter as sessões automatizadas fora do radar, planejamento e execução cuidadosos são fundamentais.

Padrões naturais de navegação

Simule uma navegação realista adicionando atrasos e ações aleatórias:

async function emulateHumanBehavior(page) {
  // Random scrolling behavior
  await page.evaluate(() => {
    window.scrollBy({
      top: Math.random() * 500,
      behavior: 'smooth'
    });
  });

  // Random pauses between actions
  await page.waitForTimeout(1500 + Math.random() * 2500);
}
Padrão de comportamentoImplementaçãoObjetivo
Movimento do mouseCurvas e velocidades aleatóriasImita o movimento natural do cursor
Interação com a páginaVarie a profundidade da rolagem e as pausasSimula hábitos de leitura
Tempo de navegaçãoAtrasos aleatórios (1,5 a 4 segundos)Evita padrões de tempo previsíveis
Velocidade de digitaçãoIntervalos aleatórios entre teclasImita o comportamento humano de digitação

Essas interações simuladas funcionam em conjunto com as configurações descritas anteriormente.

Gerenciamento de sessão

O tratamento adequado das sessões garante que as configurações stealth permaneçam consistentes. Use armazenamento persistente para salvar cookies e dados de sessão:

const browserContext = await browser.createIncognitoBrowserContext({
  userDataDir: './sessions/user1',
  persistentContext: true
});

Você também pode gerenciar cookies de maneira eficiente:

// Remove specific cookies but keep session-critical data
await page.deleteCookie({
  name: '_ga',
  domain: '.example.com'
});

Diretrizes de uso

Combine as técnicas acima com estas etapas práticas para uma automação melhor:

  • Gerenciamento da taxa de solicitações: Comece com um atraso de 2 segundos entre solicitações e aumente-o caso CAPTCHAs apareçam.

  • Tratamento de erros: Crie um sistema de tentativas para lidar com solicitações com falha:

    const maxRetries = 3;
    const baseDelay = 2000;
    
    async function fetchWithRetry(page, url) {
      for (let i = 0; i < maxRetries; i++) {
        try {
          return await page.goto(url);
        } catch (error) {
          await page.waitForTimeout(baseDelay * Math.pow(2, i));
        }
      }
    }
    
  • Rotação de proxies: Use vários endereços IP para evitar ser sinalizado por atividade excessiva.

"Provavelmente é impossível impedir todas as formas de detectar o Chromium headless, mas deve ser possível tornar isso tão difícil que o custo se torne proibitivo ou gere falsos positivos demais para ser viável." - TiZho, colaborador do GitHub [3]

Acompanhe a evolução dos métodos de detecção antibot e ajuste suas configurações conforme necessário. Essas práticas complementam as técnicas stealth abordadas anteriormente no artigo.

Conclusão

Veja um resumo rápido dos principais pontos e dicas para usar o Puppeteer-extra-plugin-stealth de forma eficaz.

Principais benefícios

O Puppeteer-extra-plugin-stealth ajuda a automatizar a navegação sem ser sinalizado. Ele funciona ocultando marcadores de automação por meio de módulos de evasão integrados [2].

Alguns recursos importantes incluem:

  • Remover o identificador 'HeadlessChrome' dos cabeçalhos User-Agent.
  • Ocultar marcadores críticos de automação, como navigator.webdriver.
  • Ajustar impressões digitais do navegador para imitar o comportamento de usuários reais.
  • Permitir estratégias de evasão personalizadas para as necessidades de sites específicos.

Dicas de implementação

Para aperfeiçoar sua configuração de automação, tenha estas estratégias em mente:

Área de focoEstratégiaResultado
Módulos de evasãoAtive apenas os recursos necessáriosMenor risco de detecção e melhor desempenho
Gerenciamento de errosUse lógica de tentativas com backoff exponencialTratamento mais confiável de problemas temporários
Gerenciamento de sessãoUse contextos persistentes de navegadorPerfil stealth consistente entre sessões

Sugestões adicionais:

  • Comece com as configurações stealth padrão e ajuste-as às suas necessidades.
  • Mantenha-se atualizado sobre novas técnicas antibot e ajuste sua abordagem de acordo.
  • Combine recursos stealth com comportamentos naturais de navegação para obter melhores resultados.
  • Priorize um gerenciamento de sessão consistente para evitar a detecção.

Embora nenhuma configuração seja 100% infalível, combinar várias táticas de evasão torna a detecção muito mais difícil. O sucesso depende de uma configuração cuidadosa e de atualizações regulares dos seus métodos. Essas dicas, combinadas aos recursos do plugin, criam uma base sólida para uma automação indetectável.

References

FAQ

Frequently Asked Questions

É um plugin do Puppeteer que mascara sinais de automação — como navigator.webdriver — e simula o comportamento de um navegador real para dificultar a detecção do Chrome headless por sistemas antibot.

Isso foi útil? Compartilhe →

Escrito por

Vasiliy Datsenko

Head of Customer Support

Vasiliy Datsenko é Head of Customer Support na Latenode e um escritor de automação focado em produto. Seu trabalho conecta conversas com clientes, pesquisa de automação de fluxos de trabalho, casos de uso de IA e educação prática sobre produtos para equipes que tentam automatizar processos de negócios reais.

Perfil do autor →

Verificado por

Oleg Zankov

CEO da Latenode, Especialista em No-code

Com uma filosofia enraizada em inovação, resolução de problemas e experiência do usuário, estou focado em capacitar equipes a criar integrações personalizadas e automatizar fluxos de trabalho com facilidade e eficiência. Trazendo uma vasta experiência em desenvolvimento de negócios, empreendedorismo tecnológico e desenvolvimento de software, reconheci a necessidade de uma solução de integração mais acessível, escalável e adaptável. Assim, nasceu a Latenode.com. Com nossa plataforma, as empresas podem aproveitar o poder da tecnologia sem a necessidade de conhecimentos extensos em programação. Apaixonado por promover um futuro onde a tecnologia nos serve, e não o contrário, minha missão é tornar processos complexos simples. Acredito em democratizar a tecnologia e equipar as equipes com as ferramentas para inovar, crescer e ter sucesso em um mundo cada vez mais digital.

Perfil do autor →

Continue lendo