Dans ce tutoriel, vous apprendrez :
- Qu’est-ce que Botright et comment fonctionne-t-il ?
- Comment l’utiliser pour le web scraping
- Un guide étape par étape pour résoudre les CAPTCHAs avec Botright
- Alternatives à Botright pour la résolution de CAPTCHA dans les flux de travail de scraping
- Limites de cette bibliothèque et comment les surmonter
Plongeons dans l’aventure !
Qu’est-ce que Botright ?
Botright est un framework de scraping web Python open-source pour automatiser les interactions avec le navigateur et extraire des données des sites web. Il s’appuie sur l’automatisation du navigateur et sur des techniques de furtivité pour imiter le comportement réel de l’utilisateur. Cela le rend efficace pour le scraping de sites web dynamiques et ceux protégés par des systèmes anti-bots tels que Cloudflare.
Il est basé sur Playwright et utilise des modèles d’apprentissage automatique pour vous aider à contourner les CAPTCHA. Pour atteindre leur objectif d’arrêter les robots, les CAPTCHA sont conçus pour être faciles à résoudre pour les humains, mais difficiles pour les scripts automatisés. Toutefois, certains modèles d’apprentissage automatique sont suffisamment puissants pour les déjouer.
👍 Pour :
- Évasion de la détection anti-bot: Botright est spécialement conçu pour contourner les systèmes anti-bots. Il y parvient grâce à des fonctionnalités telles que la modification des empreintes digitales du navigateur, l’utilisation de moteurs de navigateur réels ou modifiés et la simulation d’interactions de type humain.
- Résolution intégrée des CAPTCHA: Il offre des capacités d’apprentissage automatique intégrées pour résoudre les CAPTCHA les plus courants.
- Gère les contenus dynamiques: En tant qu’outil d’automatisation du navigateur, il gère les sites web à forte teneur en JavaScript et le chargement de contenu dynamique.
👎 Cons :
- Nombreuses dépendances: Pour exposer ses fonctionnalités de résolution de CAPTCHA, il s’appuie sur certaines bibliothèques de mathématiques, d’apprentissage automatique et d’interaction avancée. Ces éléments peuvent faire grimper la taille de l’installation complète à quelques Go.
- Évolution du paysage de la lutte contre les robots: L’efficacité d’une bibliothèque anti-détection peut diminuer avec le temps, car les sites web mettent à jour leurs techniques de détection des robots et des CAPTCHA.
- N’est pas maintenue: La bibliothèque n’est pas mise à jour fréquemment et nécessite une ancienne version de Python ainsi que quelques ajustements manuels pour la faire fonctionner.
Comment utiliser Botright pour le scraping Web
Rappelez-vous que Botright est construit au-dessus de Playwright. Ainsi, après l’avoir initialisé, vous pouvez utiliser l’API pour le scraping web exposée par Playwright vanille :
import asyncio
import botright
async def main():
# Create a Botright browser instance
botright_client = await botright.Botright()
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Visit the target page
await page.goto("https://example.com")
# Scraping logic with the Playwright API...
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "__main__":
asyncio.run(main())
Notez que Botright n’est disponible qu’en mode asynchrone, c’est pourquoi vous devez l’utiliser via asyncio
.
Après l’initialisation du navigateur dans Botwright, vous pouvez utiliser l’API Playwright pour faire du scraping web.
Comment résoudre les CAPTCHAs avec Botright : Guide étape par étape
La véritable force de Botright est sa capacité à résoudre les CAPTCHAs. Selon la page officielle de GitHub, voici les CAPTCHA qu’il peut résoudre :
Type de captcha | Résolu par | Taux de réussite |
---|---|---|
hCaptcha | hcaptcha-challenger |
Jusqu’à 90 |
reCaptcha | reCognizer |
De 50 % à 80 |
v3 Mode intelligent | La furtivité de Botright | 100% |
v3 Slider Captcha | cv2.matchTemplate |
100% |
v3 Nine Captcha | Détection CLIP | 50% |
v3 Icon Captcha | cv2.matchTemplate / SSIM / CLIP |
70% |
v4 Mode intelligent | La furtivité de Botright | 100% |
v4 Slider Captcha | cv2.matchTemplate |
100% |
v4 GoBang Captcha | Calculs mathématiques | 100% |
v4 Icon Captcha | cv2.matchTemplate / SSIM / CLIP |
60% |
v4 IconCrush Captcha | Calculs mathématiques | 100% |
Dans cette section guidée, vous verrez comment résoudre un reCAPTCHA de Google avec Botright. Suivez les étapes ci-dessous pour atteindre l’objectif !
Exigences
Pour reproduire ce tutoriel, vous devez remplir les conditions préalables suivantes :
- Python 3.10.11 installé.
- La dernière version de
pip
.
Note: Les versions les plus récentes de Python ne fonctionneront pas avec Botright. Vous devez donc avoir la version 3.10.11 ou inférieure installée sur votre machine.
Étape 1 : Configuration du projet et installation de Botright
A la fin de cette section, le dossier botright_project/
représentant le dossier de votre projet contiendra :
botright_project/
├── scaper.py
└── venv/
Où ?
scraper.py
est le fichier Python contenant la logique de résolution des CAPTCHA de Botright.venv/
est l’environnement virtuel Python 3.10.
Sous Windows, vous pouvez créer le répertoire d’environnement virtuel Python 3.10 venv/
comme suit :
py -3.10 -m venv venv
Pour l’activer, exécutez :
venv\Scripts\activate
De manière équivalente, sous Linux, exécutez :
python3.10 -m venv venv
Ensuite, activez-la avec :
source venv/bin/activate
Dans l’environnement virtuel activé, mettez pip
à niveau vers la dernière version :
python -m pip install --upgrade pip
Ensuite, installez Botright avec :
pip install botright --use-pep517
pip install hcaptcha_challenger==="0.10.1.post2"
Notes:
--use-pep517
est obligatoire pour s’assurer que toutes les dépendances héritées qui dépendent d’un fichierpyproject.toml
seront installées correctement.hcaptcha_challenger
a beaucoup évolué depuis la sortie de la dernière version de Botright. En détail, la dernière version dehcaptcha_challenger
n’expose plus les méthodes appelées par Botright dans les coulisses. Vous devez donc installer une version spécifique pour que la bibliothèque fonctionne.
Génial ! Votre environnement est configuré pour résoudre les CAPTCHAs avec Botright.
Étape 2 : Définir la logique de résolution des CAPTCHAs
Pour résoudre les CAPTCHAs avec Botright, écrivez le code suivant dans le fichier scraper.py :
import asyncio
import botright
async def scraper():
# Start the Botright instance
botright_client = await botright.Botright(headless=True)
browser = await botright_client.new_browser()
# Create a new page instance
page = await browser.new_page()
# Open the target web page with the reCAPTCHA demo
await page.goto("https://www.google.com/recaptcha/api2/demo")
# Solve the CAPTCHA
await page.solve_recaptcha()
# Screenshot the page to capture the solved CAPTCHA
await page.screenshot(path="screenshot.png")
# Close the botright browser instance
await botright_client.close()
# Execute the scraper function
if __name__ == "_main_":
asyncio.run(scraper())
Le code ci-dessus :
- Utilise la méthode
new_browser()
pour démarrer une instance de navigateur Botright en mode headless, qui est une version spéciale de Chromium mais optimisée pour la furtivité. - Crée une nouvelle instance de page et y ouvre la page de démonstration reCAPTCHA.
- Résout le CAPTCHA avec la méthode
solve_recaptcha().
- Effectue une capture d’écran du CAPTCHA résolu et ferme l’instance du navigateur.
Note: Lisez la section “Résolution des CAPTCHA” dans la documentation pour connaître les méthodes nécessaires pour résoudre les autres types de CAPTCHA.
Parfait ! Vous avez écrit la logique pour résoudre un reCAPTCHA avec Botright.
Étape 3 : Exécuter le code
Exécutez le code avec :bash python scraper.py
Voici ce que vous verrez en exécutant le script en mode headless(headless=False
) :
Le fichier screenshot.png
produit par le script Botright contiendra les éléments suivants
Finalement, le script devrait détecter toutes les images et résoudre les CAPTCHAs automatiquement. Toutefois, comme la précision n’est pas garantie à 100 %, il peut arriver qu’il échoue. Dans ce cas, continuez simplement à exécuter le script jusqu’à ce qu’il réussisse. En production, vous devez mettre en œuvre une logique de réessai automatique.
Comme vous pouvez le voir, Botright combine des modèles d’apprentissage automatique avec des outils d’intégration humaine automatisés pour :
- Comprendre ce que demande le CAPTCHA
- Détecter les images qui correspondent aux critères requis
- Cliquez sur ces images comme le ferait un humain
Mission accomplie !
Alternatives à Botright pour résoudre les CAPTCHAs
Les CAPTCHA sont efficaces même contre la plupart des robots. Bien qu’ils puissent perturber l’expérience des utilisateurs réguliers, les CAPTCHA modernes restent l’une des principales défenses contre les scrapers et crawlers d’IA. C’est pourquoi ils sont de plus en plus populaires, car la plupart des sites web souhaitent protéger leurs pages et leurs données contre la tendance croissante des robots d’intelligence artificielle.
Botright n’est pas le seul outil capable de résoudre les CAPTCHAs. Si vous avez besoin de contourner les CAPTCHAs pendant le scraping, considérez les bibliothèques et approches alternatives suivantes :
- Comment contourner les CAPTCHA avec Puppeteer
- Comment contourner les CAPTCHAs avec Selenium en Python
- Comment contourner les CAPTCHA avec Playwright
- Guide du Web Scraping avec SeleniumBase en 2025
- Comment utiliser un pilote ChromeDriver non détecté pour faire du Web Scraping ?
- Les 5 meilleurs proxy CAPTCHA de 2025
Limites de l’utilisation de Botright dans le cadre de l’exploration du Web
Botright est un outil assez efficace pour résoudre les CAPTCHA dans le cadre du web scraping, mais il est loin d’être parfait. La bibliothèque utilise des méthodes basées sur l’apprentissage automatique qui ne produisent pas toujours des résultats cohérents. En outre, elle est quelque peu obsolète et n’est pas fréquemment mise à jour.
C’est un problème majeur, surtout si l’on considère que les CAPTCHA modernes deviennent de plus en plus complexes. Par conséquent, les modèles d’apprentissage automatique qui sous-tendent Botright auraient besoin de mises à jour régulières pour rester à jour.
En bref, ne vous attendez pas à ce que Botright résolve les CAPTCHAs modernes. C’est particulièrement vrai lorsqu’il s’agit de nouveaux CAPTCHAs basés sur des puzzles comme ceux fournis par hCaptcha:
Comme le montre le résultat vidéo précédent (enregistré à une vitesse de 3x), Botright n’est pas particulièrement rapide. La raison en est qu’il consomme beaucoup de ressources informatiques pour analyser chaque nouvelle image présentée par reCAPTCHA et déterminer celle sur laquelle il faut cliquer. Dans des scénarios réels, Botright peut prendre jusqu’à 15 secondes pour résoudre un reCAPTCHA. C’est beaucoup trop long pour des opérations de scraping à grande échelle.
De plus, Botright est également basé sur Playwright, qui apporte toutes les limitations typiques des outils d’automatisation des navigateurs. Il s’agit notamment de problèmes liés à l’empreinte du navigateur en mode “headless” et d’une consommation élevée de ressources.
Pour une résolution plus rapide et plus cohérente des CAPTCHA dans les flux de travail de scraping basés sur l’automatisation du navigateur, une meilleure option consiste à utiliser un navigateur basé sur le cloud et optimisé pour le scraping web. La solution est Scraping Browser.
Scraping Browser est un navigateur de scraping en nuage qui offre des fonctions intégrées de contournement des robots, une rotation automatique de l’IP, une protection des empreintes digitales du navigateur, des mécanismes de réessai et, bien sûr, la résolution des CAPTCHA.
En particulier, la solution peut gérer un large éventail de CAPTCHA, notamment reCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha, GeeTest CAPTCHA, FunCaptcha, Cloudflare Turnstile, AWS WAF Captcha, KeyCAPTCHA, et bien d’autres encore.
Conclusion
Dans cet article, vous avez appris comment Botright exploite l’automatisation du navigateur et l’apprentissage automatique pour résoudre les CAPTCHAs à des fins de web scraping. Bien qu’il offre des capacités anti-bot flexibles, Botright souffre de performances lentes, d’une consommation élevée de ressources, de dépendances obsolètes et de résultats incohérents.
Pour les entreprises et les équipes qui ont besoin d’une solution plus rapide et plus facile pour surmonter les CAPTCHA à grande échelle, Bright Data propose plusieurs produits avancés qui vont bien au-delà de l’approche open-source de Botright :
- Solveur CAPTCHA: Un solveur d’entreprise qui prend en charge un large éventail de types de CAPTCHA (y compris reCAPTCHA, hCaptcha, Cloudflare, etc.) et offre des taux de réussite élevés sans dépendances locales lourdes.
- Navigateur de scraping: Un navigateur basé sur le cloud conçu pour le scraping, avec rotation automatique des adresses IP, protections anti-bots intégrées et résolution transparente des CAPTCHA, le tout géré dans le cloud pour plus d’efficacité et de fiabilité.
- Web Unlocker: Un moteur de déverrouillage de nouvelle génération conçu pour relever les défis anti-bots et anti-CAPTCHA les plus difficiles, choisissant automatiquement la meilleure approche pour chaque demande de site, sans aucune intervention manuelle.
- Services de proxy: Accès au plus grand pool de proxy au monde (résidentiel, centre de données et mobile) pour contourner les restrictions géographiques et accroître l’anonymat, ce qui est essentiel pour les projets de scraping à grand volume ou distribués.
- API de grattage: Outils d’extraction de données web structurées à grande échelle, avec anti-blocage et résolution de CAPTCHA intégrés dans chaque requête, ainsi que des tableaux de bord intuitifs.
Avec Bright Data, vous pouvez explorer des sites Web de toute complexité, économiser des ressources d’ingénierie et garantir la conformité avec les meilleures pratiques du secteur. Commencez votre essai gratuit dès maintenant !
Aucune carte de crédit requise