Si vous faites du scraping sur des marketplaces, surveillez les prix des concurrents ou automatisez votre travail sur les réseaux sociaux, vous avez probablement rencontré l'erreur 429 Trop de demandes. Le site bloque vos requêtes, les considérant comme suspectes, et toute l'automatisation s'arrête. Dans cet article, nous allons examiner pourquoi ce problème se produit et comment le résoudre grâce à une configuration appropriée des proxies, à la rotation des IP et à une répartition intelligente de la charge.
Nous montrerons des solutions concrètes pour différentes tâches : scraping de Wildberries et Ozon, surveillance des concurrents, travail avec les API des réseaux sociaux, collecte de données en masse. Toutes les recommandations sont basées sur une expérience pratique et fonctionnent dans des projets réels.
Qu'est-ce que l'erreur 429 Trop de demandes et pourquoi se produit-elle
L'erreur 429 Trop de demandes est un code de réponse HTTP que le serveur renvoie lorsque vous dépassez le nombre autorisé de requêtes sur une période donnée. C'est un mécanisme de protection des sites contre la surcharge et la collecte automatisée de données.
Situations typiques où le 429 se produit :
- Scraping de marketplaces - vous collectez des prix sur Wildberries, Ozon ou Avito, en faisant des centaines de requêtes par minute. Le site détecte une activité anormale depuis une seule IP et la bloque.
- Surveillance des concurrents - collecte automatique de données sur les produits, les prix, la disponibilité. Lors de vérifications fréquentes, la limite est atteinte.
- Travail avec des API - de nombreuses API ont des restrictions strictes : par exemple, l'API Instagram autorise 200 requêtes par heure, Twitter - 300 requêtes toutes les 15 minutes.
- Inscription ou actions massives - création de comptes, envoi de messages, likes. Les plateformes détectent rapidement l'automatisation et bloquent l'IP.
Il est important de comprendre : l'erreur 429 n'est pas simplement une limitation technique. C'est un signal que le site a reconnu votre activité comme suspecte. Si vous continuez à attaquer depuis la même IP, vous risquez de recevoir un ban permanent.
Important : Certains sites renvoient 403 Forbidden au lieu de 429 ou affichent simplement un captcha. Le principe est le même : vous avez dépassé les limites et vous avez été bloqué.
Comment les sites détectent une activité suspecte
Pour contourner efficacement les blocages, il faut comprendre comment les sites vous identifient. Les systèmes de protection modernes analysent de nombreux paramètres :
1. Adresse IP et fréquence des requêtes
Le paramètre le plus évident. Si une seule IP envoie 100 requêtes par minute, alors qu'un utilisateur normal en fait 5-10, c'est clairement de l'automatisation. Les sites établissent des limites :
- Wildberries : environ 60 requêtes par minute depuis une seule IP
- Ozon : environ 30-40 requêtes par minute
- Avito : limites strictes, surtout pour les requêtes de recherche
- API Instagram : 200 requêtes par heure par application
2. User-Agent et en-têtes du navigateur
Si vous envoyez des requêtes via un script sans un User-Agent approprié, le site comprend immédiatement que ce n'est pas un véritable navigateur. Les en-têtes sont également analysés : Accept, Accept-Language, Referer. L'absence de ces en-têtes ou des valeurs atypiques - un signal d'alerte.
3. Modèles de comportement
Un utilisateur réel ne fait pas des requêtes avec une périodicité parfaite toutes les 2 secondes. Il fait défiler, clique, fait des pauses. Si votre parser fonctionne comme un métronome - c'est suspect.
4. Type d'adresse IP
De nombreuses plateformes tiennent des listes noires des IP des centres de données. Si vous utilisez des proxies bon marché avec AWS ou Google Cloud, le risque de blocage est plus élevé. Les IP résidentielles de fournisseurs réels suscitent moins de soupçons.
Rotation des proxies : le principal moyen de contourner les limites
La principale solution au problème 429 est la rotation des adresses IP. Au lieu de faire toutes les requêtes depuis une seule IP, vous répartissez la charge entre plusieurs adresses. Chaque IP effectue un petit nombre de requêtes et ne dépasse pas les limites.
Types de rotation des proxies
| Type de rotation | Comment ça fonctionne | Quand l'utiliser |
|---|---|---|
| Rotation à la demande | Chaque requête provient d'une nouvelle IP. Le fournisseur de proxy change l'adresse automatiquement. | Scraping massif, lorsque vous devez collecter beaucoup de données rapidement |
| Rotation par minuteur | L'IP change toutes les 5-30 minutes. Vous utilisez une adresse pour une série de requêtes. | Travail avec des sites nécessitant des sessions (panier, authentification) |
| Pool de proxies statiques | Vous avez une liste de 100-1000 IP. Le script choisit lui-même une adresse aléatoire pour chaque requête. | Lorsque vous avez besoin d'un contrôle total sur la rotation et la répartition de la charge |
Exemple pratique : scraping de Wildberries
Supposons que vous devez scraper les prix de 10 000 produits. Wildberries bloque après 60 requêtes par minute depuis une seule IP. Comment résoudre :
- Utilisez la rotation à la demande - chaque requête provient d'une nouvelle IP. Vous avez besoin d'environ 167 IP différentes (10 000 requêtes / 60 par minute = 167 minutes avec une IP, mais avec la rotation, vous le faites en 10-15 minutes).
- Configurez des délais - même avec la rotation, il n'est pas conseillé de faire 1000 requêtes par seconde. Optimal : 5-10 requêtes par seconde avec différentes IP.
- Ajoutez de la randomisation - les délais doivent être aléatoires : de 0,5 à 2 secondes entre les requêtes.
Pour de telles tâches, les proxies résidentiels avec rotation automatique sont idéaux - ils disposent de pools de millions d'IP et changent d'adresse pour chaque requête sans votre intervention.
Configuration des délais entre les requêtes
Même avec la rotation des proxies, il ne faut pas bombarder le site avec des requêtes à la vitesse maximale. Les systèmes de protection modernes analysent la charge totale sur le serveur et peuvent bloquer toute la plage d'IP s'ils détectent une activité similaire à un DDoS.
Règles de configuration des délais
Règle de base : imitez un utilisateur réel
- Délai minimum : 0,5-1 seconde entre les requêtes
- Recommandé : 1-3 secondes avec une variation aléatoire
- Pour des sites complexes (marketplaces, réseaux sociaux) : 2-5 secondes
- Utilisez un délai exponentiel en cas d'erreurs
Délai exponentiel (exponential backoff)
Si vous obtenez tout de même l'erreur 429, ne continuez pas à attaquer le site. Utilisez la stratégie de délai exponentiel :
- Première tentative échouée → attendez 1 seconde
- Deuxième tentative échouée → attendez 2 secondes
- Troisième tentative échouée → attendez 4 secondes
- Quatrième tentative échouée → attendez 8 secondes
- Et ainsi de suite, jusqu'à un maximum (par exemple, 60 secondes)
Cette stratégie donne au serveur le temps de "refroidir" et réduit la probabilité de ban permanent. De nombreuses API (Google, Twitter) recommandent précisément cette approche dans leur documentation.
Exemple de configuration pour différentes tâches
| Tâche | Délai entre les requêtes | Commentaire |
|---|---|---|
| Scraping de Wildberries | 1-3 secondes | Avec la rotation des proxies, cela peut être accéléré à 0,5-1 sec |
| Scraping de Ozon | 2-4 secondes | Ozon est plus sensible à l'automatisation |
| API Instagram | 18 secondes | Limite de 200 requêtes/heure = 1 requête toutes les 18 sec |
| Scraping de Google Search | 5-10 secondes | Google ban rapidement, des pauses longues sont nécessaires |
| Surveillance d'Avito | 3-6 secondes | Protection stricte, surtout pour la recherche |
User-Agent et en-têtes : imiter un véritable navigateur
La rotation des proxies et les délais résolvent le problème de la fréquence des requêtes, mais cela ne suffit pas. Les sites analysent comment vous envoyez vos requêtes. Si les en-têtes semblent suspects - le blocage est inévitable.
En-têtes obligatoires pour imiter un navigateur
L'ensemble minimal d'en-têtes qui doit être présent dans chaque requête :
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: fr-FR,fr;q=0.9,en-US;q=0.8,en;q=0.7
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Cache-Control: max-age=0
Rotation de l'User-Agent
N'utilisez pas le même User-Agent pour toutes les requêtes. Créez une liste de 10-20 versions de navigateurs actuelles et changez-les aléatoirement :
- Chrome (Windows, macOS, Linux)
- Firefox (différentes versions)
- Safari (macOS, iOS)
- Edge (Windows)
Erreur fréquente : Utilisation d'User-Agent obsolètes (par exemple, Chrome 90 en 2024) ou d'User-Agent mobiles pour des sites de bureau. Cela révèle immédiatement l'automatisation.
Referer et Origin
De nombreux sites vérifient d'où provient la requête. Si vous scrapez une page produit, l'en-tête Referer doit contenir un lien vers le catalogue ou la recherche. Si vous scrapez une API - l'Origin doit être correct.
Exemple pour le scraping de Wildberries :
Referer: https://www.wildberries.ru/catalog/0/search.aspx?search=ordinateur portable
Origin: https://www.wildberries.ru
Quels proxies choisir pour contourner le 429
Le choix du type de proxy est crucial. Les proxies bon marché des centres de données sont souvent déjà sur des listes noires, et vous recevrez un 429 même avec une faible fréquence de requêtes.
Comparaison des types de proxies pour contourner les limites
| Type de proxy | Avantages | Inconvénients | Pour quelles tâches |
|---|---|---|---|
| Centres de données | Haute vitesse, prix bas | Souvent bannis, facilement détectables | Sites simples sans protection |
| Résidentiels | IP réelles de fournisseurs, difficile à détecter, grand pool d'adresses | Plus cher, parfois plus lent | Marketplaces, réseaux sociaux, sites complexes |
| Mobiles | IP des opérateurs mobiles, confiance maximale | Chers, pool limité | Instagram, TikTok, Facebook Ads |
Recommandations pour le choix
Pour le scraping de marketplaces (Wildberries, Ozon, Avito) : Utilisez des proxies résidentiels avec rotation à la demande. Le pool doit être grand - au moins 10 000 IP. Cela garantit que chaque IP effectue peu de requêtes et ne tombe pas sous les limites.
Pour travailler avec les API des réseaux sociaux : Les proxies mobiles sont le meilleur choix. Instagram et TikTok font plus confiance aux IP des opérateurs mobiles qu'aux résidentielles. Une IP mobile peut gérer 5-10 comptes sans problème.
Pour surveiller les prix des concurrents : Proxies résidentiels avec rotation par minuteur (toutes les 10-15 minutes). Cela permet de faire une série de requêtes depuis une IP, en conservant la session, mais sans dépasser les limites.
Pour des tâches simples (scraping de nouvelles, blogs) : Les proxies des centres de données peuvent convenir si le site n'a pas de protection sérieuse. Mais soyez prêt à des blocages périodiques.
Cas réels : scraping de marketplaces et API
Cas 1 : Surveillance des prix sur Wildberries (10 000 produits quotidiennement)
Tâche : Un vendeur sur la marketplace suit les prix des concurrents sur 10 000 articles. Il doit collecter des données 2 fois par jour.
Problème : En utilisant une seule IP, il recevait un ban après 50-60 requêtes. Le scraping de 10 000 produits prenait plusieurs heures avec des blocages constants.
Solution :
- Connectez des proxies résidentiels avec un pool de 50 000 IP et rotation à la demande
- Configurez des délais aléatoires de 0,5 à 2 secondes entre les requêtes
- Ajoutez une rotation de User-Agent (20 variantes de Chrome et Firefox)
- Configurez les en-têtes Referer et Accept correctement
Résultat : Le scraping de 10 000 produits prend 15-20 minutes sans un seul blocage. Chaque IP effectue au maximum 1-2 requêtes, ce qui est impossible à détecter comme de l'automatisation.
Cas 2 : Automatisation d'Instagram (50 comptes clients)
Tâche : Une agence SMM gère 50 comptes clients sur Instagram. Elle doit publier du contenu, répondre aux commentaires, collecter des statistiques.
Problème : L'API Instagram a une limite de 200 requêtes par heure par application. En travaillant avec 50 comptes, les limites étaient atteintes en 10 minutes.
Solution :
- Création de 10 applications Instagram API différentes (5 comptes par application)
- Chaque application utilise un proxy mobile séparé
- Configuration d'un délai de 18 secondes entre les requêtes (200 requêtes/heure = 1 requête toutes les 18 sec)
- Ajout d'un délai exponentiel lors de la réception de 429
Résultat : Tous les 50 comptes fonctionnent de manière stable. Les erreurs 429 se produisent très rarement (1-2 fois par semaine) et sont traitées automatiquement par des tentatives répétées.
Cas 3 : Scraping d'Avito (annonces à travers la Russie)
Tâche : Un agrégateur immobilier collecte des annonces sur Avito dans toutes les villes de Russie pour sa base de données.
Problème : Avito a l'une des protections les plus strictes parmi les sites russes. Les blocages commençaient après 10-15 requêtes même depuis différentes IP des centres de données.
Solution :
- Passage à des proxies résidentiels avec géolocalisation (IP de la même ville que le scraping)
- Augmentation des délais à 3-5 secondes entre les requêtes
- Utilisation d'un navigateur sans tête (Puppeteer) au lieu de simples requêtes HTTP
- Émulation des actions de l'utilisateur : défilement, clics, mouvements de souris
Résultat : Scraping réussi de plus de 50 000 annonces par jour. Les blocages ont diminué de 95 %. Les 5 % restants sont traités par des tentatives répétées avec une nouvelle IP.
Cas 4 : Surveillance des API des concurrents (e-commerce)
Tâche : Un magasin en ligne suit la disponibilité des produits et les prix de 20 concurrents via leurs API.
Problème : La plupart des API des concurrents ont des limites publiques (100-500 requêtes par heure). En cas de dépassement, un 429 est renvoyé.
Solution :
- Création d'une file de requêtes avec des priorités (les produits les plus importants sont vérifiés plus souvent)
- Suivi des limites via les en-têtes de réponse (X-RateLimit-Remaining)
- Pause automatique en atteignant 80 % de la limite
- Utilisation de plusieurs clés API pour chaque concurrent (là où c'est possible)
Résultat : Le système répartit automatiquement les requêtes de manière à ne jamais dépasser les limites. Les données sont mises à jour avec la fréquence maximale possible sans blocages.
Leçon générale de tous les cas :
L'erreur 429 se résout de manière complexe : rotation des proxies + délais appropriés + imitation d'un comportement réel. Il ne faut pas se fier à une seule méthode. Même avec un million d'IP, vous serez bloqué si vous faites 1000 requêtes par seconde avec des en-têtes suspects.
Conclusion
L'erreur 429 Trop de demandes est un mécanisme de protection des sites qui peut être contourné avec la bonne approche. Les principaux principes pour résoudre le problème :
- Rotation des adresses IP - répartissez la charge entre de nombreux proxies, afin que chaque adresse effectue un minimum de requêtes
- Délais appropriés - imitez un utilisateur réel avec des pauses aléatoires de 1 à 5 secondes
- En-têtes corrects - utilisez des User-Agent actuels et un ensemble complet d'en-têtes de navigateur
- Choix du type de proxy - pour des sites complexes (marketplaces, réseaux sociaux), utilisez des proxies résidentiels ou mobiles
- Gestion des erreurs - appliquez un délai exponentiel en cas de 429, ne réattaquez pas le site
N'oubliez pas : l'objectif n'est pas de tromper la protection à tout prix, mais de faire en sorte que votre automatisation semble aussi naturelle que possible. Les systèmes de protection modernes deviennent de plus en plus intelligents, et la force brute cesse de fonctionner.
Si vous envisagez de travailler avec le scraping de marketplaces, la surveillance des concurrents ou l'automatisation sur les réseaux sociaux, nous vous recommandons d'essayer des proxies résidentiels - ils offrent un grand pool d'adresses IP, une rotation automatique et un risque minimal de blocages. Pour travailler avec Instagram, TikTok et d'autres plateformes mobiles, les proxies mobiles avec des IP de véritables opérateurs de télécommunications sont plus adaptés.