Retour au blog

Collecte de données pour les ensembles de données de machine learning : comment extraire des milliers de pages sans blocages ni CAPTCHA

Nous examinons comment collecter de grands volumes de données pour des ensembles de données ML sans interdictions ni CAPTCHA : quels proxies choisir et comment organiser le processus.

📅14 mars 2026
```html

La qualité d'un modèle ML dépend directement de la qualité et du volume des données d'entraînement. Mais dès que vous commencez à collecter des milliers de pages, les sites commencent à bloquer les requêtes, à afficher des captchas et à bannir les IP. Dans cet article, nous allons examiner comment établir un pipeline fiable de collecte de données pour des datasets : quels outils utiliser, comment contourner les protections et quel type de proxy convient à chaque tâche.

Pourquoi les sites bloquent-ils la collecte de données et que faire ?

Lorsque vous lancez une collecte de données automatique, le site ne voit pas un utilisateur ordinaire, mais un flux de requêtes provenant d'une seule adresse IP. Cela déclenche immédiatement des alertes dans les systèmes de protection — Cloudflare, DataDome, PerimeterX et d'autres solutions anti-bot. Résultat : captcha, blocage temporaire ou bannissement complet de l'IP.

Le problème est particulièrement aigu pour les projets ML, car un dataset nécessite non pas 100 pages, mais des dizaines de milliers. Pour entraîner même un modèle simple de classification de texte, il faut au minimum 5 000 à 10 000 exemples. Pour la vision par ordinateur — des centaines de milliers d'images. Collecter un tel volume à partir d'une seule IP est physiquement impossible.

Les systèmes de protection analysent les paramètres suivants :

  • Fréquence des requêtes — plus de 10 à 20 requêtes par minute à partir d'une seule IP est déjà suspect.
  • User-Agent et en-têtes — les en-têtes standards des parseurs sont facilement reconnaissables.
  • Absence de cookies et de données de session — un vrai navigateur a toujours une histoire.
  • Géolocalisation IP — une IP de centre de données des Pays-Bas sur un site en langue russe semble suspecte.
  • Modèle de comportement — un humain lit une page pendant 30 à 60 secondes, un bot — 0,3 seconde.

La solution consiste en une combinaison de proxies appropriés, de rotation des IP et d'imitation du comportement d'un utilisateur réel. Examinons chaque élément plus en détail.

D'où proviennent les données pour les ML-datasets : principales sources

Avant de parler des outils, il est important de comprendre d'où proviennent les données pour entraîner les modèles. Les sources se divisent en plusieurs catégories, et chacune nécessite une approche spécifique.

Datasets ouverts (sans parsing)

La première chose à vérifier est l'existence de datasets ouverts déjà existants. Kaggle, Hugging Face Datasets, Google Dataset Search, UCI Machine Learning Repository contiennent des milliers de jeux de données prêts à l'emploi. Si votre tâche est standard (classification de texte, reconnaissance d'objets, analyse de sentiments), il est possible qu'un dataset existe déjà. Cela fait économiser des semaines de travail.

Web scraping (nécessite des proxies)

Lorsque les données prêtes ne sont pas disponibles ou ne conviennent pas à votre spécification, le scraping est nécessaire. Les tâches typiques incluent :

  • Collecte d'avis sur Wildberries, Ozon, Yandex.Market pour l'analyse des sentiments
  • Scraping de sites d'actualités pour entraîner des modèles linguistiques
  • Collecte d'images de produits pour des modèles de vision par ordinateur
  • Scraping d'offres d'emploi sur hh.ru, SuperJob pour des modèles RH
  • Collecte de données de prix à partir de places de marché pour des modèles prédictifs
  • Scraping de réseaux sociaux (VKontakte, Twitter/X) pour des tâches NLP

API de plateformes (partiellement fermées)

Certaines plateformes fournissent des API officielles — Twitter/X API, Reddit API, Google Places API. Problème : elles sont coûteuses, ont des limites et ne fournissent souvent pas le volume de données souhaité gratuitement. Par conséquent, de nombreuses équipes ML combinent les API avec le scraping.

Données synthétiques

Une approche distincte consiste à générer des données synthétiques à l'aide de GPT-4 ou d'autres LLM. Mais pour cela, des données réelles sont tout de même nécessaires comme base (exemples few-shot). Ainsi, le scraping reste l'outil de base pour la collecte de données pour la plupart des projets ML.

Outils pour la collecte de données sans codage

Bonne nouvelle : pour collecter des données pour des ML-datasets, il n'est pas nécessaire d'être développeur. Il existe des outils prêts à l'emploi no-code et low-code qui peuvent travailler avec des proxies et contourner les protections de base.

Parseurs no-code

Outil Pour quoi il convient Support des proxies Difficulté
Octoparse Sites, tableaux, pagination ✅ Oui Faible
ParseHub Sites dynamiques (JS) ✅ Oui Faible
Apify Acteurs prêts pour 100+ sites ✅ Intégré Moyenne
Bright Data IDE Sites protégés complexes ✅ Intégré Moyenne
Scrapy Cloud Scraping à grande échelle ✅ Via middleware Élevée

Pour la plupart des tâches de collecte de données ML, Octoparse ou Apify suffisent. Octoparse permet de configurer visuellement un parseur en 20 à 30 minutes : vous indiquez les éléments sur la page, configurez la pagination, insérez des proxies — et lancez la collecte. Le résultat est exporté en CSV ou JSON, qui peut être utilisé immédiatement pour l'entraînement.

Apify est particulièrement pratique si vous devez scraper des plateformes populaires : ils ont des "acteurs" prêts pour Instagram, Twitter/X, Amazon, Google Maps, LinkedIn et des dizaines d'autres sites. Vous définissez simplement les paramètres — et obtenez des données structurées.

Quel type de proxy choisir pour les ML-datasets

Le choix du type de proxy est l'un des facteurs clés de succès lors de la collecte de données. Une erreur ici peut coûter cher : soit vous serez bloqué en cours de route, soit vous paierez trop pour une puissance inutile. Examinons les trois principaux types.

Proxies résidentiels — pour les sites protégés

Les proxies résidentiels sont des adresses IP d'utilisateurs domestiques réels. Pour les systèmes anti-bot, ils sont indiscernables d'un visiteur ordinaire. Cela les rend idéaux pour le scraping de sites avec une protection sérieuse : places de marché (Wildberries, Ozon), réseaux sociaux, agrégateurs d'actualités.

Le principal avantage pour les tâches ML : vous pouvez collecter des données avec une géolocalisation. Si vous entraînez un modèle sur du contenu régional, choisissez des proxies de la région souhaitée en Russie ou dans un autre pays. Cela est particulièrement important pour les tâches de classification géolocalisée ou d'analyse des dialectes régionaux.

Proxies mobiles — pour les réseaux sociaux et les plateformes mobiles

Les proxies mobiles utilisent les IP des opérateurs mobiles (4G/5G). Ils ont le plus haut niveau de confiance auprès des plateformes — car une seule IP mobile est réellement utilisée par des centaines de personnes en même temps (tous les abonnés d'une même antenne passent par une seule IP). Cela signifie que même une collecte active de données avec une IP mobile semble normale.

Les proxies mobiles sont particulièrement nécessaires si vous collectez des données à partir de VKontakte, TikTok ou Instagram — des plateformes qui bloquent agressivement les IP de centres de données.

Proxies de centres de données — pour les sources ouvertes et la vitesse

Les proxies de centres de données sont rapides et bon marché. Ils ne sont pas liés à de vrais utilisateurs, donc ils sont plus facilement reconnus par les systèmes de protection. Mais pour de nombreuses tâches ML, cela suffit : si vous scrapez Wikipédia, des archives ouvertes, GitHub, des API publiques ou des sites sans protection sérieuse, les proxies de centres de données fonctionneront très bien et coûteront beaucoup moins cher.

Comment choisir le type de proxy pour votre tâche ML :

  • Places de marché (Wildberries, Ozon, Avito) : proxies résidentiels avec rotation
  • Réseaux sociaux (VKontakte, Instagram, TikTok) : proxies mobiles
  • Sites d'actualités, forums, Wikipédia : proxies de centres de données
  • Google Search, Yandex : proxies résidentiels ou mobiles
  • Archives ouvertes, Common Crawl : proxies de centres de données

Scénarios pratiques : texte, images, prix, avis

Examinons des scénarios spécifiques de collecte de données pour des types populaires de tâches ML — en indiquant les sources, les outils et le type de proxy nécessaire.

Scénario 1 : Dataset d'avis pour l'analyse des sentiments (NLP)

Tâche : collecter 50 000 avis avec des évaluations de Wildberries pour entraîner un modèle de classification des sentiments.

Source : Wildberries — avis sur les produits avec des évaluations de 1 à 5 étoiles (la balisage idéale est déjà en place).
Outil : Octoparse ou script Python prêt avec la bibliothèque requests.
Proxy : Résidentiels avec rotation — Wildberries bloque activement les IP de centres de données.
Vitesse de collecte : 1 requête toutes les 3 à 5 secondes avec des pauses — 50 000 avis en 2 à 3 jours.

Ce que vous obtenez : fichier CSV avec les colonnes : texte de l'avis, évaluation (1–5), catégorie de produit, date. C'est un dataset prêt à l'emploi pour l'entraînement — le balisage est déjà intégré dans les données.

Scénario 2 : Dataset d'images pour la vision par ordinateur

Tâche : collecter 100 000 images de produits de plusieurs catégories pour entraîner un modèle de classification.

Source : Ozon, Yandex.Market — photographies de produits avec catégories.
Outil : Apify (il existe des acteurs prêts pour le e-commerce) ou ParseHub.
Proxy : Proxies résidentiels avec rotation géographique en Russie.
Important : Téléchargez les images via des proxies, pas directement — les serveurs CDN peuvent également bloquer les téléchargements massifs.

Ce que vous obtenez : Dossiers avec des images, classées par catégories — une structure que ImageDataGenerator dans Keras ou DataLoader dans PyTorch accepte directement.

Scénario 3 : Corpus textuel pour un modèle linguistique

Tâche : collecter un grand corpus de textes en russe pour le fine-tuning d'un modèle linguistique sur un sujet spécifique — par exemple, des textes juridiques ou des articles médicaux.

Source : Forums thématiques, sites d'actualités, Habr, portails professionnels.
Outil : Scrapy Cloud ou Octoparse pour une collecte structurée.
Proxy : Proxies de centres de données avec rotation — la plupart des sites textuels n'ont pas de protection stricte, et la vitesse est plus importante que l'anonymat.
Vitesse : Avec des proxies de centres de données, vous pouvez faire 50 à 100 requêtes par minute et collecter un million de documents en quelques jours.

Scénario 4 : Dataset d'offres d'emploi pour un modèle RH

Tâche : collecter 200 000 offres d'emploi sur hh.ru pour entraîner un modèle de recommandation ou de classification des professions.

Source : hh.ru — ils ont une API officielle, mais avec des limites. Pour de grands volumes, le scraping est nécessaire.
Outil : Apify (il existe un acteur pour hh.ru) ou Octoparse.
Proxy : Proxies résidentiels — hh.ru est bien protégé et bloque les IP de centres de données.
Ce que vous obtenez : Données structurées : titre de l'offre, description, salaire, exigences, région, secteur — un excellent dataset pour le NLP et les systèmes de recommandation.

Comment éviter les blocages lors de la collecte de données en masse

Même avec de bons proxies, vous pouvez être banni si vous ne respectez pas les règles de base. Voici des méthodes éprouvées qui aident à collecter des données de manière stable et sans pertes.

Rotation des IP et des sessions

La règle la plus importante : n'utilisez pas une seule IP pour des milliers de requêtes. Configurez la rotation pour que chaque 10 à 50 requêtes change d'IP. La plupart des outils (Octoparse, Apify, Scrapy) prennent en charge cela par défaut lors de la connexion à un pool de proxies.

Changez également les cookies de session avec l'IP — cela imite un nouvel utilisateur, et non simplement un changement d'adresse.

Délai correct entre les requêtes

Ajoutez des délais aléatoires entre les requêtes — pas des 2 secondes fixes, mais des aléatoires de 1 à 5 secondes. Un intervalle fixe est facilement détecté comme un modèle de bot. Un aléatoire imite le comportement humain.

Pour les sites particulièrement protégés, ajoutez des pauses plus longues : toutes les 100 requêtes, faites une pause de 30 à 60 secondes. Cela réduit la vitesse, mais diminue radicalement le risque de blocage.

En-têtes de requêtes corrects

Configurez le User-Agent sur un navigateur actuel (Chrome, Firefox des dernières versions). Ajoutez des en-têtes HTTP standards : Accept-Language, Accept-Encoding, Referer. L'absence de ces en-têtes est un signe clair de bot pour la plupart des systèmes de protection.

Collecte en dehors des heures de travail

Lancez la collecte de données en masse la nuit (de 2h00 à 6h00, heure de Moscou). À ce moment-là, le trafic sur les sites est minimal, les systèmes anti-bot sont moins agressifs, et vos requêtes représentent une plus grande part de la charge — ce qui paradoxalement réduit les soupçons, car il y a moins de trafic concurrent.

Gestion des erreurs et tentatives répétées

Configurez le traitement automatique des codes de réponse :

  • 429 (Trop de requêtes) — augmentez le délai, changez d'IP, attendez 5 à 10 minutes.
  • 403 (Interdit) — IP bloquée, changez absolument de proxy.
  • 503 (Service indisponible) — surcharge temporaire du serveur, réessayez dans 1 à 2 minutes.
  • 200 avec captcha — un proxy de meilleure qualité est nécessaire (résidentiel au lieu de centre de données).

Correspondance géographique entre le proxy et le site

Utilisez des proxies du même pays que le site cible. Si vous scrapez Wildberries, choisissez des IP russes. Si vous collectez des données d'un site allemand, des proxies allemands sont nécessaires. La non-concordance de la géolocalisation est l'un des déclencheurs les plus fréquents de blocage.

Checklist : configuration du pipeline de collecte de données pour ML

Utilisez cette checklist avant de lancer toute collecte de données à grande échelle pour un dataset :

📋 Préparation

  • ☐ Vérifier l'existence d'un dataset prêt sur Kaggle / Hugging Face
  • ☐ Étudier le robots.txt du site cible
  • ☐ Déterminer le volume de données et la structure du dataset
  • ☐ Choisir l'outil de scraping (Octoparse, Apify, Scrapy)
  • ☐ Choisir le type de proxy pour la tâche (résidentiels / mobiles / centre de données)

⚙️ Configuration

  • ☐ Connecter un pool de proxies avec rotation d'IP
  • ☐ Configurer le User-Agent (Chrome/Firefox actuel)
  • ☐ Ajouter des en-têtes HTTP standards
  • ☐ Configurer des délais aléatoires (1–5 secondes)
  • ☐ Configurer le traitement des erreurs (429, 403, 503)
  • ☐ Indiquer le format d'exportation des données (CSV, JSON, JSONL)

🧪 Test

  • ☐ Lancer un test sur 100–500 enregistrements
  • ☐ Vérifier la qualité et l'intégralité des données
  • ☐ S'assurer qu'il n'y a pas de blocages sur le volume de test
  • ☐ Vérifier la vitesse de collecte et calculer le temps pour le dataset complet

🚀 Lancement et surveillance

  • ☐ Lancer pendant la nuit (02:00–06:00 MSK)
  • ☐ Configurer des notifications d'erreurs
  • ☐ Vérifier périodiquement la qualité des données collectées
  • ☐ Sauvegarder les résultats intermédiaires (checkpoint toutes les 10 000 enregistrements)

🧹 Post-traitement

  • ☐ Supprimer les doublons
  • ☐ Nettoyer les balises HTML et les caractères spéciaux des textes
  • ☐ Vérifier l'équilibre des classes (pour les tâches de classification)
  • ☐ Diviser en ensembles train/validation/test
  • ☐ Sauvegarder dans un format compatible avec votre framework ML

Conclusion

La collecte de données pour les ML-datasets n'est pas une tâche ponctuelle, mais un processus systémique. Les principales conclusions de cet article : le choix correct des proxies détermine si vous atteindrez la fin ou si vous serez bloqué. Les proxies résidentiels sont nécessaires pour les places de marché et les agrégateurs protégés, les mobiles pour les réseaux sociaux, et les centres de données pour les sources textuelles ouvertes. Des outils comme Octoparse et Apify permettent de construire un pipeline sans codage. Et le respect des règles de base (rotation des IP, délais aléatoires, en-têtes corrects) permet de collecter des centaines de milliers d'enregistrements sans pertes.

Si vous prévoyez de collecter des données à partir de places de marché, de sites d'actualités ou de portails thématiques pour entraîner des modèles ML, nous vous recommandons de commencer par des proxies résidentiels — ils offrent le niveau de confiance maximal de la part des systèmes de protection et le risque minimal de blocages même lors de la collecte de données à grande échelle.

```