Chaque moteur de recherche, chaque site de comparaison de prix, et une part croissante des systèmes d'IA reposent sur la même machine discrète : un programme qui parcourt le web lien par lien et ramène des pages. Ce programme est un crawler web, et bien que l'idée ait plusieurs décennies, il reste le moteur de la plupart des collectes de données à grande échelle sur internet.

Cet article explique ce qu'est un crawler web, la boucle qu'il exécute pour traverser le web, en quoi il diffère d'un scraper (les deux termes sont utilisés de façon interchangeable alors qu'ils ne le devraient pas), les vrais usages auxquels on destine les crawlers, les crawlers nommés que vous avez déjà rencontrés sans le savoir, et où un service géré s'inscrit quand un crawler artisanal devient un système qui doit tourner chaque jour.

Qu'est-ce qu'un crawler web ?

Un crawler web est un programme qui navigue systématiquement sur le web, téléchargeant des pages et suivant les liens qu'il y trouve pour découvrir davantage de pages. On lui donne une ou plusieurs adresses de départ, il récupère chacune, lit la page pour trouver des hyperliens, et ajoute ces liens à une liste de choses encore à visiter. Répétez cette boucle et une seule page de départ se développe en milliers, puis en millions, de pages. Les crawlers portent aussi d'autres noms : spiders, spider bots, robots, ou simplement bots.

Le web convient bien à cette approche en raison de sa construction. Les pages sont reliées par des hyperliens, de sorte que l'ensemble du web se comporte comme un immense graphe où chaque page est un nœud et chaque lien est une arête. Un crawler parcourt ce graphe. Il exploite la structure des liens pour passer de page en page sans qu'on lui indique à l'avance où se trouve chaque page. La plupart des crawlers téléchargent une copie de chaque page visitée et la stockent localement, construisant un dépôt qu'un autre système, un index de recherche par exemple, traite ensuite.

Ce dépôt est l'objectif. Un crawler fait rarement quelque chose d'astucieux avec une page sur le moment. Son travail est l'étendue : atteindre autant que possible de la cible, la sauvegarder, et la transmettre. Ce qui se passe ensuite, indexation pour la recherche, extraction de champs, entraînement d'un modèle, est une étape distincte effectuée sur les copies stockées.

Comment fonctionne un crawler web

Conceptuellement, l'algorithme est simple, ce qui explique en partie pourquoi les crawlers sont si anciens et si répandus. On peut en écrire un de base en quelques dizaines de lignes. La complexité réside dans le faire poliment, à grande échelle, et sans tourner en rond. Voici la boucle que tout crawler exécute, de la première adresse à la dernière.

URL de départ (seed URLs)

Chaque crawl commence par une ou plusieurs URL de départ : les adresses que vous donnez au crawler comme point de départ. Pour un crawl de site, ce pourrait être la page d'accueil. Pour un crawl ciblé, ce pourrait être une page de catégorie ou de sitemap. Les seeds décident ce que le crawl peut atteindre, car le crawler ne peut découvrir que les pages accessibles en suivant des liens depuis son point de départ.

La frontière (frontier)

La frontière est la liste des tâches du crawler : la file d'attente des URL qu'il a découvertes mais pas encore récupérées. Les seeds entrent en premier dans la frontière. À partir de là, chaque nouveau lien que le crawler trouve est ajouté à la frontière, et le crawler continue à extraire la prochaine URL de la file jusqu'à ce que la frontière soit vide. L'ordre dans lequel les URL quittent la frontière (en largeur, par priorité, par fraîcheur) est l'une des principales choses qui distingue un crawler jouet d'un crawler sérieux.

Récupération (fetch)

Le crawler prend une URL de la frontière et télécharge la page à cette adresse, la même requête HTTP qu'un navigateur fait quand vous visitez un lien. La réponse brute, généralement du HTML, revient et est conservée pour les deux étapes suivantes. C'est aussi là qu'un vrai crawler doit se comporter correctement : espacer les requêtes, respecter les règles robots.txt du site, et éviter de surcharger un serveur.

Analyser et extraire les liens

La page téléchargée, le crawler analyse le HTML et extrait chaque hyperlien qu'il contient. Ces liens sont le carburant du reste du crawl. C'est l'étape qui transforme une seule page en un arbre de pages, et c'est exactement ainsi qu'un crawler découvre la structure interne d'un site et les sites externes vers lesquels il pointe. Un crawler de recherche lit aussi le contenu de la page ici pour pouvoir l'indexer ensuite.

Suivre les liens et répéter

Chaque lien nouvellement découvert est renvoyé dans la frontière, et le crawler revient à l'étape de récupération avec l'URL suivante. Extraire de la frontière, récupérer, analyser, ajouter les nouveaux liens, répéter. La boucle continue jusqu'à ce que la frontière soit vide ou jusqu'à ce qu'une condition d'arrêt (limite de pages, limite de profondeur, budget de temps) soit atteinte. Sur une cible importante, un crawler peut récupérer des millions de pages par jour de cette façon.

Déduplication

Sans une étape supplémentaire, cette boucle ne se termine jamais. Le web est plein de pages qui se lient les unes aux autres, donc la même URL apparaît encore et encore. Avant d'ajouter un lien à la frontière, le crawler vérifie s'il a déjà vu ou téléchargé cette page. Si c'est le cas, le lien est ignoré. Cette déduplication est ce qui empêche le crawler de récupérer le même contenu indéfiniment et de tourner en rond, et c'est pourquoi les systèmes de crawl conservent un registre de tout ce qui a été visité.

Toute la boucle en une phrase

Remplir la frontière avec les seeds, extraire une URL, récupérer la page, analyser ses liens, ignorer ceux déjà vus, remettre les autres dans la frontière, et répéter jusqu'à ce qu'elle soit vide. Tout le reste qu'un crawler en production fait (politesse, planification, échelle) est construit sur cette boucle centrale.

La boucle de crawl. Un crawler démarre depuis des URL de départ, récupère chaque page, l'analyse pour en extraire des données et de nouveaux liens, et remet ces liens dans la frontière. Le même cycle de récupération, analyse et mise en file d'attente se répète jusqu'à ce que la frontière soit vide ou qu'une limite soit atteinte.

Crawler vs scraper : la distinction qui compte

"Crawler web" et "scraper web" sont utilisés comme s'ils désignaient le même outil. Ils sont liés mais font des travaux différents, et les confondre conduit à construire la mauvaise chose. En bref : un crawler découvre et télécharge des pages, un scraper extrait des données spécifiques d'une page.

Un crawler concerne la portée. Pointez-le vers un site et il parcourt le graphe de liens, récupérant des pages et suivant des liens pour en trouver davantage, construisant une copie large de tout ce qu'il peut atteindre. Il ne se préoccupe pas nécessairement du contenu d'une page donnée au-delà des liens dont il a besoin pour continuer. Un scraper concerne l'extraction. Donnez-lui une page et il extrait les champs que vous voulez (un prix, un titre de produit, un avis, un numéro de téléphone) et les retourne sous forme de données structurées.

Dimension Crawler web Scraper web
Tâche principale Découvrir et télécharger des pages Extraire des données spécifiques d'une page
Piloté par Les liens (les suit pour trouver plus de pages) Une page cible et les champs voulus
Sortie Un ensemble de pages ou un dépôt Des enregistrements structurés (prix, titre, avis)
Portée Large : un site entier ou le web Étroite : les données sur les pages choisies
Usage classique Indexation des moteurs de recherche Surveillance des prix, listes de prospects, jeux de données

En pratique, les deux travaillent ensemble. Un crawler parcourt un site pour découvrir chaque page produit, puis un scraper visite chacune de ces pages et extrait les champs. La plupart des vrais pipelines de données crawlent pour trouver des URL et scrapent pour les transformer en données. Un flux de prix retail en est l'exemple typique, et nous en présentons un de bout en bout dans le web scraping e-commerce.

Cas d'usage des crawlers web

Les données guident des industries entières aujourd'hui, et un crawler est la façon dont une grande partie de ces données sont collectées à grande échelle. Les médias, l'e-commerce et les entreprises retail ont tous bâti des stratégies sur des données web publiques. Voici les usages dans lesquels le crawling et le scraping apparaissent le plus souvent.

Moteurs de recherche et indexation

C'est le cas d'usage original et toujours le plus important. Les moteurs de recherche font tourner des crawlers en continu pour découvrir de nouvelles pages et revérifier les pages connues, copier le contenu, et l'alimenter à un indexeur pour qu'une requête puisse recevoir une réponse en millisecondes. Sans crawlers, les moteurs de recherche n'auraient rien à chercher. Chaque site qui veut être trouvé demande, en effet, à être bien crawlé.

Intelligence de prix et de marché

La concurrence pousse les entreprises à surveiller les prix des autres, et les acheteurs veulent toujours le prix le plus bas. Les crawlers alimentent les systèmes de comparaison et de surveillance des prix en parcourant les catalogues retail et en collectant prix, remises et niveaux de stock dans de nombreux magasins. Les mêmes données, collectées répétitivement, deviennent un flux d'intelligence de marché : suivre les mouvements des concurrents, repérer les tendances, et réagir à un changement de prix le jour où il survient plutôt que la semaine suivante.

SEO et audit de site

Les outils SEO crawlent votre propre site (et ceux de vos concurrents) comme un moteur de recherche le ferait, puis signalent ce qu'ils ont trouvé : liens cassés, titres manquants, contenu dupliqué, pages orphelines, la structure des liens internes, et quels domaines externes pointent vers vous. Parce qu'un crawler découvre les pages en suivant des liens, il fait naturellement remonter vos problèmes de crawlabilité et d'indexabilité, ce dont un audit a précisément besoin. Une structure de liens internes propre aide à la fois le crawler des moteurs de recherche et votre outil d'audit à atteindre chaque page.

Recherche et constitution de jeux de données

Les chercheurs, analystes et équipes de machine learning utilisent des crawlers pour assembler de grands jeux de données : archives d'actualités, dossiers publics, pages académiques, corpus de produits, textes multilingues. La caractéristique déterminante ici est l'étendue à travers de nombreuses sources, et un crawler est le seul moyen pratique de rassembler ce volume. La majeure partie des informations mondiales étant non structurée et la quantité de données en ligne croissant chaque année, un crawler capable d'atteindre et de stocker des pages sources est le front-end de presque tout grand projet de données, y compris les corpus derrière les modèles d'IA modernes.

Génération de prospects et intelligence concurrentielle

Les équipes commerciales et marketing crawlent des annuaires et listes publics pour trouver des prospects à grande échelle, et crawlent les sites concurrents et les plateformes d'avis pour suivre les produits, le positionnement et le sentiment des clients. Faire cela manuellement ne passe pas à l'échelle ; un crawler collecte et compile les mêmes données en une fraction du temps, laissant l'analyse aux humains.

Crawlbase Crawling API

Une fois que votre crawler doit tourner chaque jour contre de vrais sites, la partie difficile n'est plus la boucle mais de rester non-bloqué : rotation des IP, rendu des pages JavaScript, et contournement des défenses anti-bot. La Crawling API gère tout cela derrière un seul endpoint, de sorte que votre crawler envoie une URL et reçoit la page en retour au lieu d'un CAPTCHA. Pour les grands travaux asynchrones, le Crawler asynchrone met vos URL en file d'attente et envoie les résultats à votre callback à grande échelle.

Exemples de crawlers web

Vous interagissez avec les résultats des crawlers web chaque jour. Le plus célèbre est Googlebot, le crawler qui construit l'index de recherche de Google, mais chaque grand moteur de recherche fait tourner le sien. En voici quelques-uns que vous avez probablement rencontrés :

  • Googlebot, le crawler de Google et le plus actif sur le web.
  • Bingbot, le crawler derrière Bing de Microsoft.
  • DuckDuckBot, utilisé par DuckDuckGo, axé sur la confidentialité.
  • Baidu Spider, qui crawle pour Baidu, le moteur de recherche dominant en Chine.
  • Yandex Bot, le crawler de Yandex en Russie.
  • Crawlbase, un service de crawling géré qui exécute la boucle de crawl et de récupération pour vous sur n'importe quel site.

Les cinq premiers existent pour construire un index de recherche public. Le dernier est une catégorie différente : au lieu de crawler le web pour son propre index, il vous fournit l'infrastructure de crawling pour que vous puissiez collecter les pages dont vous avez besoin à vos propres fins.

Où s'inscrit le crawling géré

Écrire la boucle centrale est facile. La faire tourner de façon fiable contre des sites web modernes ne l'est pas, et c'est dans cet écart que la plupart des projets de crawlers s'arrêtent. Dès que vous pointez un crawler artisanal vers de vraies cibles, des problèmes apparaissent qui n'ont rien à voir avec l'algorithme : des pages qui ne rendent leur contenu qu'avec JavaScript, des sites qui limitent ou bloquent une seule IP après une rafale de requêtes, des CAPTCHAs, et des systèmes anti-bot réglés pour repérer le trafic automatisé. Résoudre cela signifie maintenir des pools de proxies, une flotte de navigateurs sans tête, une logique de réessai et des contournements de détection, rien de tout cela n'étant les données que vous vouliez réellement.

Un service de crawling géré réduit cette maintenance à un seul endpoint. Vous lui remettez une URL et il fait les parties ingrates : faire tourner l'IP de sortie sur un grand pool, rendre JavaScript quand la page en a besoin, réessayer en cas d'échec, et passer les défenses anti-bot, puis retourne la page. Votre crawler garde la logique qui vous est spécifique, la frontière, les règles de déduplication, ce que faire avec chaque page, et externalise la partie qui casse. Pour les cibles avec beaucoup de JavaScript en particulier, voir comment crawler des sites JavaScript, et pour rester non-bloqué, le scraping sans être bloqué.

Le modèle ci-dessous est toute l'interaction : envoyer une URL à la Crawling API et récupérer le HTML rendu en retour, avec la rotation et la gestion des blocages faites pour vous.

bash
# Send one URL, get the fetched page back.
# IP rotation and block handling happen server-side.
curl "https://api.crawlbase.com/?token=_TOKEN_&url=https%3A%2F%2Fexample.com"

Pour de très grands crawls où vous ne voulez pas maintenir la connexion ouverte par page, le Crawler asynchrone prend des lots d'URL, les récupère en arrière-plan, et poste chaque résultat à votre webhook dès qu'il est prêt, ce qui est la bonne forme pour un crawl qui tourne pendant des heures ou des jours. Pour approfondir la construction d'un crawler contre un service de crawling géré, voir l'extraction de données avec le Crawler Crawlbase.

Récapitulatif

Points clés

  • Un crawler parcourt le graphe de liens. Il récupère une page, suit ses liens pour trouver plus de pages, et stocke des copies pour une étape ultérieure comme l'indexation.
  • La boucle centrale est petite. Les URL de départ entrent dans une frontière ; récupérer, analyser les liens, dédupliquer, remettre les nouveaux, et répéter jusqu'à ce que la frontière soit vide.
  • Crawler et scraper ne sont pas identiques. Un crawler découvre et télécharge des pages ; un scraper extrait des champs spécifiques. La plupart des pipelines crawlent pour trouver des URL et scrapent pour les transformer en données.
  • Le crawling propulse de vrais systèmes. L'indexation des moteurs de recherche, l'intelligence de prix et de marché, les audits SEO, les jeux de données de recherche, et la génération de prospects tournent tous sur des pages crawlées.
  • L'échelle, pas l'algorithme, est la partie difficile. Le rendu, la rotation IP et la gestion anti-bot sont là où les crawlers artisanaux s'arrêtent, ce qu'un service de crawling géré gère pour vous.

Foire aux questions

Qu'est-ce qu'un crawler web en termes simples ?

Un crawler web est un programme qui navigue automatiquement sur le web. Vous lui donnez une page de départ, il télécharge cette page, trouve les liens qu'elle contient, et les visite aussi, répétant le processus pour découvrir et copier de plus en plus de pages. Les moteurs de recherche utilisent des crawlers pour trouver des pages à indexer.

Quelle est la différence entre un crawler web et un scraper web ?

Un crawler découvre et télécharge des pages en suivant des liens ; un scraper extrait des données spécifiques (comme des prix ou des titres) d'une page. Ils travaillent souvent ensemble : un crawler trouve les URL, et un scraper extrait les données structurées de chacune. Le crawling concerne la portée, le scraping concerne l'extraction.

Que sont les URL de départ et la frontière ?

Les URL de départ sont les adresses initiales que vous donnez à un crawler. La frontière est la file d'attente des URL que le crawler a découvertes mais pas encore récupérées. Les seeds entrent en premier dans la frontière, puis chaque nouveau lien que le crawler trouve y est ajouté, et le crawler continue à extraire des URL de la frontière jusqu'à ce qu'elle soit vide.

Pourquoi un crawler a-t-il besoin de déduplication ?

Parce que le web est plein de pages qui se lient les unes aux autres, la même URL réapparaît constamment au fil du crawl. La déduplication vérifie si une URL a déjà été vue avant de l'ajouter à la frontière, ce qui empêche le crawler de récupérer la même page indéfiniment et de tourner en rond.

Le crawling web est-il légal ?

Le crawling de pages web publiques est largement pratiqué, mais il doit être fait de façon responsable : respectez les conditions d'utilisation de chaque site et ses règles robots.txt, tenez-vous aux données publiquement disponibles, et gardez votre fréquence de requêtes raisonnable pour ne pas surcharger le serveur. Les règles varient selon les sites et les juridictions, vérifiez donc les conditions spécifiques de la cible avant un grand crawl.

Ai-je besoin de construire mon propre crawler ?

Pour un petit travail ponctuel, un crawler artisanal simple suffit. À grande échelle, la difficulté passe de la boucle de crawl au fait de rester non-bloqué : rendu JavaScript, rotation d'IP et défenses anti-bot. Un service géré comme la Crawling API ou le Crawler asynchrone gère ces parties pour que vous ne mainteniez que la logique spécifique à votre projet.

Commencer à construire

Crawlez n'importe quel site à grande échelle, sans combattre l'infrastructure.

Crawlbase gère les proxies, les empreintes et les CAPTCHA afin que votre équipe livre des pipelines de données au lieu de maintenir la plomberie de crawl. 1 000 requêtes gratuites, sans carte requise.

En libre-service · Sans appel commercial requis · Volumes de crawl entreprise disponibles