Web scrapping, comment extraire les données d’un site

Le web scraping est le processus d'extraction de données à partir d'un site web. Lorsqu'une URL est chargée, le contenu du site devient accessible, et l'objectif du scraping est de récupérer uniquement les données pertinentes pour un besoin spécifique, plutôt que l'ensemble du contenu.

L'importance des données

Les données jouent un rôle crucial dans la création de nouvelles opportunités commerciales et la prise de décisions stratégiques. Depuis une quinzaine d'années, une véritable bataille s'est engagée autour de la collecte et de l'exploitation des données. L'accès à ces données est devenu un enjeu majeur pour les entreprises cherchant à optimiser leurs opérations.

Exemples d'utilisation

Un exemple bien connu est Google, dont le moteur de recherche repose sur le scraping. Google parcourt le web, analyse le contenu des sites, puis l'indexe en fonction de la pertinence des informations recueillies. Cette catégorisation permet ensuite d'afficher les pages les plus pertinentes en fonction des recherches des utilisateurs, ce qui explique en partie la valeur colossale de Google.

Un autre exemple concerne les tendances liées à l'intelligence artificielle, notamment les modèles de langage (LLM). Reddit, une plateforme de médias sociaux, est un cas d'école : plutôt que de laisser Google scraper son contenu, Reddit a signé un accord commercial pour fournir ses données, permettant ainsi à des LLM d’être entraînés sur ces données précises.

Types de données accessibles

Le principe est simple : si les données sont visibles sur votre écran, elles peuvent être récupérées. Cela inclut le texte, les images, les URL, les prix, etc. L'objectif n'est pas de pirater une page, mais de récupérer des données accessibles publiquement. Certaines données peuvent être protégées par des identifiants, ce qui nécessite de s'authentifier avant de scraper.

Les usages

Les raisons de recourir au web scraping varient selon les besoins de l'entreprise. Voici quatre utilisations courantes :

  1. Surveillance des prix : permet de surveiller les prix des concurrents ou de choisir des produits.
  2. Étude de marché et veille : extraction de données pour des analyses de marché, souvent utilisée par les grandes entreprises.
  3. Agrégation et recyclage de contenu : collecte de contenu provenant de flux RSS, blogs ou forums pour effectuer de la veille ou réutiliser du contenu reformulé.
  4. Analyse concurrentielle : observation des concurrents pour évaluer si les stratégies employées sont alignées ou si des ajustements sont nécessaires.

Exemple concret : scraping sur Amazon

Prenons un exemple concret : le scraping sur Amazon. On peut extraire des informations comme le nom du produit, le nombre d'avis, les notes, les prix, et même les images. Ces données peuvent ensuite être utilisées pour ajuster son propre contenu ou sa stratégie.

Les défis

Un des principaux défis du web scraping réside dans la nature brute des données extraites. Par exemple, les informations telles que le prix ou la description sur Amazon sont souvent enfouies dans le code HTML. Il est donc nécessaire de filtrer ces données pour les rendre utilisables, par exemple en les formatant sous forme de tableurs ou d'autres formats structurés.

Les outils

Pour filtrer les données HTML et extraire les informations pertinentes, on utilise des outils appelés web scrapers ou crawlers. Ces outils parcourent les pages web, identifient et extraient les données souhaitées, comme les balises H1 ou H4, tout en ignorant les éléments non pertinents.

Processus

Le processus de web scraping commence par la collecte d'URL de sites ou de pages spécifiques. Un outil de scraping est alors utilisé pour parcourir ces pages et extraire les données pertinentes. Le résultat final est un fichier organisé, généralement sous forme de tableur, où chaque colonne correspond à une donnée spécifique (titre, prix, image, description, etc.).

Formats de sortie

Les données extraites peuvent être exportées dans différents formats en fonction de la quantité de données et des besoins :

  • CSV : pour des données en texte simple, séparées par des virgules.
  • Excel : pour de plus petites quantités de données.
  • JSON ou SQL : pour des scrappings de plus grande ampleur, adaptés à une lecture machine ou à une intégration directe dans une base de données.

Cas d'usage : Amélioration de profil sur la plateforme Malt

Contexte : Lorsqu'on utilise une plateforme comme Malt pour proposer ses services en tant que prestataire, il est essentiel de comprendre comment son profil est perçu et classé. Malt fournit des statistiques intéressantes, comme le nombre de visites sur votre profil et les catégories dans lesquelles vous êtes classé. Cependant, ces données ne sont disponibles que pour un mois donné, et les informations du mois précédent ne sont plus accessibles. Cette limitation peut poser problème lorsqu'on souhaite analyser les tendances sur plusieurs mois pour optimiser son profil.

Problème : Les données fournies par Malt sont cruciales pour évaluer et améliorer son profil, mais elles sont effacées chaque mois. Pour optimiser son positionnement et augmenter les demandes de missions, il est nécessaire de consolider ces données sur plusieurs mois. Sans cette consolidation, il est difficile de suivre sa progression ou de détecter des niches spécifiques où l'on pourrait mieux se positionner.

Solution : La solution consiste à automatiser la collecte et l'agrégation des données mensuelles de votre profil Malt afin de pouvoir les analyser et les utiliser pour améliorer votre positionnement sur la plateforme.

Étapes de mise en œuvre :

  1. Extraction des données avec UiPath :some text
    • La première étape consiste à se connecter à votre profil Malt à l'aide d'UiPath, un outil RPA (Robotic Process Automation). UiPath est idéal pour automatiser la navigation sur des pages complexes comme celle de Malt, où il faut cliquer sur plusieurs boutons et se connecter avec des identifiants.
    • UiPath crée un navigateur temporaire, navigue sur le site de Malt, récupère les statistiques mensuelles, et télécharge le fichier CSV contenant les données pertinentes.
  2. Orchestration et traitement des données avec n8n :some text
    • Une fois le fichier CSV récupéré, il est envoyé à un orchestrateur de données comme n8n. Cet outil permet de traiter les données, de les découper en lignes individuelles, et de préparer les informations pour leur stockage.
    • n8n va extraire des informations clés telles que le nombre de visites, les mots-clés utilisés pour trouver votre profil, et les catégories dans lesquelles vous êtes classé.
  3. Stockage et analyse des données avec Google Sheets :some text
    • Les données traitées sont ensuite stockées dans un tableur Google Sheets. Chaque mois, les nouvelles données sont ajoutées, ce qui permet de suivre l'évolution de votre profil au fil du temps.
    • Avec ces informations consolidées, vous pouvez analyser les tendances, identifier les niches où vous pourriez vous positionner, et ajuster les mots-clés de votre profil pour maximiser les demandes de missions.

Résultat attendu : Grâce à cette solution, vous aurez une vision claire de l'évolution de votre profil Malt mois après mois. Vous pourrez identifier les domaines où vous progressez, ceux où vous régressez, et ajuster votre stratégie en conséquence pour améliorer votre visibilité et attirer plus de clients. Cette approche vous permettra d'optimiser votre positionnement sur la plateforme, de choisir les mots-clés les plus efficaces, et d'augmenter vos chances de recevoir des propositions de missions.

Cas d'usage : Gestion de l'e-commerce et choix des meilleurs produits

Contexte : Dans le cadre d'un site de commerce en ligne, l'un des défis majeurs est de sélectionner des "produits gagnants" – des articles qui se vendent facilement et génèrent une marge bénéficiaire importante. Pour ce faire, il est crucial de se baser sur des données fiables et pertinentes afin de ne pas choisir des produits au hasard.

Problème : Trouver des produits gagnants nécessite une analyse approfondie des tendances du marché. Amazon, étant l'une des plus grandes plateformes de vente en ligne, regroupe par catégorie les articles les plus vendus. Cependant, pour utiliser ces informations à bon escient, il est nécessaire d'extraire et d'organiser ces données de manière automatisée pour les intégrer à une stratégie de sélection de produits.

Solution : La solution consiste à scraper les pages de produits populaires sur Amazon afin de construire une base de données regroupant les produits les plus performants. Cette base servira à identifier des produits similaires à intégrer dans votre e-commerce, basant ainsi vos décisions sur des données éprouvées plutôt que sur des choix aléatoires.

Étapes de mise en œuvre :

  1. Scraping des données avec Apify :some text
    • Pour extraire les informations des pages Amazon, nous utiliserons Apify, une librairie spécialisée qui propose des API dédiées pour scraper des données à partir de plateformes comme Amazon, YouTube ou LinkedIn. L'avantage d'Apify est que la maintenance est assurée par les développeurs, ce qui vous épargne le travail de mise à jour en cas de changement sur Amazon.
    • Nous commencerons par stocker les URL des pages de produits les plus vendus sur Amazon dans un Google Sheets. Apify récupérera ces URL, scrappera les données telles que l'URL du produit, les images, la description, le prix, etc., et renverra ces informations dans le même Google Sheets.
  2. Orchestration des processus avec Make (Integromat) :some text
    • Pour gérer l'ensemble du processus, nous utiliserons Make (anciennement Integromat), un outil d'orchestration de données. Make reliera Google Sheets à Apify, automatisant ainsi le scraping des données dès qu'une nouvelle URL est ajoutée.
    • Les données collectées seront stockées dans Google Sheets, sous un format structuré, permettant une analyse facile et rapide.

Résultat attendu : À la fin de ce processus, vous disposerez d'une base de données actualisée des produits les plus vendus sur Amazon. Cela vous permettra de faire des choix de produits plus éclairés pour votre e-commerce, en vous basant sur des tendances de marché avérées plutôt que sur des intuitions. Ce système vous aidera à optimiser votre offre et à maximiser vos marges bénéficiaires en sélectionnant des produits qui ont déjà prouvé leur succès sur une plateforme majeure.

Cas d'usage : Prospection commerciale pour un bureau d'études

Contexte : Un bureau d'études spécialisé dans l'amélioration de la qualité de l'air dans les locaux des entreprises cherche à identifier de potentiels clients. Ces entreprises cibles sont celles qui accordent une importance particulière au bien-être de leurs employés et à l'environnement de travail, et qui pourraient être intéressées par des solutions pour améliorer la qualité de l'air. Un classement pertinent pour cette prospection est le "Great Place to Work", qui répertorie les entreprises où il fait bon travailler.

Problème : Pour démarcher efficacement ces entreprises, il est nécessaire d'extraire les informations pertinentes depuis le classement "Great Place to Work", telles que le nom de l'entreprise et son URL LinkedIn. Ces données permettront aux commerciaux de cibler les entreprises les plus susceptibles de devenir clientes, en facilitant l'accès aux informations nécessaires pour établir un premier contact.

Solution : La solution consiste à scraper les données du classement des entreprises, puis à utiliser ces informations pour rechercher et extraire les URL LinkedIn des entreprises répertoriées. Cela permettra de générer une liste de prospects qualifiés, prête à être utilisée par l'équipe commerciale.

Étapes de mise en œuvre :

  1. Scraping du classement des entreprises :some text
    • Le processus commence par l'insertion de l'URL de la page du classement "Great Place to Work" dans un fichier Google Sheets. Cette URL servira de point de départ pour le scraping.
    • Nous utiliserons ensuite un orchestrateur de données comme Make (anciennement Integromat) pour télécharger la page HTML du classement. Cet outil permettra de parcourir et de filtrer les données contenues dans la page.
    • Le but ici est d'identifier les classes ou les ID dans le code HTML qui contiennent les informations pertinentes, telles que le nom des entreprises, leur secteur d'activité, et potentiellement d'autres informations comme l'URL du site web.
  2. Extraction des URL LinkedIn des entreprises :some text
    • Une fois les noms des entreprises extraits, la prochaine étape consiste à récupérer les URL LinkedIn correspondantes. Pour ce faire, nous utiliserons un scraper spécialisé dans les réseaux sociaux, tel que PhantomBuster.
    • PhantomBuster prendra chaque nom d'entreprise listé dans le Google Sheets et effectuera une recherche sur LinkedIn pour trouver l'URL de la page LinkedIn de l'entreprise. Il ajoutera ensuite cette URL au fichier Google Sheets.
  3. Génération de la liste de prospects :some text
    • À la fin du processus, nous obtiendrons une liste structurée des entreprises avec leurs URL LinkedIn, prête à être utilisée par les commerciaux.
    • Cette liste pourrait également être enrichie avec d'autres données, comme les noms et les postes des employés clés (par exemple, les office managers chargés de la gestion des locaux), pour affiner davantage la prospection.

Résultat attendu : Le résultat de ce processus sera une liste de prospects qualifiés, comprenant les noms des entreprises ciblées, leur secteur d'activité et leur URL LinkedIn. Cette liste permettra aux commerciaux de cibler efficacement les entreprises les plus susceptibles d'être intéressées par les solutions d'amélioration de la qualité de l'air, facilitant ainsi le processus de prospection et augmentant les chances de succès des démarches commerciales.

Cas d'usage : Génération de contenu pour une application mobile

Contexte : Un entrepreneur souhaite lancer une application mobile de type jeu, qui propose des questions à poser à ses amis ou à son partenaire dans divers contextes, comme lors de soirées. L'objectif est de générer ce contenu de manière automatisée, sans passer par une création manuelle fastidieuse.

Problème : Plutôt que de rédiger manuellement les questions pour l'application, l'entrepreneur souhaite récupérer les meilleures questions déjà disponibles en ligne. Reddit, un forum où les utilisateurs partagent des questions originales à poser, constitue une source riche en contenu pertinent. Cependant, scraper Reddit manuellement est complexe en raison des protections mises en place par la plateforme pour protéger ses données.

Solution : La solution consiste à automatiser la collecte des questions à partir d'un forum Reddit dédié, en utilisant un scraper spécialisé. Ce scraper permettra de filtrer les questions les plus populaires, basées sur le nombre de votes ou de commentaires, et de les intégrer directement dans la base de données de l'application.

Étapes de mise en œuvre :

  1. Scraping des questions sur Reddit :some text
    • Le processus commence par l'identification de l'URL du forum Reddit qui contient les questions pertinentes. Cette URL sera le point de départ du scraping.
    • Pour éviter de développer un scraper maison, qui serait complexe à maintenir, nous utiliserons une bibliothèque d'API nommée Apify. Apify propose un scraper spécialement conçu pour extraire les posts de forums comme Reddit.
  2. Extraction et filtrage des questions :some text
    • Apify prendra l'URL du forum Reddit et extraira les questions posées par les utilisateurs. Ces questions seront ensuite filtrées en fonction de critères définis, comme le nombre de votes ou de commentaires, afin de ne conserver que les plus pertinentes pour l'application.
    • Le résultat du scraping sera stocké dans un fichier Google Sheets, qui servira de base de données temporaire pour les questions.
  3. Orchestration du processus :some text
    • L'ensemble du processus sera orchestré à l'aide d'un outil comme Make (anciennement Integromat). Cet outil permettra d'automatiser le flux des données, depuis l'extraction des questions jusqu'à leur stockage dans Google Sheets.
    • Make prendra en charge l'exécution périodique du scraping, en envoyant l'URL du forum à Apify, récupérant les données extraites, et les insérant dans Google Sheets.

Résultat attendu : À la fin du processus, l'entrepreneur disposera d'une liste de questions filtrées et classées selon leur popularité, prêtes à être intégrées dans l'application mobile. Cela permettra de proposer aux utilisateurs des questions originales et engageantes, tout en économisant du temps et des ressources sur la génération manuelle de contenu.

Exploration des outils de scraping : entre services payants et frameworks pour développeurs

Au cours de cet article, nous avons exploré divers cas pratiques qui démontrent l'efficacité des outils de scraping payants. Ces outils sont particulièrement utiles pour les utilisateurs non développeurs, leur permettant de réaliser des tâches de scraping rapidement et efficacement, sans nécessiter de compétences techniques poussées.

Cependant, si vous êtes développeur et que vous gérez de grandes quantités de données, l'utilisation de frameworks de programmation dédiés peut s'avérer beaucoup plus intéressante. Parmi les options disponibles, on retrouve des frameworks comme Scrapy en Python, qui est conçu spécifiquement pour le scraping de masse. Scrapy est très flexible et puissant, offrant un contrôle total sur les données extraites.

D'autres outils comme Selenium et Puppeteer simulent des navigateurs web, vous permettant d'automatiser la navigation, d'interagir avec les éléments de la page, et d'extraire les données nécessaires. Ces frameworks sont particulièrement utiles pour naviguer sur des sites complexes nécessitant des interactions multiples.

Les avantages et les défis du scraping avec des frameworks :

Ces outils offrent une flexibilité inégalée, mais ils présentent aussi des défis importants, notamment en termes de technicité. Le scraping, même avec des frameworks sophistiqués, n’est pas sans barrières, qui sont mises en place par les sites web pour protéger leurs données.

  1. Connexion aux sites protégés : La plupart des sites web requièrent une authentification (identifiant et mot de passe). Vous devez donc être en mesure de simuler cette authentification pour pouvoir scraper les données. C'est la première ligne de défense contre le scraping automatisé.
  2. CAPTCHA : Pour différencier un utilisateur humain d'un bot, les sites web utilisent des CAPTCHA. Ces tests, sous forme d'images ou de textes à reconnaître, sont conçus pour bloquer les scripts automatiques. Contourner un CAPTCHA nécessite des techniques plus avancées, comme l’utilisation de services de reconnaissance d’image ou de solutions tierces.
  3. Blocage d'IP : Si un site détecte un comportement suspect (comme des requêtes fréquentes ou une navigation trop rapide), il peut bannir votre adresse IP. Une adresse IP bannie rend impossible toute interaction ultérieure avec le site depuis cette adresse.
  4. Changements de structure de site : Les sites web évoluent en permanence. Un changement dans la structure HTML d’une page peut rendre un scraper obsolète du jour au lendemain. Si les sélecteurs CSS que vous utilisez pour extraire des données ne correspondent plus, votre script échouera.

L’utilisation des proxies pour contourner les limitations :

Pour les projets de scraping complexes, une technologie couramment utilisée est celle des proxies. Les proxies permettent de masquer votre véritable adresse IP, mais leur utilité va bien au-delà. En utilisant des proxies, vous pouvez faire tourner votre scraper avec plusieurs adresses IP, ce qui rend beaucoup plus difficile pour un site de détecter et de bloquer votre activité.

Par exemple, vous pouvez scraper une partie d’un site avec une IP localisée à Paris, une autre partie avec une IP à Marseille, et ainsi de suite. Cela réduit les risques de détection et vous permet d'extraire de grandes quantités de données sans être repéré.

La légalité du scraping : entre zone grise et risques juridiques

Le scraping est une pratique courante sur le web, mais elle se situe souvent dans une zone grise légale. Bien que les données soient librement accessibles en ligne, la plupart des propriétaires de sites n'apprécient pas que leurs informations soient collectées de cette manière. En effet, les termes de service de nombreux sites stipulent explicitement que le scraping est interdit, ce qui peut poser des problèmes pour ceux qui utilisent cette méthode sans autorisation.

Scraping vs hacking : comprendre les différences

Il est important de souligner que le scraping n'est pas du hacking. Contrairement au hacking, qui implique de forcer l'accès à un site ou une base de données, le scraping consiste simplement à récupérer des données accessibles à tout utilisateur. Cependant, même si le scraping n'est pas illégal en soi, il peut devenir problématique lorsque les pratiques vont à l'encontre des conditions d'utilisation du site.

Par ailleurs, les données collectées via le scraping sont souvent vendues par des data brokers. Ces courtiers en données compilent des informations sur divers profils d'utilisateurs et les revendent légalement à des entreprises pour des usages tels que le ciblage publicitaire. À l'inverse, les données obtenues via des hacks sont illégales et se retrouvent principalement sur le dark web, où elles sont vendues à des fins malveillantes, comme le phishing.

Cas pratiques et conséquences légales

Plusieurs affaires médiatisées ont montré les risques juridiques liés au scraping, en particulier lorsque les pratiques de scraping violent les conditions d’utilisation ou s'apparentent à du vol de données.

  • L'affaire Ledger : Ledger, une entreprise vendant des clés de stockage de cryptomonnaies, a été victime d'un hack où les données de ses clients (noms, adresses, numéros de téléphone) ont été volées. Ces informations ont ensuite été utilisées pour des campagnes de phishing, trompant les clients en leur demandant de fournir leurs identifiants sous prétexte de mises à jour de sécurité.
  • Booking.com vs Ryanair : Booking.com a été condamné pour avoir illégalement récupéré des informations sur les billets d’avion vendus par Ryanair. Booking revendait ensuite ces billets sans autorisation, une pratique jugée frauduleuse par les tribunaux.
  • Leboncoin : En 2021, Leboncoin a également été au centre d'une affaire juridique concernant la pige immobilière, où des entreprises récupéraient les coordonnées des particuliers pour les démarcher sans leur consentement.
  • Station F et HEC : Une autre affaire concerne Station F, où des identifiants d'anciens étudiants d'HEC ont été utilisés pour accéder à l'annuaire de l'école. Le serveur d'HEC a été surchargé par ces tentatives, causant des pannes. Bien que l'amende de 2000 euros infligée soit relativement faible, l'affaire souligne les risques liés à l'utilisation non autorisée de données.

Le risque d’actions judiciaires et de poursuites

Si le risque d'emprisonnement pour des actes de scraping est relativement faible, le risque de poursuites judiciaires par les entreprises est beaucoup plus élevé. Les entreprises peuvent engager des actions en justice pour violation des conditions d'utilisation, ce qui peut entraîner des coûts élevés en frais juridiques.

De plus, les questions de droit d'auteur deviennent de plus en plus pertinentes, notamment avec le développement des modèles de langage (LLM) qui utilisent des données extraites pour produire du contenu. Bien que ces données soient techniquement accessibles au public, certains estiment que leur extraction et réutilisation sans autorisation constituent une violation des droits d'auteur.

Un jeu de chat et de souris

Le scraping est un véritable jeu de chat et de souris. D'un côté, les entreprises s'efforcent de protéger leurs données, qui représentent une grande partie de leur valeur commerciale. De l'autre côté, des entreprises cherchent à contourner ces protections pour accéder aux informations nécessaires à leurs activités. Ce conflit perpétuel soulève des questions sur l'équilibre entre accès à l'information et respect des droits des propriétaires de données.

Explorez les applications métier

Optimiser les trajets du personnel
Retail - ETI - RH
Accélerer les propositions commerciales
Construction - PME - Ventes
Collecter les données financières
Conseil - PME - Direction
Gérer les transactions financières
Conseil - PME - Finance
Synchroniser
les données produits
E-commerce - PME - Informatique

Recevez l'estimation de votre application métier

MacBook mockupiPhone mockup