fr
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski CloudScraper est un module permettant d'automatiser les requêtes HTTP et d'interagir avec les ressources web qui appliquent une validation supplémentaire du trafic, comme Cloudflare. Le proxy CloudScraper permet de gérer les connexions, de définir des paramètres réseau pour les requêtes et de maintenir un accès stable sur les sites qui inspectent les IP, les en-têtes et le comportement des clients.
CloudScraper est implémenté en Python et s'appuie sur la bibliothèque requests. Contrairement à un client HTTP de base, il peut gérer automatiquement des pages de défi avec des points de contrôle JavaScript en émulant un comportement similaire à celui d'un navigateur. Le module ajoute les en-têtes nécessaires, gère les cookies, suit les redirections et peut gérer les mécanismes de protection courants, à condition qu'ils n'impliquent pas de CAPTCHA.
Dans la pratique, les développeurs l'utilisent souvent comme une API de scraping web pour rationaliser les processus d'extraction de données tout en minimisant les interdictions d'IP.
L'utilisation du proxy CloudScraper vous permet de:
La bibliothèque fonctionne sans lancer un navigateur complet et peut, dans certains cas, remplacer des outils sans tête tels que Puppeteer ou Playwright.
Cloudflare utilise plusieurs couches de protection contre le trafic automatisé, appelées collectivement protection anti-bot. Il s'agit notamment de défis JavaScript, de redirections HTTP, de vérifications d'en-tête, de jetons de cookies et de limites basées sur l'IP. CloudScraper détecte le mécanisme de validation et applique une stratégie de traitement appropriée.
Il est multiplateforme, régulièrement mis à jour et compatible avec Windows, Linux et macOS. Il fonctionne dans des environnements virtuels et sur des serveurs sans interface graphique. Il permet également aux développeurs d'intégrer rapidement des proxys pour un meilleur contrôle d'accès et une plus grande fiabilité.
Pour commencer, vous devez avoir installé la version 3.6 de Python ou une version plus récente. L'utilisation de CloudScraper en Python est pratique car le module peut être connecté avec une seule commande et est immédiatement prêt à fonctionner dans n'importe quel environnement.
L'outil est installé via le gestionnaire de paquets standard de Python - pip, qui permet de télécharger et de mettre à jour des bibliothèques tierces à partir du dépôt officiel PyPI. Si vous utilisez un environnement virtuel, assurez-vous qu'il est activé avant l'installation.
pip install cloudscraper
Lors de l'installation, la bibliothèque intègre automatiquement les dépendances clés: requests, pyparsing, et requests-toolbelt. Si nécessaire, elles peuvent être mises à jour manuellement:
pip install --upgrade requests pyparsing requests-toolbelt
Pour vérifier que l'installation s'est déroulée correctement, vous pouvez exécuter le script de test suivant:
import cloudscraper
scraper = cloudscraper.create_scraper()
response = scraper.get("https://www.cloudflare.com")
print(response.status_code)
Si le script renvoie le code d'état 200, 301 ou 302, la connexion a réussi et une réponse a été reçue du serveur.
L'exemple ci-dessous montre comment utiliser le module pour envoyer une tentative à une page protégée, en spécifiant des paramètres d'environnement qui correspondent au navigateur Chrome sur Windows.
Ceci est nécessaire pour la génération correcte des en-têtes et pour augmenter les chances d'établir une session avec succès:
import cloudscraper
url = "https://example.com/protected"
scraper = cloudscraper.create_scraper(
browser={
'browser': 'chrome',
'platform': 'windows',
'mobile': False
}
)
response = scraper.get(url)
if response.status_code == 200:
print("Access granted.")
print(response.text[:500])
elif response.status_code == 403:
print("Request denied. Check proxy or headers.")
else:
print(f"Response code: {response.status_code}")
Sur la base de ces paramètres, le module substitue l'User-Agent approprié et d'autres en-têtes clés, ce qui permet de traiter correctement le défi et de récupérer le contenu de la page.
Si les serveurs proxy de CloudScraper sont utilisés, ils acceptent leurs paramètres sous une forme standard - en tant que dictionnaire de proxies, similaire au format utilisé par la bibliothèque de requêtes. Cela permet aux développeurs d'utiliser le même proxy pour plusieurs requêtes, ce qui garantit une gestion cohérente des IP et la stabilité de la session.
Exemple de transmission des paramètres du serveur proxy lors de l'exécution d'une requête:
proxies = {
'http': 'http://user:pass@proxy.server:port',
'https': 'http://user:pass@proxy.server:port'
}
scraper = cloudscraper.create_scraper()
response = scraper.get(url, proxies=proxies)
Les serveurs proxy de CloudScraper sont recommandés lorsque l'on travaille avec des ressources dont l'accès est limité par IP, région ou fréquence d'appel. Ils permettent de répartir la charge, de simuler le trafic de la région souhaitée et d'améliorer la stabilité de l'accès.
Malgré des mécanismes avancés pour interagir avec la protection, CloudScraper ne gère pas automatiquement les captchas. Cela s'applique aux hCaptcha interactifs et aux reCAPTCHA graphiques. La bibliothèque ne reconnaît pas leur contenu et ne peut donc pas générer de réponses à ces formulaires.
Lors de la récupération d'une page contenant un captcha, le module renvoie un code HTML contenant l'élément correspondant, par exemple:
<iframe src="https://www.google.com/recaptcha/api2/anchor?...">
Dans ce cas, deux solutions sont possibles:
captcha_data = {
'method': 'userrecaptcha',
'googlekey': 'SITE_KEY',
'pageurl': 'https://example.com',
'key': 'API_KEY_ANTICAPTCHA'
} Si un captcha apparaît même à un taux de requête modéré, il est logique de le faire:
La qualité de l'adresse IP est un facteur essentiel lorsque l'on travaille avec des ressources protégées. Des proxys fiables pour CloudScraper (résidentiel, mobile, FAI ou centre de données) aident à réduire la probabilité de captchas et à assurer une performance stable de la session. Pour connaître les différences entre les divers types de proxy et savoir comment choisir la meilleure solution pour une tâche spécifique, lisez le document suivant cet article.
Le module résout de nombreuses tâches liées au contournement de Cloudflare, mais dans certains cas, une approche différente peut être nécessaire - plus spécialisée ou adaptée à des conditions de protection spécifiques.
Voici quelques alternatives courantes:
Comparaison des solutions:
| Feature / Tool | CloudScraper | Requests+cookies | Puppeteer | Playwright |
|---|---|---|---|---|
| Complexité de la mise en œuvre | Faible | Moyen | Haut | Haut |
| Vitesse d'exécution | Haut | Haut | Moyen | Moyen |
| Résistance aux contrôles | Moyen | Faible | Haut | Maximum |
| Intégration du service Captcha | Oui (via API) | Non | Yes (via plugins/API) | Yes (via plugins/API) |
| Exécution du JavaScript | Partiel | Non | Oui | Oui |
| Consommation de ressources | Faible | Faible | Haut | Haut |
Même avec une configuration correcte, CloudScraper peut rencontrer des problèmes techniques qui sont faciles à diagnostiquer et à résoudre une fois que vous en comprenez les causes.
Lors du traitement d'une demande, un message peut apparaître indiquant un problème avec le certificat SSL. Il s'agit d'un échec de la vérification du certificat, le plus souvent dû à un certificat expiré ou à une date système incorrecte.
Comment y remédier?
scraper.get(url, verify=False)
Le code montre comment contourner temporairement l'erreur de vérification SSL en désactivant la validation du certificat. Cette méthode est utile à des fins de diagnostic, mais n'est pas sûre pour une utilisation permanente.
Le serveur rejette un appel avec l'erreur 403, bien que l'URL soit accessible dans le navigateur. Cela se produit lorsque la protection identifie les tentatives comme étant automatisées.
Comment résoudre le problème:
mport cloudscraper
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.199 Safari/537.36',
'Referer': 'https://example.com',
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate, br'
}
scraper = cloudscraper.create_scraper()
response = scraper.get("https://example.com", headers=headers)
print(response.status_code)
Note: Si User-Agent est défini manuellement via les en-têtes, le paramètre du navigateur lors de la création de la session n'est pas nécessaire - il sera écrasé.
Vous devez également vérifier le proxy utilisé et, si nécessaire, changer l'IP ou sélectionner un serveur intermédiaire dans une autre région.
Le module ne peut pas traiter la page de défi renvoyée, affichant un code HTML vide ou un message d'erreur. Raison - un type de protection non pris en charge par la bibliothèque (par exemple, hCaptcha ou Turnstile).
Comment résoudre le problème:
Si cela ne suffit pas, il est recommandé de passer à des navigateurs sans tête.
Lors de l'envoi d'un appel, des redirections répétées entre les pages sont observées. Le contenu ne se charge pas et la ligne de requête change plusieurs fois sans atteindre la page cible.
Dans ce cas, l'utilisateur est redirigé vers la page de vérification car le passage de la protection n'est pas terminé. Cela peut se produire lorsque les cookies ne sont pas sauvegardés entre les tentatives ou que la session est perdue pendant la navigation.
Marche à suivre pour résoudre le problème:
import cloudscraper
scraper = cloudscraper.create_scraper()
response1 = scraper.get("https://example.com/start")
response2 = scraper.get("https://example.com/continue")
print(response2.status_code) import time
import cloudscraper
scraper = cloudscraper.create_scraper()
response1 = scraper.get("https://example.com/start")
time.sleep(2)
response2 = scraper.get("https://example.com/continue") L'ajout d'un délai permet d'éviter les situations où le serveur classe le trafic comme automatisé en raison d'une fréquence d'appel trop élevée. Ceci est particulièrement important lors de l'utilisation du proxy CloudScraper: les délais améliorent la stabilité de la session et réduisent la probabilité de déclencher des filtres.
Certaines tentatives aboutissent tandis que d'autres échouent avec des erreurs de connexion ou des dépassements de délai. Cela indique souvent des adresses IP de mauvaise qualité.
Atténuations:
La journalisation permet de suivre le fonctionnement du module lors de la connexion via un serveur proxy (requêtes, codes d'état, types d'erreurs). En Python, cela se fait avec le module de journalisation standard, par exemple:
import logging
import cloudscraper
# basic file logging
logging.basicConfig(
filename="scraper.log",
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)
scraper = cloudscraper.create_scraper()
try:
response = scraper.get("https://example.com")
logging.info(f"Request successful, status: {response.status_code}")
except Exception as e:
logging.error(f"Request error: {e}")
Cela produit un journal des erreurs et des tentatives réussies qui vous permet de déterminer quel proxy CloudScraper a échoué et à quel moment.
Si un proxy commence à renvoyer des erreurs de type 403, timeout, SSL, etc. Rotation IP. Utiliser un pool de proxy et se rabattre sur le prochain serveur disponible en cas de défaillance, par exemple:
import cloudscraper
proxies_list = [
"http://user:pass@proxy1:port",
"http://user:pass@proxy2:port",
"http://user:pass@proxy3:port"
]
url = "https://example.com"
scraper = cloudscraper.create_scraper()
for proxy in proxies_list:
try:
response = scraper.get(url, proxies={"http": proxy, "https": proxy}, timeout=10)
if response.status_code == 200:
print("Success via:", proxy)
break
except Exception as e:
print("Error on", proxy, "-", e)
Par conséquent, les demandes sont exécutées par le premier proxy disponible du pool, ce qui permet d'éviter les adresses non fonctionnelles.
L'utilisation de CloudScraper Proxy permet d'automatiser les appels vers des sites dotés d'une protection au niveau de la connexion. Les erreurs proviennent généralement de proxys instables, de taux de tentatives élevés ou de CAPTCHA. Les solutions pratiques consistent à utiliser des adresses IP fiables, à adapter les en-têtes et à gérer la fréquence des requêtes.
CloudScraper opère au niveau de la requête HTTP et ne reproduit pas le comportement complet du navigateur. Il peut se masquer avec des en-têtes, mais il ne peut pas émuler le comportement de l'utilisateur ou les empreintes digitales du navigateur. Pour les vérifications basées sur le comportement, utilisez des outils sans tête tels que Playwright ou Puppeteer.
Oui. Isolez les sessions, utilisez un pool de proxy et gérez correctement les exceptions. Créez une session dédiée par thread. En cas d'erreur de connexion (timeout, ProxyError, 403 Forbidden, 429 Too Many Requests), alterner les proxys.
CloudScraper convient parfaitement aux projets de petite ou moyenne envergure pour lesquels une intégration rapide est importante. Pour les systèmes critiques et à forte charge, il convient d'envisager des solutions plus évolutives (par exemple, Playwright) ou une pile personnalisée basée sur un navigateur.
Commentaires: 0