~/blog/web-scraping-best-practices-2026

Bonnes pratiques de web scraping en 2026 : le guide du praticien

web-scrapingbest-practicesdata-extractionarchitecture

Voici les pratiques qui comptent le plus, à force de développer et maintenir les scrapers de production de mon catalogue.

Architecture : penser en pipelines, pas en scripts

La plus grosse erreur que je constate consiste à traiter le scraping comme un processus en une seule étape. Les scrapers de production sont des pipelines de données :

  1. Découverte des URL — identifier quoi scraper (sitemaps, pages de catégorie, recherche, API)
  2. Exécution des requêtes — récupérer les données avec une stratégie de retry et de rotation adaptée
  3. Parsing — extraire les champs structurés à partir des réponses brutes
  4. Normalisation — nettoyer, valider et standardiser la sortie
  5. Stockage — pousser vers des datasets, des bases de données ou des systèmes en aval

Chaque étape doit pouvoir être testée et relancée indépendamment. Quand Sephora change la mise en page de ses pages produit, seule l’étape 3 doit être mise à jour — le reste du pipeline reste stable.

Toujours préférer les API au parsing HTML

Avant d’écrire le moindre sélecteur CSS, vérifiez si le site propose :

  • Des API publiques — des endpoints documentés qui renvoient du JSON
  • Des API privées — des appels XHR/fetch visibles dans les DevTools du navigateur
  • Des endpoints GraphQL — de plus en plus courants, souvent avec l’introspection activée
  • Du JSON embarqué — __NEXT_DATA__, window.__INITIAL_STATE__, ou du JSON-LD dans le HTML

Les réponses d’API sont structurées, versionnées, et bien plus stables que les mises en page HTML.

Stratégie de proxy : s’adapter à la protection

Tous les sites n’ont pas besoin de proxies résidentiels. Voici mon cadre de décision :

Niveau de protectionType de proxySites exemples
Aucune / basiqueDatacenterPetits sites, nombreuses API publiques
Limitation de débitDatacenter rotatifE-commerce moyen, sites de contenu
FingerprintingRésidentielGrandes marques
WAF avancéRésidentiel + empreinte TLSAkamai, Cloudflare Enterprise

L’enseignement clé : le coût des proxies augmente avec le niveau de protection. Ne payez pas pour des proxies résidentiels sur des sites qui se contentent de limiter le débit. Mon scraper Shopify utilise par défaut le proxy datacenter d’Apify, mais de nombreuses boutiques bloquent les plages datacenter, donc les proxies résidentiels sont son réglage recommandé.

La gestion de session, c’est tout

La différence entre un taux de réussite de 60% et de 99% tient généralement à la gestion de session :

  • Faites tourner les sessions, pas seulement les IP — une nouvelle IP avec les mêmes cookies paraît suspecte
  • Mettez les sessions en chauffe — visitez la page d’accueil avant d’attaquer les pages produit
  • Respectez les limites de débit — 5 requêtes concurrentes valent mieux que 50 qui se font bloquer
  • Backoff exponentiel — des tentatives à 1s, 2s, 4s, 8s, jamais de nouvelle tentative immédiate

Un scraper robuste gère les jetons de session avec rafraîchissement automatique et backoff exponentiel, et maintient des sessions persistantes qui reproduisent des motifs de navigation réalistes.

Normalisez votre sortie

Les données brutes issues du scraping sont désordonnées. Normalisez tout :

Prix

Stockez-les sous forme d’entiers (en cents, pas en dollars). $29.99 devient 2999. Cela évite les erreurs de précision en virgule flottante qui corrompent les données financières en aval. Mes scrapers e-commerce suivent cette convention, à une exception près : le scraper Sephora conserve des prix décimaux (72.0).

URLs

Stockez toujours des URL absolues, jamais de chemins relatifs. Résolvez-les au moment de l’extraction.

Dates

ISO 8601 (2026-04-01T00:00:00Z), toujours avec le fuseau horaire. Ne stockez jamais de dates formatées selon une locale.

Texte

Supprimez les espaces superflus, normalisez l’Unicode, et définissez une politique de gestion du HTML (retirer les balises ou conserver la mise en forme).

Gestion des erreurs : anticipez l’échec

Les scrapers de production échouent en permanence — la question est de savoir avec quelle élégance. Mon approche :

1Request fails (network error, timeout, 4xx/5xx)
2  → Retry with exponential backoff (up to 5 attempts)
3    → Rotate session/proxy on retry
4      → Log failure with full context if all retries exhausted
5        → Continue processing remaining URLs (don't crash the batch)

Suivez les taux de réussite par motif d’URL. Si les pages /category/* chutent soudainement sous 90% de réussite, le site a probablement changé quelque chose — vous le détecterez avant que les utilisateurs ne le signalent.

Surveillance et alertes

Un scraper sans surveillance est un scraper qui attend de tomber en panne silencieusement. Suivez :

  • Le taux de réussite par exécution et par motif d’URL
  • Le volume de sortie — une chute soudaine signale qu’un problème est survenu
  • La qualité des données — champs nuls, valeurs inattendues, violations de schéma
  • Le coût — usage des proxies, temps de calcul, stockage

Tous mes acteurs Apify exposent ces métriques. Quand le taux de réussite chute, je suis notifié en quelques heures — souvent avant même qu’un utilisateur ne s’en aperçoive.

Commencez simple, ajoutez la complexité progressivement

Chaque scraper que je construis démarre comme la solution la plus simple qui fonctionne :

  1. HTTP + Cheerio en premier (le plus rapide, le moins cher)
  2. Ajoutez le fingerprinting seulement en cas de blocage
  3. Ajoutez le rendu navigateur seulement si JavaScript est requis
  4. Ajoutez la rotation de proxy seulement en cas de limitation de débit

Un scraper qui lit des données structurées en HTTP simple n’a besoin d’aucun navigateur. Mon Universal Web Printer utilise Playwright car il doit rendre du JavaScript. Le bon outil pour la bonne tâche.


Ce ne sont pas des principes théoriques — ils sont tirés de l’exploitation de scrapers de production. Si vous avez besoin d’un scraper sur mesure construit selon ces pratiques, parlons-en.

whoami
Ingénieur web scraping. Je conçois des scrapers de production qui renvoient du JSON propre et prêt pour le RAG pour l’IA.

en lien

Comprendre la protection anti-bot : ce qui fonctionne en 2026

Une plongée technique dans les systèmes anti-bot modernes — Cloudflare, Akamai, Datadome — et les techniques de contournement légitimes utilisées en scraping de production.

Besoin de ces données en JSON propre ?

Parcourez le catalogue de scrapers, ou engagez-moi pour construire un extracteur sur mesure et un pipeline RAG pour votre source.

parcourir les outils obtenir des données sur mesure