Comment résoudre les CAPTCHA lors du web scraping ?
Tuesday, October 18, 2022Les CAPTCHA sont l'une des techniques anti-scraping les plus populaires mises en œuvre par les gestionnaires de sites Web. reCaptcha v3 est une solution d'intégration CAPTCHA de Google pour détecter le trafic de robots sur les sites Web. NuCaptcha, hCaptcha sont d'autres solutions CAPTCHA avancées. Mais les CAPTCHA sont assez irritants, non seulement pour les utilisateurs mais aussi pour les scrapeurs web. Résoudre les CAPTCHA est l'un des principaux défis auxquels sont confrontés les racleurs de sites Web. Lisez cet article pour découvrir différentes façons de résoudre les CAPTCHAs pendant que vous récupérez le contenu de votre site Web cible. Voici comment l'article est structuré :
Table des matières
Qu'est-ce qu'un CAPTCHA ? Et qu'est-ce qu'un reCaptcha ?
Le CAPTCHA est un test textuel, visuel ou audio généré par un algorithme automatisé. Résoudre un CAPTCHA requiert trois compétences que les humains maîtrisent mieux que les ordinateurs :
- Reconnaissance invariante (identification de différentes formes, images du même alphabet, objet)
- Segmentation (identifier les alphabets qui se chevauchent), et Analyse du contexte (compréhension holistique de l'image, du texte ou de l'audio)
reCaptcha est la solution de génération de CAPTCHA la plus populaire. Elle vient de Google et peut être facilement intégrée dans un site Web.
Types de CAPTCHAs les plus courants
1. Captcha normal
C'est le CAPTCHA le plus largement utilisé. Une image déformée contient du texte mais est lisible par les humains. Pour résoudre le CAPTCHA normal, il faut entrer le texte déformé dans la zone de texte.
2. Captcha textuel
TextCaptcha n'est pas très populaire, mais il est idéal pour les utilisateurs malvoyants. Ce n'est pas basé sur une image, mais purement du texte. Un exemple CURL de TextCaptcha :
$ curl http://api.textcaptcha.com/myemail@example.com.json
{ "q" : "Si demain est samedi, quel jour sommes-nous aujourd'hui ?"
"a":["f6f7fec07f372b7bd5eb196bbca0f3f4",
"dfc47c8ef18b4689b982979d05cf4cc6"] }
CAPTCHA : Si demain est samedi, quel jour est aujourd'hui ?
SOLUTION : Vendredi.
3. Captcha clé
KeyCaptcha est un autre type de service d'intégration de CAPTCHA où vous devez résoudre une énigme.
4. Click Captcha
Les CAPTCHAs d'image qui relèvent des puzzles basés sur la classification sont des Click CAPTCHAs. reCaptcha, ASIRRA, Ghost Captcha de Snapchat sont des exemples populaires de CAPTCHAs de clic basés sur la classification.
5. Rotate Captcha
Ce sont des énigmes CAPTCHA basées sur l'orientation de l'image. Dans les CAPTCHA à rotation, vous devez cliquer une ou plusieurs fois pour faire pivoter une image afin qu'elle remplisse les conditions de vérification. La condition de vérification la plus populaire est d'obtenir un objet dans le "right way up". FunCaptcha est l'un des fournisseurs d'intégration "rotate CAPTCHA", mais il semble cassé. RVerify.js est une bibliothèque javascript open-source pour vérifier l'orientation des images.
6. GeeTest CAPTCHA
Les CAPTCHAs de GeeTest sont intéressants, ici vous devez déplacer une pièce du puzzle, souvent en faisant glisser un curseur, ou vous devez sélectionner certaines images dans un ordre particulier.
7. hCaptcha
hCaptcha est très similaire à reCaptcha. La seule différence est que lorsque nous utilisons hCaptcha, plusieurs entreprises peuvent tirer parti de l'étiquetage des données que les UTILISATEURS effectuent sur les sites Web lorsqu'ils cliquent sur un site. Avec reCaptcha, seulement Google bénéficie de l'étiquetage des données par les utilisateurs.
8. Capy Puzzle
Similaire à keyCaptcha, Capy Puzzle est un service CAPTCHA basé sur des puzzles. CAPY.ME est un service permettant d'intégrer des puzzles de copie dans des sites Web.
Comment résoudre ou contourner les reCAPTCHAs lors du scraping ?
Whether you’re scraping using an advanced “click and scrape” no-code screen-scraping tool, or your scraper written in Python, Java, or Javascript, it is possible to solve and bypass all sorts of CAPTCHAs. Though no service/solution guarantees a 100% CAPTCHA solving rate, we can get efficiency up to 90% using popular tools like DeathByCaptcha and 2captcha, etc.,
Il y a deux approches populaires pour résoudre les CAPTCHAs:
Résolution des Captcha par des humains
Les CAPTCHA sont faits pour être résolus par des humains. Il existe des entreprises qui emploient des milliers d'humains pour résoudre ces CAPTCHA en temps réel, à un tarif très bas. L'efficacité est assez élevée, mais le temps de latence est un problème avec cette approche.
Alors, comment utiliser un service de résolution de CAPTCHA lors du scraping ?
Il existe plusieurs services de résolution de captcha sur le marché, dont certains sont remarquables :
- DeathByCaptcha
- AZCaptcha
- ImageTyperZ
- EndCaptcha
- BypassCaptcha
- CaptchaTronix
- AntiCaptcha
- 2Captcha
- CaptchaSniper
Tous ces services ont une approche similaire :
1.Inscrivez-vous sur leur site Web, obtenez un token et des informations d'identification après avoir payé le montant, ou peut-être gratuitement si un essai est disponible.
2.Implémentez leur API/plugin en utilisant le langage de votre choix (Python, PHP, Java, JS, etc.).
3.Envoyez vos CAPTCHAs à leur API.
4.Recevez les CAPTCHAs résolus dans la réponse de l'API.
Résoudre les CAPTCHAs en utilisant des OCR (Reconnaissance Optique de Caractères)
C'est une approche programmatique pour résoudre les CAPTCHAs. OCR signifie reconnaissance optique de caractères ou lecteur optique de caractères. L'OCR est une approche électronique ou mécanique permettant de convertir un texte dactylographié, manuscrit ou imprimé en texte codé par une machine. Vous pouvez envoyer un document numérisé, une image ou une scène (exemple : panneaux d'affichage) aux OCR. Il existe des outils open-source comme TESSERACT, GOCR, OCRAD, etc., pour vous aider à démarrer, vous n'avez donc pas besoin de partir de zéro. Les OCRs ont les capacités de résoudre avec succès différents types de CAPTCHAs basés sur l'image.
Résolution automatique
Si vous scrapez un seul site qui ne vérifie les utilisateurs réels à l'aide de reCAPTCHAs que de temps en temps, vous pouvez vouloir contourner reCaptcha manuellement. Dans ce cas, vous pouvez configurer votre flux de travail de scraping de la manière suivante:
- détecter un reCAPTCHA, et pendant que vous résolvez le CAPTCHA
1.interrompez le scraping pendant une durée déterminée, disons 7-8 secondes ou
2.attend qu'un élément de la page soit visible ou
3.attend votre entrée jusqu'à ce qu'il recommence à scraper
- Résolvez le Captcha et recommencez le scrapping comme d'habitude
Pour détecter un reCaptcha, il est important de comprendre sa mise en œuvre.
Comment reCaptcha est intégré dans les sites web ?
L'intégration de reCaptcha implique les étapes suivantes :
1. Chargement de l'API Javascript
<script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key">
</script>
2. Appeler une fonction pour traiter le callback et le lier à un bouton ou une action.
<button class="g-recaptcha"
data-sitekey="reCAPTCHA_site_key"
data-callback='onSubmit'
data-action='submit'>Submit
</button>
Function:
<script>
function onSubmit(token) {
document.getElementById("demo-form").submit();
}
</script>
Maintenant, si vous voulez détecter un captcha, utilisez XPaths et détectez un reCaptcha en recherchant un élément dont la classe text contient reCaptcha
Xpath : //*[contient("@class", "recaptcha")]
Si un élément est présent, cela signifie qu'il y a un Captcha sur la page qui doit être résolu. Vous pouvez suspendre votre scraper, résoudre le captcha et reprendre le scrapping une fois qu'il est résolu.
Maintenant, nous allons voir comment résoudre un reCaptcha dans Octoparse.
Contourner reCaptcha dans Octoparse
Qu'est-ce qu'Octoparse ?
Comme nous l'avons mentionné précédemment, vous pouvez scrapper le Web en utilisant les solutions sans code de Click & Scrape. Octoparse est une solution de scraping web no-code de pointe disponible sur le marché. Elle peut être téléchargée gratuitement et permet de scrapper le Web. Pour un scraping rapide et évolutif, elle propose également des plans très abordables. Si vous ne connaissez pas encore Octoparse, vous trouverez d'excellentes ressources ici. Si vous connaissez déjà Octoparse, voici comment vous pouvez résoudre les CAPTCHA dans Octoparse :
1. Scrapping sur une machine locale :
Lorsque vous utilisez Octoparse pour récupérer le Web sur votre machine locale, il est recommandé d'utiliser les fonctions "attendre avant l'exécution" ou "attendre qu'un élément spécifique apparaisse" fournies dans les options de personnalisation avancée du flux de travail de récupération d'Octoparse. En raison de la mise à jour de la version, si vous ne voyez pas l'option, consultez le centre d'aide pour obtenir de l'aide !
2. Scrapping de clouds
Pour les grands projets, l'équipe d'Octoparse propose le service de personnalisation des modèles JavaScript pour contourner le problème des CAPTCHA/reCAPTCHA.
Conseils pour éviter que les CAPTCHA n'interrompent votre expérience de scraping
1. Utilisez des proxies IP rotatifs, des agents utilisateurs rotatifs et effacez vos cookies. Octoparse vous propose des solutions pour les configurer. Normalement, le site Web détecte un service intégré de détection anti-scraping lorsque la même IP commence à attaquer les serveurs de manière agressive. Si vous utilisez des milliers de proxys et que vous les faites tourner, vous pouvez éviter les CAPTCHAs.
2. Respectez le fichier Robots.txt. Ce fichier contient les règles relatives aux préférences du site Web. Par exemple, les règlements indiquent si le site Web vous permet de le scrapper ou non. Si oui, quelles sont les URL que vous ne devez pas récupérer, et ainsi de suite.
3. Utilisez des navigateurs sans tête si vous écrivez votre scraper web, des outils comme Octoparse s'en chargent automatiquement, car ce sont des browsers intelligents.
4. Essayez d'utiliser des headers et des referrers dans vos requêtes au serveur si vous n'utilisez pas un navigateur complet.
5. Pour l'extraction de données - derrière les logins, enregistrez les cookies. C'est ainsi que l'on peut faire dans Octoparse.
6.Faites attention aux pièges invisibles du pot de miel sur les sites Web. Ce sont les éléments ou les liens qui ne sont pas visibles, donc si vous avez écrit un crawler qui gratte ces liens, le site Web sait qu'il s'agit d'un bot car les humains ne peuvent pas cliquer sur ce lien en utilisant un navigateur normal comme Chrome ou Firefox.
7.Maintenez des délais aléatoires entre les requêtes consécutives. En particulier, lorsque vous sollicitez le site Web avec les mêmes adresses IP de manière répétitive.
8. Utilisez les services de résolution des CAPTCHAS
Conclusion
L'extraction de données du Web est essentielle pour permettre aux entreprises de mieux comprendre et de prendre des décisions critiques fondées sur des données. Les données Web sont également importantes pour la formation des algorithmes d'apprentissage automatique. Dans cet article, nous avons découvert différents types de CAPTCHAs, différentes approches pour résoudre les reCaptcha, la prévention des CAPTCHAs, et nous avons également parlé de la résolution des CAPTCHAs dans Octoparse. Pour vous rappeler encore une fois que, pour les grands projets, nous proposons la personnalisation de modèles Javascript pour intégrer les meilleurs services de résolution de CAPTCHA dans Octoparse. Contactez notre équipe pour toute demande de scraping. Bon scraping sans CAPTCHA !
Quatre méthodes pour scraping HTML
Utiliser un serveur proxy pour le web scraping
Exporter les résultats de recherche de Google Maps vers Excel
Posts les plus populaires
- 1 . Comment extraire en temps réel les données des sites Web dynamiques ?
- 2 . Scraping seloger sans codage pour extraire les annonces/agences immobilières
- 3 . Google scraping| 4 façons d'extraire les résultats de recherche
- 4 . 9 Web Scrapers Gratuits à ne pas manquer en 2023
- 5 . Créer un scraper pour agrégateur d'offres d'emploi en quelques minutes
Posts par sujet