Como contornar CAPTCHAs na Web Scraping? - 5 etapas simples

Como fazer, Scraping, Jan-04-20235 minutos de leitura

Quando você scrape dados de sites de grande escala, é muito provável que não tenha precisado enfrentar um CAPTCHA para provar que é um ser humano. Como um raspador da Web, você já deve saber por que os profissionais de segurança cibernética foram forçados a inventá-los. Eles foram o resultado de seus bots automatizando infinitas solicitações de sites para acessá-los.

Quando você scrape dados de sites de grande escala, é muito provável que não tenha precisado enfrentar um CAPTCHA para provar que é um ser humano. Como um raspador da Web, você já deve saber por que os profissionais de segurança cibernética foram forçados a inventá-los. Eles eram o resultado de seus bots automatizando infinitas solicitações de sites para acessá-los. Assim, até mesmo os usuários genuínos tiveram que enfrentar CAPTCHAs que aparecem em diferentes formas. No entanto, é possível contornar os CAPTCHAs, seja você um raspador da Web ou não, o que seria o objetivo deste artigo. Mas, primeiro, vamos nos aprofundar no que são os CAPTCHAs.

Contornar CAPTCHA para a Web Scraping

Os CAPTCHAs geralmente são acionados para detectar tráfego não natural no site. Para contornar essa restrição, os usuários preferem uma solução que possa decifrar todos esses códigos CAPTCHA e acessar o site como um ser humano real. Uma solução para contornar os captchas é o Capsolver. A utilização do proxies com as solicitações da Web também ajudará os usuários a parecerem um tráfego natural. 

O que é um CAPTCHA?

CAPTCHA significa Completely Automated Public Turing Test to tell Computers and Humans Apart (Teste de Turing Público Completamente Automatizado para Diferenciar Computadores e Humanos). Esse é um acrônimo bem longo, não é? Agora você deve estar se perguntando o que significa a última parte desse acrônimo, Teste de Turing - bem, é um teste simples para determinar se um humano ou um bot está interagindo com uma página da Web ou um servidor da Web.

Afinal de contas, um CAPTCHA diferencia humanos de bots, ajudando os analistas de segurança cibernética a proteger os servidores da Web contra ataques de força bruta, DDoS e, em algumas situações, a Web scraping. 

Vamos descobrir como os CAPTCHAs diferenciam os humanos dos bots.

Como funcionam os CAPTCHAs?

É possível encontrar os CAPTCHAs nos formulários de um site, incluindo formulários de contato, registro, comentários, inscrição ou check-out.

Os CAPTCHAs tradicionais incluem uma imagem com letras, números ou ambos esticados ou borrados em uma caixa com cor de fundo ou fundo transparente. Em seguida, você precisa identificar os caracteres e digitá-los no campo de texto que se segue. Esse processo de identificação de caracteres é mais fácil para os humanos, mas um pouco complicado para um bot.

A ideia de borrar ou distorcer o texto do CAPTCHA é tornar mais difícil para o bot identificar os caracteres. Por outro lado, os seres humanos podem interpretar e interceptar caracteres em vários formatos, como fontes diferentes, escrita à mão etc. Dito isso, nem todo ser humano consegue resolver um CAPTCHA na primeira tentativa. De acordo com a pesquisa, 8% dos usuários digitam errado na primeira tentativa, enquanto 29% falham se os CAPTCHAs forem sensíveis a maiúsculas e minúsculas.

Por outro lado, alguns bots avançados podem interceptar letras distorcidas com a ajuda do aprendizado de máquina ao longo dos anos. Como resultado, algumas empresas, como o Google, substituíram os CAPTCHAs convencionais por CAPTCHAs sofisticados. Um exemplo disso é o ReCAPTCHA, que você descobrirá na próxima seção.

O que é um ReCAPTCHA?

O ReCAPTCHA é um serviço gratuito oferecido pelo Google. Ele solicita que os usuários marquem caixas em vez de digitar texto, resolver quebra-cabeças ou equações matemáticas.

Um ReCAPTCHA típico é mais avançado do que as formas convencionais de CAPTCHAs. Ele usa imagens e textos do mundo real, como semáforos nas ruas, textos de jornais antigos e livros impressos. Como resultado, os usuários não precisam depender de CAPTCHAs antigos com texto borrado e distorcido.

Como funcionam os ReCAPTCHAs?

Há três tipos significativos de testes ReCAPTCHA para verificar se você é um ser humano ou não:

Caixa de seleção

Esses são os ReCAPTCHAs que solicitam que os usuários marquem uma caixa de seleção, "Não sou um robô", como na imagem acima. Embora possa parecer a olho nu que até mesmo um robô poderia concluir esse teste, vários fatores são levados em consideração:

  • Esse teste investiga os movimentos do mouse do usuário à medida que ele se aproxima da caixa de seleção.
  • Os movimentos do mouse de um usuário não são retos, incluindo a maioria dos movimentos diretos do mouse. É um desafio para um bot imitar o mesmo comportamento.
  • Por fim, o ReCAPTCHA inspecionaria o site cookies que seu navegador armazena.

Se o ReCAPTCHA não conseguir verificar se você é um ser humano, ele apresentará outro desafio.

Reconhecimento de imagens

Esses ReCAPTCHAs fornecem aos usuários nove ou dezesseis imagens quadradas, como pode ser visto na imagem acima. Cada quadrado representa uma parte de uma imagem maior ou imagens diferentes. O usuário deve selecionar quadrados que representem objetos específicos, animais, árvores, veículos ou semáforos.

Se a seleção do usuário corresponder às seleções de outros usuários que realizaram o mesmo teste, o usuário será verificado. Caso contrário, o ReCAPTCHA apresentará um teste mais desafiador.

Sem interação

Você sabia que o ReCAPTCHA pode verificar se você é um ser humano ou não sem usar caixas de seleção ou qualquer interação com o usuário?

Ele certamente o faz considerando o histórico de interação do usuário com sites e o comportamento geral do usuário enquanto está on-line. Na maioria dos cenários, com base nesses fatores, o sistema seria capaz de determinar se você é um bot.

Se isso não for feito, você voltará a usar qualquer um dos dois métodos mencionados anteriormente.

O que aciona os CAPTCHAs e ReCAPTCHAs?

Os CAPTCHAs podem ser acionados se um site detectar atividades incomuns que se assemelhem ao comportamento de bots; esse comportamento incomum inclui solicitações ilimitadas em frações de segundos e cliques em links em uma taxa muito maior do que a dos humanos. 

Então, alguns sites teriam automaticamente CAPTCHAs instalados para proteger seus sistemas.

No que diz respeito aos ReCAPTCHAs, não está exatamente claro o que os aciona. Entretanto, as causas gerais são os movimentos do mouse, o histórico de navegação e o rastreamento de cookies.

O que você deve saber sobre como contornar CAPTCHAs na Web scraping

Agora você tem uma visão geral clara do que são CAPTCHAs e Rechaptchas, como eles funcionam e o que os aciona. Agora é hora de ver como os CAPTCHAs afetam a Web scraping.

Os CAPTCHAs podem atrapalhar o scraping na Web, pois os bots automatizados realizam a maioria das operações do scraping . Entretanto, não fique desanimado. Conforme mencionado no início deste artigo, há maneiras de superar os CAPTCHAs ao acessar scraping a Web. Antes de abordá-las, vamos nos concentrar no que você precisa saber antes de scrape.

Envio de muitas solicitações ao site de destino

Em primeiro lugar, é preciso garantir que você não permita que seu web scraper/crawler envie muitas solicitações em um curto período. A maioria dos sites menciona em suas páginas de termos e condições quantas solicitações o site permite. Certifique-se de lê-los antes de iniciar o scraping.

Cabeçalhos HTTP

Ao se conectar a um site, você envia informações sobre o seu dispositivo para o site de conexão. Eles podem usar essas informações para personalizar o conteúdo de acordo com as especificações de seu dispositivo e o rastreamento de métricas. Portanto, quando eles descobrem que as solicitações são do mesmo dispositivo, qualquer solicitação que você enviar posteriormente será bloqueada.

Portanto, se você tiver desenvolvido o raspador/rastreador da Web por conta própria, poderá alterar as informações do cabeçalho para cada solicitação que o raspador fizer. Assim, o site de destino parecerá que está recebendo várias solicitações de diferentes dispositivos. Leia aqui para obter mais informações sobre cabeçalhos HTTP.

Endereço IP

Outro fato de que você deve estar ciente é que o site de destino não colocou o seu endereço IP na lista negra. É provável que eles coloquem seu endereço IP na lista negra quando você enviar muitas solicitações com seu scraper/crawler. 

Para superar o problema acima, você pode usar um servidorproxy , pois ele mascara seu endereço IP. 

A rotação dos cabeçalhos HTTP e proxies (mais sobre isso na próxima seção) com um pool garantirá que vários dispositivos acessem o site de diferentes locais. Portanto, você poderá continuar acessando scraping sem interrupções causadas por CAPTCHAs. Dito isso, é preciso garantir que você não esteja prejudicando o desempenho do site de forma alguma.

No entanto, é preciso observar que o proxies não o ajudará a superar CAPTCHAs nos formulários de registro, alteração de senha, check-out etc. Ele só pode ajudá-lo a superar as capturas que os sites acionam devido ao comportamento de bots. Para evitar CAPTCHAs nesses formulários, veremos os solucionadores de CAPTCHA em uma próxima seção.

Outros tipos de CAPTCHAs

Além dos fatores-chave acima, você precisa conhecer os CAPTCHAs abaixo ao acessar a Web scraping com um bot:

Honeypots - O Honeypot será um tipo de CAPTCHA incluído em um campo de formulário HTML ou link, mas sua visibilidade é ocultada com CSS. Portanto, antes de fazer com que seu bot scrape o conteúdo, certifique-se de que as propriedades CSS do elemento estejam visíveis.

CAPTCHA de correspondência/palavra - Esses são os CAPTCHAs em equações matemáticas, como resolver "3+7", por exemplo. Também pode haver quebra-cabeças de palavras para resolver.

Login em mídias sociais - Alguns sites exigem que você faça login com sua conta do Facebook, por exemplo. No entanto, eles não são populares, pois a maioria dos administradores sabe que as pessoas relutariam em fazer login com suas contas de mídia social.

Rastreamento de tempo - Esses CAPTCHAs monitoram a rapidez com que você executa uma ação específica, como o preenchimento de um formulário para determinar se é um humano ou um bot.

Como contornar CAPTCHAs para a Web Scraping

Faça o rodízio de proxies e use endereços IP de qualidade

Conforme mencionado na seção anterior, você precisa alternar proxies sempre que enviar uma solicitação ao site de destino. Essa é uma maneira de evitar CAPTCHAs que são acionados enquanto você scrape. Nessas circunstâncias, você precisa usar um IP residencial limpo proxies.

Ao girar o proxies, seria difícil para o site de destino determinar sua pegada de IP. Isso ocorre porque, para cada solicitação, o endereço IP de proxiesapareceria em vez do seu.

Girar agentes de usuário

Como você usará um raspador para a Web scraping, precisará disfarçar o agente do usuário para um navegador da Web popular ou bot-bots compatíveis, como os bots de mecanismos de pesquisa que os sites reconhecem.

A simples alteração do agente de usuário não será suficiente, pois você precisará ter uma lista de cadeias de caracteres de agente de usuário e depois alterná-las. Essa rotação fará com que o site de destino o veja como um dispositivo diferente quando, na realidade, um dispositivo está enviando todas as solicitações.

Como prática recomendada para essa etapa, seria ótimo manter um banco de dados de agentes de usuários reais. Além disso, exclua o site cookies quando não precisar mais dele.

Serviços de solução de CAPTCHA

Um método mais direto e de baixo nível técnico para resolver um CAPTCHA seria usar um serviço de solução de CAPTCHA. Eles usam inteligência artificial (IA), aprendizado de máquina (MI) e um conjunto de outras tecnologias para resolver um CAPTCHA.

Alguns dos principais solucionadores de CAPTCHA existentes atualmente no setor são o Capsolver e o Anti-CAPTCHA.

Evite links diretos

Quando você permite que o seu scraper acesse diretamente um URL a cada fração de segundo, o site receptor fica desconfiado. Como resultado, o site de destino acionaria um CAPTCHA.

Para evitar esse cenário, você pode definir o cabeçalho do referenciador para fazer com que ele pareça ter sido encaminhado de outra página. Isso reduziria a probabilidade de ser detectado como um bot. Como alternativa, você pode fazer com que o bot visite outras páginas antes de visitar o link desejado.

Evite Honeypots

Honeypots são elementos ocultos em uma página da Web que os especialistas em segurança usam para capturar bots ou invasores. Embora o navegador renderize seu HTML, suas propriedades CSS são definidas como ocultas. No entanto, diferentemente dos seres humanos, o código do honey pot ficaria visível para os bots quando eles acessassem scrape os dados. Como resultado, eles caíram na armadilha criada pelo honeypot.

Portanto, você precisa verificar se as propriedades CSS de todos os elementos em uma página da Web não estão ocultas ou invisíveis antes de começar scraping. Somente quando tiver certeza de que nenhum dos elementos está oculto, você define seu bot para scraping.

Perguntas frequentes

Perguntas frequentes:

1. O que significa ignorar CAPTCHAs para a Web Scraping ?
Contornar os CAPTCHAs é simplesmente o processo de remover os bloqueadores que surgem ao acessar scraping dados de vários sites. Como os CAPTCHAs são projetados para verificar se o tráfego da Web é orgânico.
2. O que é o ReCaptcha?
O ReCaptcha impede que seus sites recebam spams e tráfego de bots mal-intencionados. Ele gera quebra-cabeças interativos para diferenciar o tráfego orgânico do tráfego de bots.
3. Como o site proxy ajudará os usuários a contornar os Captchas?
Quando você envia solicitações da Web consecutivas de um bot ou de qualquer solução scraping , os CAPTCHAs podem identificar facilmente que o tráfego é de um bot com spam. Portanto, usar um endereço proxy de um proxy permitirá que você pareça mais com um tráfego em tempo real.

Conclusão

Este artigo lhe daria uma ideia abrangente de como evitar CAPTCHAs ao acessar scraping a Web. Evitar um CAPTCHA pode ser um processo complicado. Entretanto, com o uso de técnicas específicas discutidas neste artigo, você pode desenvolver o bot de modo a evitar CAPTCHAs.

Esperamos que você faça uso de todas as técnicas discutidas neste artigo.