Uma plataforma de baixo código que combina a simplicidade sem código com o poder do código completo 🚀
Comece gratuitamente
Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots
26 de março de 2025
.
7
min ler

Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots

Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots 35
Jorge Miloradovitch
Pesquisador, redator e entrevistador de casos de uso

Deseja ignorar os sistemas de detecção de bots durante a automação Chrome? A puppeteer-extra-plugin-stealth é uma ferramenta que ajuda a ocultar impressões digitais de automação, dificultando a detecção de bots por sites.

Key Takeaways:

  • O que faz: Marcadores de automação de máscaras (como navigator.webdriver) e imita o comportamento real do navegador.
  • Como funciona: Ajusta as impressões digitais do navegador, introduz padrões naturais de navegação e gerencia os detalhes da sessão.
  • Por que é importante: Ajuda a evitar a detecção de sistemas anti-bot avançados, como desafios de CAPTCHA e impressão digital do navegador.
  • Configuração: Instale Puppeteer, puppeteer-extra, e o plugin stealth via npm or fio. 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();
})();

Esta ferramenta é perfeita para automatizar tarefas em sites com detecção estrita de bots. Aprenda como configurá-la, otimizar suas configurações e simular comportamento humano para permanecer sem ser detectado.

Nodejs Marionetista Tutorial nº 7 - Detecção de bypass usando ...

Marionetista

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 abrange o processo de instalação, configuração inicial e testes para garantir que tudo funcione conforme o esperado.

Instalação do pacote necessário

Primeiro, instale Marionetista, Marionetista Extra, e o Plugin furtivo. Abra seu terminal e execute o seguinte comando:

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

Se você estiver usando o Yarn, use este comando:

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

Etapas iniciais de configuração

Após a instalação, configure seu arquivo JavaScript para integrar o plugin stealth. Aqui está o código que você precisa:

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: Certifique-se de importar o Puppeteer de 'puppeteer-extra' em vez de 'puppeteer' para acessar a funcionalidade adicionada.

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

Testando sua instalação

Execute estes testes para confirmar se sua configuração está funcionando conforme o esperado:

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

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();
})();

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

Depois que sua configuração passar nesses testes, você estará pronto para mergulhar nos recursos avançados do plugin, que são abordados na próxima seção.

Principais recursos de Stealth

A puppeteer-extra-plugin-stealth usa várias técnicas para tornar a navegação automatizada mais difícil de detectar.

Máscara de identidade do navegador

O plugin ajusta as principais propriedades do navegador para imitar um navegador Chrome típico. Elas incluem:

  • Substituindo o padrão HeadlessChrome user-agent com um mais natural
  • Configuração realista Accept-Language cabeçalhos
  • Ajustando o suporte ao codec para reprodução de mídia
  • Modificando navigator.vendor para corresponder ao comportamento padrão do Chrome

Essas mudanças ajudam a criar um perfil de navegador que parece um usuário comum, não um bot. Além disso, o plugin emprega técnicas anti-impressão digital para reduzir ainda mais o risco de detecção.

Métodos anti-impressão digital

Característica Forma Propósito
Emulação de processador Limita os processadores lógicos a 4 Imita o hardware típico do usuário
Emulação de plugin Mocks navigator.mimeTypes e plugins Imita a funcionalidade padrão do Chrome
Propriedades da janela Adiciona outerWidth e outerHeight Conclui a simulação do navegador
Propriedades do fornecedor Ajusta o identificador do Google no Chrome Ajuda a evitar a detecção de automação

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

Removendo marcadores de automação

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

  • Exclui o navigator.webdriver propriedade
  • Adiciona chrome.app e chrome.csi objetos, que estão presentes em navegadores Chrome regulares
  • Esconde o sourceurl atributo em scripts do Puppeteer
  • Ajusta permissions propriedades para corresponder ao comportamento natural do navegador

Gerenciamento de CAPTCHA

O plugin também ajuda a reduzir os desafios do CAPTCHA mantendo o comportamento consistente do navegador e gerenciando as sessões de forma eficaz. Isso cria um padrão de navegação que se alinha com a atividade humana, permitindo que ele ignore a maioria dos testes de detecção de bot em plataformas como sannysoft.com. No entanto, sistemas anti-bot avançados, como os usados ​​por Cloudflare, ainda pode detectar automação em alguns casos.

sbb-itb-23997f1

Configuração Personalizada

A configuração personalizada permite que você ajuste as configurações de furtividade 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 que você gerencie seus módulos de evasão para sites específicos. Você pode habilitar ou desabilitar 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"]
  }
})

Depois de configurar os módulos stealth, você pode ajustar o comportamento do navegador para imitar melhor a atividade real do usuário.

Configurações de comportamento do navegador

Ajuste os parâmetros do navegador para imitar uma experiência de navegação genuína:

Categoria Opções Propósito
Identidade do usuário Agente do usuário, plataforma, idiomas Cria uma identidade de navegador consistente
Perfil de Hardware Fornecedor WebGL, Dimensões da tela Imita as características reais do dispositivo
Ambiente de execução Objetos de tempo de execução do Chrome, propriedades do Navigator Emula 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 assemelhar ao comportamento humano.

Configuração de proxy

O uso de 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 evitar todas as maneiras de detectar o cromo sem cabeça, mas deve ser possível torná-lo tão difícil que se torne proibitivo em termos de custo ou acione muitos falsos positivos para ser viável." - TiZho, colaborador do GitHub

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

Melhores práticas de Stealth

Para manter as sessões automatizadas sob controle, planejamento e execução cuidadosos são essenciais.

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 comportamento Implementação Propósito
Movimento do mouse Curvas e velocidades aleatórias Imita o movimento natural do cursor
Interação de página Varie a profundidade da rolagem e as pausas Simula hábitos de leitura
Tempo de navegação Atrasos aleatórios (1.5–4 segundos) Evita padrões de tempo previsíveis
Velocidade de entrada Intervalos de pressionamento de tecla aleatórios Imita o comportamento de digitação humana

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

Gerenciamento de Sessões

O tratamento adequado da sessão garante que as configurações de 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 forma eficaz:

// 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 melhor automação:

  • Gerenciamento de taxas de solicitação: Comece com um atraso de 2 segundos entre as solicitações e aumente-o se surgirem CAPTCHAs.
  • Tratamento de erros: Crie um sistema de nova tentativa 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 proxy: Use vários endereços IP para evitar ser sinalizado por atividade excessiva.

"É provavelmente impossível evitar todas as maneiras de detectar o cromo sem cabeça, mas deve ser possível torná-lo tão difícil que se torne proibitivo em termos de custo ou acione muitos falsos positivos para ser viável." - TiZho, colaborador do GitHub

Fique de olho nos métodos de detecção anti-bot em evolução e ajuste suas configurações conforme necessário. Essas práticas complementam as técnicas de stealth abordadas anteriormente no artigo.

Conclusão

Aqui está um rápido resumo dos principais pontos e dicas para usar Marionetista-extra-plugin-stealth de forma eficaz.

principais Benefícios

Puppeteer-extra-plugin-stealth ajuda a automatizar a navegação sem ser sinalizado. Ele funciona ocultando marcadores de automação usando módulos de evasão integrados.

Alguns recursos principais incluem:

  • Removendo o identificador 'HeadlessChrome' dos cabeçalhos do User-Agent.
  • Ocultar marcadores de automação críticos, como navigator.webdriver.
  • Ajustando as impressões digitais do navegador para imitar o comportamento real do usuário.
  • Permitindo estratégias de evasão personalizadas para necessidades específicas do site.

Dicas para implementação

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

Área de foco Estratégia Resultado
Módulos de Evasão Habilite apenas os recursos necessários Menor risco de detecção, melhor desempenho
Gestão de Erros Use lógica de repetição com recuo exponencial Tratamento mais confiável de problemas temporários
Tratamento de Sessão Use contextos de navegador persistentes Perfil stealth consistente em todas as sessões

Sugestões adicionais:

  • Comece com as configurações padrão de stealth e depois ajuste-as para atender às suas necessidades.
  • Mantenha-se atualizado sobre novas técnicas anti-bot e ajuste sua abordagem adequadamente.
  • Combine recursos furtivos com comportamentos naturais de navegação para obter melhores resultados.
  • Concentre-se no gerenciamento consistente de sessões 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 atualizações regulares dos seus métodos. Essas dicas, combinadas com os recursos do plugin, criam uma base sólida para automação indetectável.

Artigos Relacionados

Blogs relacionados

Caso de uso

Apoiado por
Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots 40
Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots 41
Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots 42
Automação invisível: usando puppeteer-extra-plugin-stealth para ignorar a proteção de bots 43