Comment contourner les CAPTCHAs lors d'une recherche sur le Web ? - 5 étapes simples

Comment faire, Le raclage, Mar-06-20245 minutes de lecture

Lorsque vous récupérez des données sur des sites web à grande échelle, il est très probable que vous n'ayez pas eu à faire face à un CAPTCHA pour prouver que vous êtes un être humain. En tant que scrapeur web, vous savez peut-être déjà pourquoi les professionnels de la cybersécurité ont été contraints d'inventer ces CAPTCHA. Ces CAPTCHA sont le résultat de l'automatisation par vos robots d'innombrables demandes d'accès à des sites web.

Lorsque vous récupérez des données sur des sites web à grande échelle, il est très probable que vous n'ayez pas eu à faire face à un CAPTCHA pour prouver que vous êtes un être humain. En tant que scrapeur web, vous savez peut-être déjà pourquoi les professionnels de la cybersécurité ont été contraints d'inventer ces CAPTCHA. Ils étaient le résultat de l'automatisation, par vos robots, d'innombrables demandes d'accès à des sites web. Ainsi, même les utilisateurs authentiques ont dû affronter les CAPTCHA, qui se présentent sous différentes formes. Cependant, vous pouvez contourner les CAPTCHA, que vous soyez un scrapeur web ou non, ce qui est l'objectif de cet article. Mais tout d'abord, voyons ce que sont les CAPTCHA.

Contourner le CAPTCHA pour le Web Scraping

Les CAPTCHA sont généralement déclenchés pour détecter un trafic non naturel sur le site. Pour contourner cette restriction, les utilisateurs préfèrent une solution qui peut craquer tous ces codes CAPTCHA et accéder au site Web comme un véritable être humain. Capsolver est une solution qui permet de contourner les captchas. L'utilisation de proxys avec les requêtes web aidera également les utilisateurs à apparaître comme un trafic naturel. 

Qu'est-ce qu'un CAPTCHA ?

CAPTCHA signifie Completely Automated Public Turing Test to tell Computers and Humans Apart (Test de Turing public entièrement automatisé pour distinguer les ordinateurs des humains). C'est un acronyme assez long, n'est-ce pas ? Vous vous demandez peut-être ce que signifie la dernière partie de cet acronyme, le test de Turing. Il s'agit d'un test simple qui permet de déterminer si c'est un humain ou un robot qui interagit avec une page web ou un serveur web.

Après tout, un CAPTCHA différencie les humains des robots, ce qui aide les analystes en cybersécurité à protéger les serveurs web contre les attaques par force brute, les attaques par déni de service et, dans certains cas, le piratage de sites web. 

Voyons comment les CAPTCHA différencient les humains des robots.

Comment fonctionnent les CAPTCHA ?

Les CAPTCHA se trouvent dans les formulaires d'un site web, notamment les formulaires de contact, d'enregistrement, de commentaires, d'inscription ou de paiement.

Les CAPTCHA traditionnels comprennent une image avec des lettres, des chiffres ou les deux, étirés ou flous, dans une boîte avec une couleur d'arrière-plan ou un arrière-plan transparent. Vous devez ensuite identifier les caractères et les taper dans le champ de texte qui suit. Ce processus d'identification des caractères est plus facile pour les humains, mais quelque peu compliqué pour un robot.

L'idée de brouiller ou de déformer le texte du CAPTCHA est de rendre plus difficile l'identification des caractères par le robot. En revanche, les êtres humains peuvent interpréter et intercepter des caractères dans différents formats, tels que différentes polices de caractères, l'écriture manuscrite, etc. Cela dit, tous les êtres humains ne parviennent pas à résoudre un CAPTCHA du premier coup. Selon une étude, 8 % des utilisateurs se trompent lors de leur première tentative, tandis que 29 % échouent si les CAPTCHA sont sensibles à la casse.

D'autre part, certains robots avancés peuvent intercepter des lettres déformées grâce à l'apprentissage automatique au fil des ans. En conséquence, certaines entreprises telles que Google ont remplacé les CAPTCHA conventionnels par des CAPTCHA sophistiqués. L'un de ces exemples est ReCAPTCHA, que vous découvrirez dans la section suivante.

Qu'est-ce qu'un ReCAPTCHA ?

ReCAPTCHA est un service gratuit offert par Google. Il demande aux utilisateurs de cocher des cases plutôt que de taper du texte, de résoudre des puzzles ou des équations mathématiques.

Un ReCAPTCHA typique est plus avancé que les formes conventionnelles de CAPTCHA. Il utilise des images et des textes du monde réel, tels que des feux de circulation dans les rues, des textes de vieux journaux et des livres imprimés. Ainsi, les utilisateurs n'ont pas à se fier aux anciens CAPTCHA dont le texte est flou et déformé.

Comment fonctionnent les ReCAPTCHA ?

Il existe trois types de tests ReCAPTCHA permettant de vérifier si vous êtes un être humain ou non :

Case à cocher

Il s'agit des ReCAPTCHA qui demandent aux utilisateurs de cocher une case "Je ne suis pas un robot", comme dans l'image ci-dessus. Bien qu'il puisse sembler à l'œil nu que même un robot puisse réussir ce test, plusieurs facteurs sont pris en compte :

  • Ce test étudie les mouvements de la souris de l'utilisateur lorsqu'il s'approche de la case à cocher.
  • Les mouvements de la souris d'un utilisateur ne sont pas rectilignes, y compris la plupart des mouvements directs de la souris. Il est difficile pour un robot d'imiter le même comportement.
  • Enfin, le ReCAPTCHA inspecte les cookies stockés par votre navigateur.

Si le ReCAPTCHA ne parvient pas à vérifier que vous êtes un être humain, il vous proposera un autre défi.

Reconnaissance d'images

Ces ReCAPTCHAs fournissent aux utilisateurs des images carrées de neuf ou seize cases, comme vous pouvez le voir dans l'image ci-dessus. Chaque carré représente une partie d'une image plus grande ou de différentes images. L'utilisateur doit sélectionner des carrés représentant des objets, des animaux, des arbres, des véhicules ou des feux de signalisation spécifiques.

Si la sélection de l'utilisateur correspond à celle d'autres utilisateurs ayant effectué le même test, l'utilisateur est vérifié. Dans le cas contraire, le ReCAPTCHA présentera un test plus difficile.

Pas d'interaction

Saviez-vous que ReCAPTCHA peut vérifier si vous êtes un humain ou non sans utiliser de cases à cocher ou d'interactions avec l'utilisateur ?

Il le fait certainement en tenant compte de l'historique des interactions de l'utilisateur avec les sites web et de son comportement général en ligne. Dans la plupart des cas, sur la base de ces facteurs, le système est en mesure de déterminer si vous êtes un robot.

Dans le cas contraire, on reviendrait à l'une des deux méthodes mentionnées précédemment.

Qu'est-ce qui déclenche les CAPTCHA et les ReCAPTCHA ?

Les CAPTCHA peuvent être déclenchés si un site web détecte des activités inhabituelles ressemblant à un comportement de robot. Ce comportement inhabituel comprend des demandes illimitées en quelques secondes et le fait de cliquer sur des liens à un taux beaucoup plus élevé que les humains. 

Certains sites web auraient alors automatiquement mis en place des CAPTCHA pour protéger leurs systèmes.

En ce qui concerne les ReCAPTCHA, on ne sait pas exactement ce qui les déclenche. Toutefois, les causes générales sont les mouvements de la souris, l'historique de navigation et le suivi des cookies.

Ce qu'il faut savoir pour contourner les CAPTCHA lors du web scraping

Vous avez maintenant un aperçu clair de ce que sont les CAPTCHA et les Rechaptchas, de leur fonctionnement et de ce qui les déclenche. Il est maintenant temps de voir comment les CAPTCHA affectent le web scraping.

Les CAPTCHA peuvent entraver le scraping du web car les robots automatisés effectuent la plupart des opérations de scraping. Cependant, ne vous découragez pas. Comme indiqué au début de cet article, il existe des moyens de surmonter les CAPTCHA lors du scraping du web. Avant d'en arriver là, intéressons-nous à ce dont vous devez être conscient avant de procéder au scraping.

Envoi d'un trop grand nombre de requêtes au site web cible

Tout d'abord, vous devez vous assurer que vous n'autorisez pas votre scraper/crawler à envoyer un trop grand nombre de requêtes sur une courte période. La plupart des sites web mentionnent dans leurs conditions générales le nombre de requêtes qu'ils autorisent. Veillez à les lire avant de commencer le scraping.

En-têtes HTTP

Lorsque vous vous connectez à un site web, vous envoyez des informations sur votre appareil au site web qui se connecte. Ces informations peuvent être utilisées pour adapter le contenu aux spécifications de votre appareil et au suivi métrique. Ainsi, lorsqu'ils découvrent que les demandes proviennent du même appareil, toutes les demandes que vous envoyez par la suite sont bloquées.

Ainsi, si vous avez développé vous-même le scraper/crawler, vous pouvez modifier les informations de l'en-tête pour chaque requête que votre scraper effectue. Le site web cible aura alors l'impression de recevoir plusieurs requêtes provenant de différents appareils. Pour en savoir plus sur les en-têtes HTTP, cliquez ici .

Adresse IP

Vous devez également vous assurer que le site web cible n'a pas mis votre adresse IP sur liste noire. Il est probable qu'il le fasse si vous envoyez trop de requêtes avec votre scraper/crawler. 

Pour résoudre ce problème, vous pouvez utiliser un serveur proxy qui masque votre adresse IP. 

La rotation des en-têtes HTTP et de proxys (plus d'informations à ce sujet dans la section suivante) avec un pool garantira que plusieurs appareils accèdent au site web à partir de différents endroits. Vous devriez donc être en mesure de poursuivre le scraping sans être interrompu par les CAPTCHA. Cela dit, vous devez vous assurer que vous ne nuisez pas aux performances du site web de quelque manière que ce soit.

Cependant, vous devez noter que proxys ne vous aidera pas à surmonter les CAPTCHAs dans les formulaires d'enregistrement, de changement de mot de passe, de paiement, etc. Il ne peut que vous aider à surmonter les captures que les sites Web déclenchent en raison du comportement des robots. Pour éviter les CAPTCHA dans de tels formulaires, nous examinerons les résolveurs de CAPTCHA dans une prochaine section.

Autres types de CAPTCHA

Outre les facteurs clés susmentionnés, vous devez connaître les CAPTCHA ci-dessous lorsque vous faites du web scraping avec un robot :

Honeypots - Le Honeypot est un type de CAPTCHA inclus dans un champ de formulaire HTML ou un lien, mais dont la visibilité est masquée par le CSS. Par conséquent, avant que votre robot ne récupère le contenu, assurez-vous que les propriétés CSS de l'élément sont visibles.

CAPTCHA de mots/correspondance : il s'agit des CAPTCHA d'équations mathématiques, comme la résolution de "3+7", par exemple. Il peut également y avoir des puzzles de mots à résoudre.

Connexion aux médias sociaux - Certains sites web exigent que vous vous connectiez avec votre compte Facebook, par exemple. Cependant, ils ne sont pas populaires car la plupart des administrateurs savent que les gens hésiteront à s'identifier avec leurs comptes de médias sociaux.

Suivi du temps - Ces CAPTCHA surveillent la vitesse à laquelle vous effectuez une action spécifique, comme remplir un formulaire, afin de déterminer s'il s'agit d'un humain ou d'un robot.

Comment contourner les CAPTCHAs pour le Web Scraping

Rotation de proxys et utilisation d'adresses IP de qualité

Comme indiqué dans la section précédente, vous devez alterner proxys chaque fois que vous envoyez une requête au site web cible. C'est une façon d'éviter les CAPTCHA qui se déclenchent lorsque vous faites du scrape. Dans ces circonstances, vous devez utiliser des adresses IP résidentielles propres proxys.

Lorsque vous faites pivoter le site proxys, il est difficile pour le site web cible de déterminer votre empreinte IP. En effet, pour chaque requête, c'est l'adresse IP de proxysqui apparaît et non la vôtre.

Rotation des agents utilisateurs

Étant donné que vous utiliserez un scraper pour le web scraping, vous devrez déguiser l'agent utilisateur en navigateur web populaire ou en bot-bots pris en charge, tels que les robots des moteurs de recherche reconnus par les sites web.

Il ne suffit pas de modifier l'agent utilisateur ; vous devez disposer d'une liste de chaînes d'agents utilisateurs et les alterner. Cette rotation fera en sorte que le site web cible vous verra comme un appareil différent alors qu'en réalité, un seul appareil envoie toutes les requêtes.

Comme meilleure pratique pour cette étape, il serait bon de conserver une base de données des agents utilisateurs réels. Supprimez également les cookies lorsque vous n'en avez plus besoin.

Services de résolution des CAPTCHA

Une méthode plus simple et moins technique pour résoudre un CAPTCHA consisterait à utiliser un service de résolution de CAPTCHA. Ces services utilisent l'intelligence artificielle (IA), l'apprentissage automatique (MI) et un ensemble d'autres technologies pour résoudre un CAPTCHA.

Capsolver et Anti-CAPTCHA sont quelques-uns des principaux solveurs de CAPTCHA existant actuellement dans l'industrie.

Éviter les liens directs

Lorsque vous laissez votre scraper accéder directement à une URL à chaque fraction de seconde, le site web destinataire se méfie. Par conséquent, le site web cible déclenchera un CAPTCHA.

Pour éviter un tel scénario, vous pouvez définir l'en-tête "referer" de manière à ce qu'il semble provenir d'une autre page. Cela réduirait la probabilité d'être détecté comme un robot. Vous pouvez également faire en sorte que le robot visite d'autres pages avant de se rendre sur le lien souhaité.

Éviter les pots de miel

Les pots de miel sont des éléments cachés sur une page web que les experts en sécurité utilisent pour piéger les robots ou les intrus. Bien que le navigateur rende son HTML, ses propriétés CSS sont réglées pour être cachées. Toutefois, contrairement aux humains, le code du pot de miel est visible par les robots lorsqu'ils récupèrent les données. Ils sont donc tombés dans le piège tendu par le pot de miel.

Vous devez donc vous assurer que les propriétés CSS de tous les éléments d'une page web ne sont pas cachées ou invisibles avant de commencer le scraping. Ce n'est que lorsque vous êtes certain qu'aucun élément n'est caché que vous configurez votre robot pour le scraping.

Questions fréquemment posées

FAQs :

1. Que signifie contourner les CAPTCHA pour le Web Scraping ?
Contourner les CAPTCHAs consiste simplement à supprimer les bloqueurs qui apparaissent lors de la collecte de données sur de nombreux sites. Les CAPTCHA sont conçus pour vérifier si le trafic web est organique.
2. Qu'est-ce que ReCaptcha ?
ReCaptcha protège vos sites web contre les spams et le trafic de robots malveillants. Il génère des puzzles interactifs pour différencier le trafic organique du trafic de robots.
3. Comment un proxy peut-il aider les utilisateurs à contourner les Captchas ?
Lorsque vous envoyez des requêtes web à partir d'un bot ou d'une solution de scraping, les CAPTCHAs peuvent facilement identifier le trafic provenant d'un bot spammeur. Par conséquent, l'utilisation d'adresses proxy à partir d'un proxy vous permettra d'avoir l'air d'un trafic en temps réel.

Conclusion

Cet article vous aura donné une idée complète de la manière d'éviter les CAPTCHA lors du scraping du web. Éviter un CAPTCHA peut être un processus compliqué. Cependant, en utilisant les techniques spécifiques présentées dans cet article, vous pouvez développer le robot de manière à éviter les CAPTCHA.

Nous espérons que vous utiliserez toutes les techniques présentées dans cet article.