CAPSOLVER
Blog
# Como Resolver CAPTCHAs com Selenium e Node.js ao Fazer Scraping

Como Resolver CAPTCHA com Selenium e Node.js ao Fazer Scraping

Logo of CapSolver

Adélia Cruz

Neural Network Developer

15-Oct-2024

Falando como um projeto de scraping, direi que já enfrentei uma situação como essa antes. Você está em um projeto de scraping, tudo está indo bem e, de repente, "bum", uma enxurrada de CAPTCHAs surge, interrompendo todo o seu processo. Você configurou o Selenium e o Node.js, seu scraper está funcionando perfeitamente e o CAPTCHA interrompe tudo. Eu conheço muito bem essa sensação. Mas não se preocupe, existem maneiras de contornar isso e, hoje, vou mostrar como usar o Selenium e o Node.js para resolver esses CAPTCHAs atrasados, para que você possa fazer seu projeto de scraper avançar sem perder o ritmo.

Por que os sites usam CAPTCHAs?

Antes de entrar nas soluções, é importante entender por que os CAPTCHAs existem. Os sites usam CAPTCHAs para distinguir entre usuários humanos e bots automatizados. Os CAPTCHAs podem ser acionados quando um comportamento suspeito é detectado, como múltiplas solicitações do mesmo IP ou outros sinais de automação.

Esses mecanismos ajudam a proteger os sites de spam, tráfego de bots e atividades maliciosas. Embora isso seja bom para os proprietários de sites, é um obstáculo significativo para os scrapers da Web que precisam acessar e coletar dados legalmente

Está tendo problemas com a falha repetida em resolver completamente o CAPTCHA irritante?

Descubra a resolução automática de CAPTCHA perfeita com a tecnologia AI-powered Auto Web Unblock da CapSolver!

Solicite seu Código de bônus para as melhores soluções de CAPTCHA; CapSolver: WEBS. Após resgatá-lo, você receberá um bônus extra de 5% após cada recarga, Ilimitado

Por que usar o Node.js?

Antes de mergulhar nos detalhes técnicos da resolução do reCAPTCHA, é importante entender por que o Node.js é uma ótima escolha para essa tarefa:

  1. Natureza assíncrona: A arquitetura não bloqueante e orientada a eventos do Node.js o torna ideal para lidar com operações com uso intensivo de E/S, como scraping da Web e solicitações de API. Isso significa que você pode executar várias tarefas simultaneamente sem esperar que cada tarefa seja concluída sequencialmente.
  2. Ecossistema rico: O Node.js possui um vasto ecossistema de bibliotecas e módulos disponíveis por meio do npm (Node Package Manager). Essas bibliotecas simplificam vários aspectos do scraping da Web e da automação, como lidar com solicitações HTTP, automação de navegador e resolução de CAPTCHA.
  3. JavaScript em todos os lugares: Usar o Node.js permite que você use JavaScript nos lados do cliente e do servidor. Essa unificação pode simplificar sua base de código e facilitar o compartilhamento de lógica e dados entre diferentes partes do seu aplicativo.
  4. Desempenho: O Node.js é construído no mecanismo JavaScript V8, conhecido por seu alto desempenho e manuseio eficiente de operações assíncronas. Isso garante que suas tarefas de scraping sejam executadas com rapidez e eficiência.

O Selenium com Node.js pode resolver CAPTCHAs?

Pela minha experiência, você definitivamente pode configurar o Selenium com o Node.js para resolver desafios de CAPTCHA. Mas, dependendo de como o site está configurado, você tem duas abordagens a considerar.

Em alguns sites, os CAPTCHAs só aparecem se seu sistema anti-bot suspeitar de atividades incomuns — como comportamento de navegador automatizado. Nesses casos, você pode resolver o CAPTCHA inteiramente imitando ações naturais do usuário, evitando a detecção do sistema anti-bot e navegando direto sem nunca enfrentar um CAPTCHA.

No entanto, alguns sites terão o CAPTCHA integrado à página e o exibirão para todos os visitantes, independentemente dos resultados da detecção de bot. Nesse caso, você precisará resolver o problema do CAPTCHA para acessar o conteúdo. É por isso que a maioria dos scrapers recorre a serviços de resolução de CAPTCHA de terceiros, que são de longe a maneira mais comum e eficaz de resolver problemas de CAPTCHA, mas alguns terceiros usam trabalho manual, o que é lento e caro, por isso não é recomendado. Em vez disso, recomendamos algumas empresas no mercado que usam tecnologia AI-powered Auto Web Unblock, que apresentaremos em detalhes abaixo.

A seguir, também apresentaremos alguns métodos que podem evitar o aparecimento do CAPTCHA, mas também como você pode ter uma solução rápida e precisa em grande escala por meio da economia de terceiros, siga-me para continuar explorando o próximo

Método #1: Usando o Undetected ChromeDriver com Selenium e Node.js

Vou começar compartilhando um método gratuito que descobri ser eficaz: usando o Undetected ChromeDriver com o Selenium.

Para entender por que essa abordagem funciona, é importante primeiro dar uma olhada em como o Selenium padrão funciona. Essencialmente, o Selenium usa o ChromeDriver — um pequeno executável que controla navegadores Chromium. Esse executável atua como intermediário entre o Selenium WebDriver e o próprio navegador.

Agora, aqui está o problema que encontrei: o ChromeDriver normal vaza bastante informação sobre a automação para o site de destino. Quando um site tem medidas anti-bot em vigor, o uso do ChromeDriver padrão geralmente leva a ser sinalizado. Você pode se deparar com um desafio impossível, como o Cloudflare Turnstile CAPTCHA.

Foi aí que o Undetected ChromeDriver me ajudou. É uma versão modificada do ChromeDriver normal, criada para evitar detecção. Usando técnicas como falsificação de impressão digital e ocultando os sinais típicos de automação, essa ferramenta faz com que o Selenium pareça muito mais humano. Percebi que ele geralmente consegue resolver CAPTCHAs imitando o comportamento normal do usuário.

No entanto, não é à prova de falhas. Embora o Undetected ChromeDriver tenha funcionado para mim em sites com proteção básica contra bots, ele nem sempre é bem-sucedido. Sites com sistemas mais avançados ainda podem detectar, deixando esse método ineficaz.

Se você estiver interessado em configurar isso sozinho, recomendo verificar um guia detalhado sobre o uso do Undetected ChromeDriver com Node.js. Mas lembre-se, para sites mais fortemente protegidos, essa solução pode não ser sempre suficiente

Método #2: Usando serviços de resolução de CAPTCHA de terceiros

Embora o Undetected ChromeDriver possa às vezes ajudar a resolver desafios de CAPTCHA imitando o comportamento natural, ele nem sempre é confiável. Muitos sites implantam proteções anti-bot mais avançadas que ainda podem detectar ferramentas de automação, independentemente de quão humanas elas pareçam. É aí que o uso de um serviço de resolução de CAPTCHA de terceiros se torna a solução mais prática, especialmente ao lidar com operações de scraping da Web em grande escala.

Por que escolher resolvedores de CAPTCHA de terceiros?

Existem vários motivos pelos quais os serviços de terceiros geralmente são a abordagem preferida ao lidar com CAPTCHAs durante o scraping da Web:

  1. Precisão e confiabilidade: Serviços automatizados de resolução de CAPTCHA aproveitam algoritmos avançados de aprendizado de máquina para resolver CAPTCHAs com uma alta taxa de sucesso. Essas soluções são projetadas especificamente para resolver diferentes tipos de desafios de CAPTCHA de forma eficiente, incluindo desafios complexos como Google reCAPTCHA e Cloudflare's Turnstile.

  2. Escalabilidade: Para projetos de scraping em grande escala, depender apenas de ferramentas como Undetected ChromeDriver pode ser imprevisível e demorado. Serviços de terceiros, por outro lado, são construídos para lidar com grandes volumes de desafios de CAPTCHA com tempo de inatividade mínimo, permitindo que suas tarefas de scraping sejam executadas sem problemas, sem interrupções.

  3. Custo-efetividade: Embora você possa pensar que usar um serviço pago aumenta seus custos, considere a economia potencial de tempo e recursos. Resolver CAPTCHAs manualmente ou solucionar repetidamente erros de automação pode consumir tempo valioso, especialmente em projetos de scraping de alto volume. Ao automatizar esse aspecto, você pode se concentrar na coleta de dados real, em vez da logística de resolução de CAPTCHA.

  4. Consistência em vários sites: A variedade de desafios de CAPTCHA (como reCAPTCHA, captcha, Cloudflare) implantados em diferentes sites pode dificultar o acompanhamento das soluções DIY. Serviços de terceiros geralmente suportam vários tipos de CAPTCHA, garantindo que você esteja coberto, independentemente da proteção usada pelo site de destino.

Agora que abordamos por que as soluções de terceiros costumam ser a rota mais eficaz, deixe-me apresentar a CapSolver — um serviço líder no espaço de resolução de CAPTCHA.

Por que CapSolver?

CapSolver se destaca como uma solução rápida, confiável e escalável de resolução de CAPTCHA de terceiros que suporta uma ampla gama de tipos de CAPTCHA. Se você está lidando com reCAPTCHA v2 ou v3, captcha ou até mesmo o Cloudflare Turnstile mais recente, o CapSolver tem você coberto.

Veja por que recomendo o CapSolver:

  • Atendimento rápido e suporte técnico
    O CapSolver se compromete a fornecer resposta rápida e serviço eficiente aos clientes. A equipe técnica possui vasta experiência e conhecimento profissional, podendo fornecer suporte e soluções rapidamente ao resolver problemas de reconhecimento de CAPTCHA.

  • Velocidade de atualização rápida
    O CapSolver possui um poderoso sistema de monitoramento que responde ativamente na primeira vez em que os serviços precisam ser atualizados e mantidos, e melhora e otimiza continuamente nossos algoritmos de reconhecimento de CAPTCHA para garantir que o sistema possa responder eficientemente a várias atualizações de CAPTCHAs e continuar fornecendo resultados de reconhecimento precisos.

  • Tipos de suporte de serviço abrangentes
    O CapSolver é o fornecedor no mercado que oferece suporte ao maior número de tipos de serviços de reconhecimento de CAPTCHA, incluindo reCAPTCHA (v2/v3/Enterprise), captcha (Normal/Enterprise), Cloudflare, ImageToText, captcha, captcha V3/V4, captcha Captcha e muito mais, que podem lidar com mais de 95% das necessidades de CAPTCHA em todo o mundo, abrangendo todos os tipos de serviços de CAPTCHA convencionais.

  • Funções detalhadas da API e tutoriais de documentação
    O CapSolver fornece funções abrangentes da API, facilitando a integração de nossos serviços de reconhecimento de CAPTCHA pelos desenvolvedores. Os tutoriais de documentação não apenas cobrem o uso básico da API, mas também incluem configuração avançada e soluções para resolução de problemas comuns, ajudando você a aplicar eficientemente a tecnologia do CapSolver em seus projetos.

  • Serviços de extensão
    Além de fornecer serviços de API, o CapSolver também fornece extensões que são convenientes para usuários que não conhecem programação. Isso fornece uma maneira mais conveniente para o pessoal não técnico lidar com desafios de CAPTCHA. A extensão do navegador oferece suporte ao reconhecimento dos CAPTCHAs mais populares

Como integrar o CapSolver ao Selenium e ao Node.js

Integrar o CapSolver ao seu projeto Selenium e Node.js é direto. Então, do meu processo, aqui está uma sugestão passo a passo:

  1. Instale o SDK CapSolver: Primeiro, instale o SDK CapSolver Node.js executando o seguinte comando no diretório do seu projeto:

    bash Copy
    npm install capsolver-node
  2. Configure a chave da API: Depois de instalar o SDK, você precisará de uma chave da API do CapSolver. Vá para o site CapSolver e crie uma conta para obter sua chave.

  3. Manipulação de CAPTCHA em seu código: Aqui está como implementei o CapSolver no meu projeto para resolver desafios de CAPTCHA:

javascript Copy
// npm install axios
const axios = require('axios');
 
const api_key = "YOUR_API_KEY";  // Substitua pela sua chave da API real
const site_key = "0x4XXXXXXXXXXXXXXXXX";  // Substitua pela chave do site
const site_url = "https://www.yourwebsite.com";  // Substitua pelo URL do site de destino
 
async function capsolver() {
  const payload = {
    clientKey: api_key,
    task: {
      type: 'AntiTurnstileTaskProxyLess',
      websiteKey: site_key,
      websiteURL: site_url,
      metadata: {
          action: ''  // Dados de metadados de ação opcionais
      }
    }
  };
 
  try {
    const res = await axios.post("https://api.capsolver.com/createTask", payload);
    const task_id = res.data.taskId;
    if (!task_id) {
      console.log("Falha ao criar tarefa:", res.data);
      return;
    }
    console.log("Obteve taskId:", task_id);
 
    while (true) {
      await new Promise(resolve => setTimeout(resolve, 1000)); // Aguardar por 1 segundo
 
      const getResultPayload = {clientKey: api_key, taskId: task_id};
      const resp = await axios.post("https://api.capsolver.com/getTaskResult", getResultPayload);
      const status = resp.data.status;
 
      if (status === "ready") {
        return resp.data.solution.token; // Retornar o token resolvido
      }
      if (status === "failed" || resp.data.errorId) {
        console.log("A solução falhou! resposta:", resp.data);
        return;
      }
    }
  } catch (error) {
    console.error("Erro:", error);
  }
}
 
capsolver().then(token => {
  console.log(token);  // Saída do token de CAPTCHA resolvido
});
  1. Integre a solução de CAPTCHA ao Selenium: Após receber a solução de CAPTCHA, você pode injetá-la no navegador usando o Selenium WebDriver para enviar o formulário e resolver o CAPTCHA.

  2. Execute seu scraper: Com o CapSolver integrado ao seu script Selenium, você está pronto para executar seu scraper sem se preocupar com interrupções de CAPTCHA.

Ao integrar o CapSolver ao seu projeto de scraping, você resolverá desafios de CAPTCHA sem esforço e garantirá que sua automação seja executada de forma suave e eficiente.

Conclusão

Lidar com CAPTCHAs durante o scraping da Web é um dos maiores desafios que enfrentei, mas com as ferramentas certas, aprendi a superar esses obstáculos. Seja optando pelo Undetected ChromeDriver ou escolhendo uma solução mais robusta, posso garantir que meus esforços de scraping da Web continuem sem interrupções.

Para qualquer pessoa que faça scraping em grande escala, acredito que depender de um serviço de resolução de CAPTCHA é um investimento inteligente. É rápido, eficiente e projetado para escalabilidade — permitindo que meu scraper se concentre na coleta de dados, em vez de ficar preso em CAPTCHAs.

Ah, se você está pronto para mergulhar e experimentar os benefícios do CapSolver por si mesmo, inscreva-se aqui. Você estará resolvendo CAPTCHAs em nenhum momento!

Declaração de Conformidade: As informações fornecidas neste blog são apenas para fins informativos. A CapSolver está comprometida em cumprir todas as leis e regulamentos aplicáveis. O uso da rede CapSolver para atividades ilegais, fraudulentas ou abusivas é estritamente proibido e será investigado. Nossas soluções de resolução de captcha melhoram a experiência do usuário enquanto garantem 100% de conformidade ao ajudar a resolver dificuldades de captcha durante a coleta de dados públicos. Incentivamos o uso responsável de nossos serviços. Para mais informações, visite nossos Termos de Serviço e Política de Privacidade.

Mais