Retour au blog
Les techniques de web scraping
Anda MiuțescuLast updated on Apr 22, 202611 min read

Web scraping et web crawling : comprendre la différence

Web scraping et web crawling : comprendre la différence

Qu'est-ce qui est apparu en premier ? Le robot d'indexation ou le scraper Web ?  

Tout dépend de la distinction que vous faites entre extraction et téléchargement. Le web scraping ne nécessite pas toujours l'utilisation d'Internet. L'extraction d'informations à partir d'un système local, d'une base de données ou à l'aide d'outils de scraping peut être qualifiée de collecte de données. De leur côté, les robots d'indexation ont pour principale mission de créer une copie de tous les sites consultés en vue d'un traitement ultérieur par les moteurs de recherche, qui indexeront les pages enregistrées et rechercheront rapidement les pages non indexées.

Cet article vise à expliquer les différences et les fonctionnalités communes du web scraping, du crawling et de tout ce qui se trouve entre les deux. En bonus, nous avons inclus un guide détaillé sur la création de votre propre robot d'indexation, alors poursuivez votre lecture !

Qu'est-ce que le web scraping ?

Le web scraping, également appelé extraction de données, est le processus automatisé de collecte d'informations structurées sur Internet. Ce terme générique recouvre un large éventail de techniques et de cas d'utilisation impliquant le mode opératoire du Big Data.

À son niveau le plus élémentaire, le web scraping consiste à copier des données depuis un site web. Les utilisateurs peuvent ensuite importer les données extraites dans un tableur ou une base de données, ou utiliser un logiciel pour effectuer un traitement supplémentaire.

À qui le web scraping profite-t-il ? À toute personne ayant besoin de connaissances approfondies sur un sujet particulier. Si vous vous êtes déjà lancé dans une recherche, votre premier réflexe a sans doute été de copier-coller manuellement des données depuis leurs sources vers votre base de données locale.

Aujourd'hui, les développeurs peuvent facilement utiliser les techniques de web scraping grâce à des outils d'automatisation. Ce qui prenait auparavant des semaines à une équipe peut désormais être réalisé de manière autonome en quelques heures avec une précision totale.

Le passage du scraping manuel à l'automatisation permet de gagner du temps pour les individus. Il offre également un avantage économique aux développeurs. Les données collectées à l'aide de scrapers Web peuvent ensuite être exportées au format CSV, HTML, JSON ou XML.

Comment fonctionne le web scraping ?

Cela semble facile, n'est-ce pas ? Eh bien, créer un scraper à partir de zéro capable de faire tout cela prend beaucoup de temps. Sans compter que le bot pourrait ne pas toujours fonctionner et que vous devrez louer des proxys. Cependant, si vous souhaitez tout de même vous y essayer, nous avons quelques tutoriels qui vous aideront.

L'un des aspects les plus séduisants de l'utilisation d'un outil prêt à l'emploi est la simplicité avec laquelle vous pouvez l'intégrer à votre projet. Tout ce dont vous avez besoin, c'est d'un ensemble d'identifiants et d'une compréhension de base de la documentation de l'API.

De plus, les scrapers prêts à l'emploi peuvent offrir de nombreux autres avantages :

  • Un navigateur headless intégré pour exécuter du javascript
  • Un solveur de Captcha
  • Un pool de proxys couvrant des millions d'adresses IP
  • Un rotateur de proxys
  • Une interface simple pour personnaliser les requêtes

Notre équipe a développé une API de web scraping qui vous fera gagner beaucoup de temps grâce à une étude approfondie du secteur et à la concentration de nos efforts sur la création de la solution la plus avantageuse possible.

Qu'est-ce que le web crawling ?

Nous connaissons et utilisons tous Google, Bing ou d'autres moteurs de recherche. Leur utilisation est simple : vous leur demandez quelque chose et ils explorent tous les recoins du Web pour vous fournir une réponse. Mais, en fin de compte, Google doit son succès à son robot d'indexation Googlebot.

Les robots d'indexation sont utilisés par les moteurs de recherche pour parcourir Internet à la recherche de pages correspondant aux mots-clés que vous saisissez, puis les mémoriser via l'indexation en vue d'une utilisation ultérieure dans les résultats de recherche. Les robots d'indexation aident également les moteurs de recherche à collecter des données sur les sites web : URL, hyperliens, balises méta et contenu écrit, ainsi qu'à inspecter le code HTML.

Vous n'avez pas à craindre que le robot se retrouve pris dans une boucle sans fin en visitant les mêmes sites, car il garde une trace de ce qu'il a déjà consulté. Leur comportement est également déterminé par un ensemble de critères tels que :

  • la politique de revisite
  • la politique de sélection
  • la politique de déduplication
  • la politique de courtoisie

Les robots d'indexation sont confrontés à plusieurs obstacles, notamment l'immensité et l'évolution constante de l'Internet public et de la sélection de contenu. Des millions d'informations sont publiées chaque jour. Par conséquent, ils doivent constamment actualiser leurs index et passer au crible des millions de pages pour obtenir des résultats précis. Ils constituent néanmoins des éléments essentiels des systèmes qui analysent le contenu des sites web.

Comment fonctionne l'exploration du Web ?

Les moteurs de recherche n'ont aucun moyen de savoir quelles pages Web existent. Avant de pouvoir obtenir les pages pertinentes pour des mots-clés, les robots doivent les explorer et les indexer. Voici les 7 étapes détaillées :

Web scraping vs. exploration du Web

Le web scraping est souvent confondu avec le web crawling. Le web scraping diffère du web crawling en ce qu’il extrait et duplique les données de toute page à laquelle il accède, tandis que le web crawling parcourt et lit les pages à des fins d’indexation. Le crawling recherche les pages et le contenu, tandis que le scraping s’assure que les données vous parviennent.

Le mythe selon lequel le web scraping et le web crawling fonctionnent simultanément est un malentendu que nous souhaitons dissiper. Le web scraping est une technique permettant d'extraire des données de pages web. Qu'il s'agisse de pages explorées, de toutes les pages d'un site particulier ou de pages issues d'archives numériques, tandis que le web crawling peut générer une liste d'URL que le scraper pourra collecter. Par exemple, lorsqu'une entreprise souhaite recueillir des informations sur un site, elle explore les pages puis extrait celles qui contiennent des données utiles.

La combinaison du web crawling et du web scraping permet une plus grande automatisation et réduit les complications. Grâce au crawling, vous pouvez générer une liste de liens et l'envoyer au scraper afin qu'il sache quoi extraire. L'avantage est de collecter des données partout sur le World Wide Web sans aucune intervention humaine.

Cas d'utilisation

Le web scraping et le web crawling forment une excellente combinaison pour collecter et traiter rapidement des données qu'un être humain ne serait pas en mesure d'analyser dans le même laps de temps. Voici quelques exemples de la manière dont ce tandem peut aider les entreprises :

Protection de la marque. Vous pouvez utiliser ces outils pour repérer rapidement les contenus en ligne préjudiciables à votre marque (tels que le vol de brevets, la contrefaçon de marques ou la contrefaçon de produits) et les répertorier afin d'engager des poursuites judiciaires contre les parties responsables.

Surveillance de la marque. La surveillance de la marque est beaucoup plus simple lorsqu'on utilise un robot d'indexation. Ce dernier peut détecter les mentions de votre entreprise sur Internet et les classer par catégorie pour faciliter leur compréhension, qu'il s'agisse d'articles de presse ou de publications sur les réseaux sociaux. Ajoutez-y le web scraping pour compléter le processus et mettre la main sur ces informations.

Contrôle des prix. Les entreprises utilisent le scraping pour extraire des données sur les produits, analyser leur impact sur leur modèle de vente et élaborer la meilleure stratégie marketing et commerciale. Les robots d'indexation, quant à eux, recherchent les pages de nouveaux produits contenant des informations précieuses.

Marketing par e-mail. Le web scraping permet de parcourir des sites web, des forums et des sections de commentaires à une vitesse fulgurante et d'extraire toutes les adresses e-mail dont vous avez besoin pour votre prochaine campagne. Le crawling d'e-mails peut même parcourir les forums et les groupes de discussion, à la recherche d'adresses e-mail cachées mais visibles dans les en-têtes.

Traitement du langage naturel. Dans ce cas, les bots sont utilisés pour la recherche linguistique, où les machines aident à l'interprétation des langues naturelles utilisées par les humains.

Les crawlers et les scrapers sont utilisés pour fournir d'énormes volumes de données linguistiques à ces machines afin qu'elles acquièrent de l'expérience. Plus la machine reçoit de données, plus vite elle atteindra son niveau de compréhension idéal. Les forums, les places de marché et les blogs proposant divers types d'avis sont les sites les plus fréquents pour obtenir ce type d'informations.

Internet permettra de l'entraîner à assimiler et à reconnaître l'argot, ce qui est crucial dans le marketing actuel et vise à répondre aux besoins d'une population aux origines diverses.

Gestion d'actifs immobiliers : Dans l'immobilier, les robots d'indexation et les scrapers sont souvent utilisés pour leur capacité à analyser les données et les tendances du marché. Tous deux fournissent des informations détaillées sur des biens immobiliers ou des groupes spécifiques de bâtiments, quelle que soit la catégorie d'actifs (bureaux, industrie ou commerce de détail), ce qui aide les entreprises de location à obtenir un avantage concurrentiel. Pour mettre les choses en perspective, les robots génèrent des informations qui permettent de meilleures prévisions de marché et des pratiques de gestion immobilière optimisées.

Génération de prospects. Les publicités et les offres spéciales sont inutiles si elles n'atteignent pas les bonnes personnes. Les entreprises utilisent des robots d'indexation et des scrapers pour trouver ces personnes, que ce soit sur les réseaux sociaux ou dans les registres du commerce. Les robots peuvent rapidement trouver et collecter des coordonnées qui seront ensuite transmises à l'équipe commerciale ou marketing.

Comment créer un robot d'indexation

Maintenant que vous comprenez comment ça marche, vous vous demandez probablement comment crawler concrètement des sites web. Créer votre propre crawler permet de faire des économies et est plus simple que vous ne le pensez. C'est pourquoi nous avons préparé un guide détaillé sur les tenants et aboutissants, les méthodes à suivre et tout ce qu'il faut savoir.

Prérequis

  • Python 3.
  • Un IDE Python. Recommandation : dans ce guide, nous utiliserons Visual Studio Code, mais n'importe quel autre IDE fera l'affaire.
  • Selenium : pour extraire le code HTML de sites web dynamiques.
  • BeautifulSoup : pour analyser le document HTML.
  • ChromeDriver : un pilote Web pour configurer Selenium. Téléchargez la bonne version et notez bien le chemin d'accès où vous l'avez enregistrée !

Configurer l'environnement

Commençons par installer les bibliothèques dont nous avons besoin. Ouvrez un terminal dans l'IDE de votre choix et exécutez les commandes suivantes :

> pip install selenium
> pip install beautifulsoup4

Importons maintenant les bibliothèques que nous avons installées dans notre code Python. Nous définissons également l'URL que nous allons explorer et ajoutons la configuration pour Selenium. Créez simplement un fichier crawler.py et ajoutez-y ce qui suit :

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from bs4 import BeautifulSoup

CHROMEDRIVER_PATH = "your/path/here/chromedriver_win32/chromedriver"
BASE_URL = "https://ecoroots.us"
SECTION = "/collections/home-kitchen"
FULL_START_URL = BASE_URL + SECTION

options = Options()
options.headless = True
driver = webdriver.Chrome(CHROMEDRIVER_PATH, options=options)

Choisissez un site web et inspectez le code HTML

Nous avons choisi un site de commerce électronique vendant des produits zéro déchet, et nous allons accéder à la page de chaque produit pour en extraire le code HTML. Nous allons donc rechercher tous les liens internes sur le site de la boutique et y accéder de manière récursive. Mais avant cela, examinons la structure de la page pour nous assurer qu’il n’y a pas de problèmes d’indexabilité. Faites un clic droit n’importe où sur la page, puis sélectionnez « Inspecter l’élément », et voilà ! Le code HTML est à nous.

Créer le robot d'indexation

Nous pouvons maintenant commencer à écrire le code. Pour créer notre robot d'indexation, nous suivrons un flux récursif afin d'accéder à tous les liens que nous rencontrerons. Mais commençons par définir notre point d'entrée :

def crawl(url, filename):
    page_body = get_page_source(url, filename)
    soup = BeautifulSoup(page_body, 'html.parser')
    start_crawling(soup)

crawl(FULL_START_URL, 'ecoroots.txt')

Nous implémentons la fonction crawl, qui extraira les documents HTML via notre procédure get_page_source. Elle créera ensuite l’objet BeautifulSoup qui facilitera notre analyse syntaxique et appellera la fonction start_crawling, qui lancera la navigation sur le site web.

def get_page_source(url, filename):
    driver.get(url)
    soup = BeautifulSoup(driver.page_source, 'html.parser')
    body = soup.find('body')

    file_source = open(filename, mode='w', encoding='utf-8')
    file_source.write(str(body))
    file_source.close()

    return str(body)

Comme indiqué précédemment, la fonction get_page_source utilisera Selenium pour récupérer le contenu HTML du site web et l'écrira dans un fichier texte au niveau de la section <body>, car c'est celle qui contient tous les liens internes qui nous intéressent.

unique_links = {}

def start_crawling(soup):
    links = soup.find_all(lambda tag: is_internal_link(tag))

    for link in links:
        link_href = link.get('href')

        if not link_href in unique_links.keys() or unique_links[link_href] == 0:
            unique_links[link_href] = 0

            link_url = BASE_URL + link_href
            link_filename = link_href.replace(SECTION + '/products/', '') + '.txt'
            crawl(link_url, link_filename)

            unique_links[link_href] = 1

C'est la logique principale du crawler. Une fois qu'il aura reçu l'objet BeautifulSoup, il extraira tous les liens internes. Nous effectuons cette opération à l'aide d'une fonction lambda, avec quelques conditions que nous avons définies dans la fonction is_internal_link :

def is_internal_link(tag):
    if not tag.name == 'a': return False
    if tag.get('href') is None: return False
    if not tag.get('href').startswith(SECTION + '/products'): return False
    return True

Cela signifie que pour chaque élément HTML rencontré, nous vérifions d’abord s’il s’agit d’une balise <a>, s’il possède un attribut href, puis si la valeur de cet attribut href correspond à un lien interne.

Une fois que nous avons la liste des liens, nous parcourons chacun d'entre eux, construisons l'URL complète et extrayons le nom du produit. Avec ces nouvelles données, nous disposons d'un nouveau site web que nous transmettons à la fonction de crawl depuis notre point d'entrée, de sorte que le processus recommence depuis le début.

Mais que se passe-t-il si nous rencontrons un lien que nous avons déjà visité ? Comment éviter un cycle sans fin ? Eh bien, pour cette situation, nous disposons de la structure de données unique_links. Pour chaque lien que nous parcourons, nous vérifions s’il a déjà été consulté avant de commencer à l’explorer. S’il s’agit d’un nouveau lien, nous le marquons simplement comme visité une fois l’exploration terminée.

Une fois votre script lancé, le crawler commencera à parcourir les produits du site web. Cela peut prendre quelques minutes selon la taille du site web que vous avez choisi. À la fin, vous devriez disposer d’un ensemble de fichiers texte contenant le code HTML de chaque page visitée par votre crawler.

Conclusion

Le crawling et le scraping web sont étroitement liés et influencent mutuellement leur succès en contribuant aux informations qui sont finalement traitées. Nous espérons que cet article vous aidera à évaluer l'utilisation de ces mécanismes apparentés et les environnements dans lesquels ils peuvent être employés.

L'automatisation est l'avenir de la collecte de données. C'est pour cette seule raison que nous avons mis au point une solution qui vous évite d'avoir à écrire du code, vous permettant d'accéder rapidement au contenu web et d'éviter les blocages d'IP. Avant de mettre de l'ordre dans votre budget, pourquoi ne pas essayer notre offre d'essai gratuite comprenant des proxys résidentiels et mobiles dès le départ ? Bon scraping !

À propos de l'auteur
Anda Miuțescu, Rédacteur de contenu technique @ WebScrapingAPI
Anda MiuțescuRédacteur de contenu technique

Anda Miuțescu est rédactrice de contenu technique chez WebScrapingAPI ; elle rédige des articles clairs et utiles qui aident les développeurs à comprendre le produit et ses fonctionnalités.

Commencez à créer

Prêt à faire évoluer votre système de collecte de données ?

Rejoignez plus de 2 000 entreprises qui utilisent WebScrapingAPI pour extraire des données Web à l'échelle de l'entreprise, sans aucun coût d'infrastructure.