Quando você scrape dados de sites de grande escala, é menos provável que você não tenha que enfrentar um CAPTCHA para provar que você é um humano. Como um raspador de web, você já deve saber porque os profissionais de segurança cibernética foram forçados a inventá-los. Eles foram o resultado de seus bots que automatizaram infinitos pedidos de acesso ao site. Assim, até mesmo usuários genuínos tiveram que passar pelas dores de enfrentar CAPTCHAs que aparecem em diferentes formas. No entanto, você pode contornar CAPTCHAs quer você seja ou não um raspador da web, o que seria o objetivo deste artigo. Mas primeiro, vamos mergulhar no que são os CAPTCHAs.
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.
CAPTCHA significa "Completely Automated Public Turing Test" (Teste de Turing Público Completamente Automatizado para distinguir entre Computadores e Humanos). Essa é uma sigla bem longa, não é? Agora você pode estar se perguntando o que significa a última parte deste acrônimo, Turing Test - bem, é um teste simples para determinar se um humano ou bot está interagindo com uma página web ou servidor web.
Afinal, um CAPTCHA diferencia os humanos dos bots, ajudando os analistas de segurança cibernética a proteger os servidores web de ataques de força bruta, DDoS, e em algumas situações, web scraping.
Vamos descobrir como os CAPTCHAs diferenciam os humanos dos bots.
Você pode encontrar os CAPTCHAs nos formulários de um website, incluindo contato, registro, comentários, inscrição ou formulários de check-out.
Os CAPTCHAs tradicionais incluem uma imagem com letras esticadas ou embaçadas, números, ou ambos em uma caixa com uma cor de fundo ou fundo transparente. Em seguida, é necessário identificar os caracteres e digitá-los no campo de texto que se segue. Este processo de identificação de caracteres é mais fácil para humanos, mas um pouco complicado para um bot.
A idéia de embaçar ou distorcer o texto CAPTCHA é tornar mais difícil para o bot identificar os caracteres. Em contraste, os seres humanos podem interpretar e interceptar caracteres em vários formatos, tais como diferentes fontes, caligrafia, etc. Dito isto, nem todo ser humano pode resolver um CAPTCHA na primeira tentativa. De acordo com a pesquisa, 8% dos usuários digitarão errado em sua primeira tentativa, enquanto 29% falharão se os CAPTCHAs forem sensíveis a maiúsculas e minúsculas.
Por outro lado, alguns bots avançados podem interceptar cartas distorcidas com a ajuda da aprendizagem de máquinas 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.
ReCAPTCHA é um serviço gratuito que o Google oferece. Ele pede aos usuários que marquem caixas em vez de digitar texto, resolver enigmas 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 confiar nos CAPTCHAs da velha guarda com textos desfocados e distorcidos.
Existem três tipos significativos de testes ReCAPTCHA para verificar se você é um ser humano ou não:
Estes são os ReCAPTCHAs que solicitam aos usuários que assinalem uma caixa de seleção, "Eu não sou um robô", como na imagem acima. Embora possa parecer a olho nu que até mesmo um robô poderia completar este teste, vários fatores são levados em consideração:
Se o ReCAPTCHA não verificar que você é um humano, ele lhe apresentará outro desafio.
Estes ReCAPTCHAs fornecem aos usuários nove ou dezesseis imagens quadradas, como você pode ver na imagem acima. Cada quadrado representa uma parte de uma imagem maior ou imagens diferentes. Um usuário deve selecionar quadrados representando objetos específicos, animais, árvores, veículos ou semáforos.
Se a seleção do usuário corresponder à seleção de outros usuários que tenham realizado o mesmo teste, o usuário é verificado. Caso contrário, o ReCAPTCHA apresentará um teste mais desafiador.
Você sabia que o ReCAPTCHA pode verificar se você é humano ou não sem usar caixas de seleção ou qualquer interação de usuário?
Certamente, isso se dá considerando o histórico de interação do usuário com websites e o comportamento geral do usuário enquanto estiver on-line. Na maioria dos cenários, sobre estes fatores, o sistema seria capaz de determinar se o usuário é um bot.
Se não o fizesse, voltaria a qualquer um dos dois métodos mencionados anteriormente.
CAPTCHAs podem ser acionados se um website detectar atividades incomuns que se assemelham ao comportamento do bot; tal comportamento incomum inclui pedidos ilimitados dentro de segundos e clicando em links a uma taxa muito maior do que a dos seres humanos.
Então alguns websites teriam automaticamente CAPTCHAs para proteger seus sistemas.
No que diz respeito aos ReCAPTCHAs, não está exatamente claro o que os desencadeia. No entanto, as causas gerais são os movimentos do mouse, o histórico de navegação e o rastreamento de cookies.
Agora você tem uma visão clara do que são CAPTCHAs e Rechaptchas, como eles operam e o que os desencadeia. Agora é hora de analisar como os CAPTCHAs afetam a web scraping.
CAPTCHAs podem dificultar scraping a web, já que os bots automatizados realizam a maior parte das operações scraping . No entanto, não se desanime. Como mencionado no início deste artigo, existem maneiras de superar os CAPTCHAs quando scraping a web. Antes de chegarmos a eles, vamos mergulhar nossa atenção no que você precisa saber antes de você scrape.
Antes de mais nada, você deve se assegurar de que não permita que seu raspador/retirador da web envie muitos pedidos em um curto período. A maioria dos websites mencionou em suas páginas de termos e condições quantos pedidos o website permite. Certifique-se de lê-las antes de iniciar scraping.
Quando você se conecta a um website, você envia informações sobre seu dispositivo para o website 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 métrico. Assim, quando descobrirem que as solicitações são do mesmo dispositivo, qualquer solicitação que você enviar posteriormente será bloqueada.
Assim, se você tiver desenvolvido o raspador/retirador por conta própria, você poderá alterar as informações de cabeçalho para cada solicitação que seu raspador fizer. Então, isso pareceria ao site de destino, pois ele está recebendo várias solicitações de diferentes dispositivos. Leia aqui para mais informações sobre os cabeçalhos HTTP.
Outro fato que você deve estar ciente é que o site alvo não colocou seu endereço IP na lista negra. É provável que eles coloquem seu endereço IP na lista negra quando você envia muitos pedidos com seu raspador/rastejador.
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 a partir de diferentes locais. Portanto, você deve poder continuar scraping sem interrupção a partir de CAPTCHAs. Dito isto, você deve garantir que não está prejudicando de forma alguma o desempenho do site.
Entretanto, você precisa observar que proxies não o ajudará a superar CAPTCHAs no registro, mudança de senha, formulários de check-out, etc. Ele só pode ajudá-lo a superar as capturas que os sites acionam devido ao comportamento do bot. Para evitar CAPTCHAs em tais formulários, nós analisaremos os solucionadores de CAPTCHA em uma próxima seção.
Além dos fatores-chave acima, você precisa conhecer os CAPTCHAs abaixo quando estiver na web scraping com um bot:
Honeypots-Honeypot será um tipo de CAPTCHA fechado em um campo de formulário HTML ou link, mas sua visibilidade é escondida com o CSS. Assim, quando um bot interage com ele, inevitavelmente se diz ser um bot. Portanto, antes de tornar seu bot scrape o conteúdo, certifique-se de que as propriedades do CSS do elemento sejam visíveis.
CAPTCHA em palavras/baterias - Estes são os CAPTCHAs em equações matemáticas como a resolução "3+7", por exemplo. Também pode haver quebra-cabeças de palavras para resolver.
Acesso às mídias sociais - Alguns sites exigem que você entre com sua conta no Facebook, por exemplo. Entretanto, eles não são populares, pois a maioria dos administradores sabe que as pessoas ficariam relutantes em assiná-los com suas contas de mídia social.
Rastreamento do tempo -Estes CAPTCHAs monitoram a rapidez com que você realiza uma ação específica, como o preenchimento de um formulário para determinar se é um humano ou um bot.
Como mencionado na seção anterior, você precisa girar proxies cada vez que enviar uma solicitação para o site alvo. É uma maneira de evitar CAPTCHAs que acionam enquanto você scrape. Nessas circunstâncias, você precisa usar IP residencial limpo proxies.
Quando você rotaciona o proxies, seria difícil para o site alvo determinar sua pegada de IP. Isto porque, para cada solicitação, o endereço IP proxies' apareceria em vez do seu próprio.
Como você estará usando um raspador para a web scraping, você precisará disfarçar o agente do usuário para um popular navegador da web ou bot-bots suportados, como bot-bots de motores de busca que os sites reconhecem.
A simples mudança do agente do usuário não será suficiente, pois você precisará ter uma lista de cordas do agente do usuário e depois rotacioná-las. Esta rotação fará com que o site alvo o veja como um dispositivo diferente quando na realidade, um dispositivo está enviando todas as solicitações.
Como uma melhor prática para esta etapa, seria ótimo manter um banco de dados de agentes de usuários reais. Além disso, exclua o cookies quando não precisar mais deles.
Um método técnico mais simples de resolver um CAPTCHA seria usar um serviço de solução de CAPTCHA. Eles usam Inteligência Artificial (IA), Aprendizagem de Máquina (MI), e uma culminação 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.
Quando você deixa seu raspador acessar diretamente uma URL a cada fracção de segundo, então o site receptor seria suspeito. Como resultado, o site de destino acionaria um CAPTCHA.
Para evitar tal cenário, você poderia definir o cabeçalho de referência para fazer com que ele pareça ser referido de outra página. Isso reduziria a probabilidade de ser detectado como um bot. Alternativamente, você poderia fazer o bot visitar outras páginas antes de visitar o link desejado.
Honeypots são elementos ocultos em uma página da web que os especialistas em segurança usam para prender bots ou intrusos. Embora o navegador renderize seu HTML, suas propriedades CSS são definidas para esconder. Entretanto, ao contrário dos humanos, o código do pote de mel seria visível para os bots quando eles scrape os dados. Como resultado, eles caíram na armadilha montada pelo pote de mel.
Portanto, você tem que verificar as propriedades do CSS de todos os elementos em uma página da web não estão escondidos ou invisíveis antes de começar scraping. Somente quando você estiver certo de que nenhum dos elementos está escondido, você configura seu bot para scraping.
Contornar o CAPTCHAs é simplesmente o processo de remoção dos bloqueadores que surge enquanto scraping dados de numerosos sites. Como os CAPTCHAs são projetados para verificar se o tráfego da web é orgânico.
O ReCaptcha evita que seus sites sejam spams e tráfego de robôs maliciosos. Ele gera quebra-cabeças interativos para diferenciar o tráfego orgânico do tráfego de bot.
Quando você envia solicitações da web de volta para trás a partir de um bot ou de qualquer solução scraping , os CAPTCHAs podem facilmente identificar que o tráfego é de um bot de spammy. Portanto, usando um endereço proxy de um proxy , você poderá aparecer mais como um tráfego em tempo real.
Este artigo teria lhe dado uma idéia abrangente de como evitar CAPTCHAs enquanto 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 forma a evitar o CAPTCHAs.
Esperamos que você "faça uso de todas as técnicas discutidas neste artigo".