Thomas Le Coz | 19 novembre 2019 | Transformation Digitale

Qu’est-ce que le scraping et quel est son intérêt ?

Le scraping définit l’extraction automatisée d’information depuis une source de données.

Imaginez que vous souhaitiez enregistrer et classifier le catalogue e-commerce d’un concurrent : le seul accès que vous ayez au catalogue de votre concurrent est via votre navigateur.

Si vous voulez suivre l’évolution dans le temps du prix de certains produits, vous devez vous rendre régulièrement sur la page du produit et noter le prix quelque part pour suivre son évolution.

Le scraping permet d’extraire ce prix de manière automatisée.

Dans cet article, vous en apprendrez suffisamment sur le scraping pour comprendre l’intérêt qu’il peut avoir pour votre projet : après avoir définit plus précisément son contexte d’utilisation, nous présenterons certains outils et cas d’usage qui vous permettront d’envisager des usages pertinents dans votre situation.

Le scraping : l’automatisation de l’extraction de données

Robot reading

Certaines applications sont faites pour distribuer leur information sous un format exploitable programmatiquement. Celles-ci présentent des APIs — Application Programming Interface — qu’il suffit d’interroger afin d’extraire la donnée de manière exploitable.

D’autres sont faites pour présenter l’information dans un contexte donné : le plus souvent lors de la navigation sur leur site.

Prenons LeBonCoin, un site de petites annonces bien connu. De nombreuses informations intéressantes commercialement sont présentes sur le site.

Par exemple vous pourriez être intéressé par l’analyse du prix de revente de vos produits sur le marché de l’occasion, et donc vouloir collecter les prix et descriptifs d’annonce répondant à certains critères.

Si LeBonCoin présentait une API publique permettant de récupérer ces informations par des outils tiers, alors LeBonCoin :

  • verrait son nombre d’utilisateurs baisser puisque de nombreux outils ou sites reprendraient les informations alors disponibles, permettant aux visiteurs d’accéder à l’information ailleurs que sur leur site
  • ne pourrait plus vendre ses publicités ou options de mise en valeur puisqu’il s’agit essentiellement d’éléments de design qui perdent leur efficacité si on n’extrait que le prix et la description de l’item en vente et qu’on ne « surf » pas sur leur site
  • tout en perdant ses visiteurs et donc une partie de leur revenus, verraient leurs serveurs web de plus en plus sollicités car les outils tiers solliciteraient leur base de données

Pubs LeBonCoin

Le business model de LeBonCoin repose sur les pubs et mises en valeur graphiques que voient les visiteurs de leur site

LeBonCoin n’a donc pas intérêt à présenter une API publique et vous donner libre accès à sa donnée. Ils ont aussi tout intérêt à se prémunir du scraping puisque celui-ci revient à se créer un accès à la donnée de manière programmatique, en somme à créer sa propre API pour un site n’en proposant pas.

Dans ce cas, le scraping est souvent contraire aux conditions générales d’utilisation et vous risquez de vous voir refuser l’accès au site et ses informations si vous n’êtes pas prudents.

C’est pourquoi le scraping est bien souvent une discipline assez technique. Il faut non-seulement de bonnes connaissances en programmation afin de permettre l’extraction de données mais il faut aussi une certaine capacité à tromper les diverses sécurités en place pour déjouer l’extraction automatisée.

Pour déjouer ces sécurités, le plus simple et le plus utilisé est souvent la simulation d’un comportement humain : personne ne lit 30 pages à la secondes sur un site d’annonces. Insérer des temps de pause, simuler des clics, simuler différents navigateurs Internet, passer depuis différentes adresses, …

Avant d’entreprendre toute démarche de scraping, veuillez lire attentivement les Conditions Générales d’Utilisation des sources de données que vous souhaitez exploiter.

Vérifiez les notions de fair usage, limitant parfois les quantités de requêtes que vous pouvez effectuer sur un site, ou bannissant des fois complètement l’usage d’outils d’automatisation.

En résumé, le scraping permet d’extraire de l’information de manière automatisée et structurée pour la traiter ou l’afficher d’une manière que la source donnée ne permet pas. Cette discipline nécessite une bonne connaissance des outils d’extraction mais aussi dans bien des cas des sécurités en place pour détecter l’extraction afin de pouvoir les déjouer.

Outils d’extraction de données automatisés

Le scraping est de plus en plus utilisé, de ce fait de nombreux outils se sont développés permettant de démocratiser et simplifier l’usage de ces techniques.

Plus ces outils permettent une prise en main facile, plus ils sont spécialisés — se concentrent sur certaines sources de données — et bien souvent payants.

En revanche, pour une utilisation sur-mesure et à condition d’avoir accès à un prestataire ou un développeur ayant des connaissances en scraping, de nombreux outils et librairies de programmations sont disponibles en Open Source.

Outils d’extraction spécialisés

Certains outils permettent l’extraction de manière spécialisée : ils permettent d’extraire la donnée d’un site en particulier.

Ces outils sont souvent simples à prendre en main et permettent une extraction rapide de la donnée disponible sur ces sites.

Par exemple, l’outil Dux Soup — entre autre — l’extraction d’informations de contact sur les profils disponibles sur LinkedIn.

En quelques clics, vous pouvez installer l’extension dans votre navigateur Chrome et lancer une extraction.

Durant cette extraction, Dux Soup simulera l’interaction d’un utilisateur humain en insérant des temps de pause aléatoire de manière à ne pas faire suspendre votre compte.

Outils hybrides

Scraping avec Import.io

Extraction de prix avec Import.io

Il existe ensuite des outils que nous qualifierons “d’hybrides” qui ne sont ni spécialistes — puisqu’ils permettent d’extraire des données de plateformes différentes — ni complètement généralistes puisqu’ils ne sont pas aussi flexibles qu’un programme que l’on crée et configure sur mesure pour une source de données très spécifique.

Ces outils mettent à disposition les serveurs et l’infrastructure sur laquelle s’exécutera les outils de scraping. Cela simplifie le travail des scrapers qui n’ont plus besoin de maintenir des serveurs en place, acheter des proxys pour camoufler leurs adresses IPs et ne pas se faire repérer, etc.

Parmi ces solutions, on retrouve des produits comme Import.io. L’outil permet une configuration assez intuitive de l’extraction en sélectionnant visuellement les champs de données à acquérir.

Import.io va ensuite fonctionner de manière périodique pour extraire les informations et vous les restituer de manière normalisée et exploitable.

Recettes PhanomBuster

Les « recettes » de PhantomBuster

Bien d’autres outils existent — et apparaissent tous les jours. Une mention spéciale pour PhantomBuster qui permet non seulement l’usage de “recettes” : des configurations pré-programmées permettant la mise en place de leviers de croissance allant plus loin que le scraping, tout en permettant un accès assez poussé à la programmation des outils qu’il met à disposition.

Librairies de programmation

Enfin, dans de nombreux cas des problématiques de performance et de coût amènent les entreprises à faire développer leurs propres scrapers.

On s’abstrait alors du coût variable lié à la volumétrie que présente la plupart des SaaS et on peut optimiser bien plus finement le comportement de ses extracteurs de données.

En ayant un contrôle total sur le programme d’extraction, on peut ajuster la performance — vitesse et fréquence d’extraction, quantité de données extraites, etc. — ainsi que la discrétion de l’outil — création de comportements aléatoires, utilisation de multiples adresses pour brouiller les pistes, etc.

Là encore, des outils viennent aider les développeurs. Des librairies de programmation permettent la simplification de l’extraction de données.

Ce sont bien souvent les mêmes librairies utilisée par les outils SaaS, sauf qu’ici vous avez besoin de développeurs, le degré de technicité étant bien plus élevé.

On retrouve deux grandes familles de librairies spécifiques au scraping :

  • les librairies d’automatisation de navigation comme Phantom, Casper, Axios ou Selenium : ces librairies permettent de simuler et automatiser la navigation de sites Internet, aller de page en page et en absorber le contenu
  • les librairies d’extraction d’information comme BeautifulSoup ou Cheerio : ces librairies permettent d’interpréter le contenu et d’extraire les informations pertinentes

La liste est loin d’être exhaustive, chaque langage de programmation ayant ses librairies et de nouvelles librairies apparaissant régulièrement.

En résumé, il existe différents outils mettant en oeuvre le scraping.

Plus on recherche un usage simple sur des plateformes populaires, plus il y a de chance de trouver un produit pouvant être facilement paramétré pour répondre à nos besoins.

Plus on recherche de la flexibilité sur des sources spécifiques, plus le travail sera technique et nécessitera l’intervention d’un développeur.

Cas d’usage

Maintenant qu’on a une meilleure compréhension de comment fonctionne le scraping et des outils impliqués, nous allons nous intéresser aux cas d’utilisation du scraping.

Le monitoring de la concurrence

Surveillance concurrence

Gardez un oeil discret sur la concurrence grâce au scraping

Souvent utilisé pour surveiller les plateformes e-commerce, le scraping permet de collecter des données commerciales sur les produits des concurrents pour améliorer sa compréhension et vision du marché.

Des prestataires privés permettent par exemple de surveiller l’évolution des prix de vos concurrents sur leurs catalogues en ligne, mais aussi de surveiller le classement de leurs offres sur des plateformes comme Amazon pour évaluer leur succès commercial.

Plein d’autres utilisations sont envisageables pour garder un oeil sur la compétition :

  • Collecter les offres d’emplois sur les job boards afin de mesurer la croissance d’acteurs concurrents
  • Surveiller les changements de poste sur LinkedIn des cadres supérieurs des concurrents afin d’être alerté de changements structurels important chez la concurrence
  • Collecter la liste de client référence et être notifié lorsque de nouveaux clients apparaissent afin de mettre à jour votre CRM

La seule limite est votre imagination 😉

Extraction de base de données

Une autre utilisation courante est l’extraction de bases de données.

L’exemple le plus criant est l’utilisation d’outils de scraping pour collecter des données sur LinkedIn.

Dux Soup on LinkedIn

Exemple d’extraction de données : Dux Soup récupère des informations de contacts sur LinkedIn

LinkedIn est la plus grande base de données de profils professionnels au monde. Un outil permettant d’extraire des informations permettant de les contacter est extrêmement puissant puisqu’il permet de créer des listes de leads pour votre prospection.

Mais ce n’est pas le seul cas où on cherche à extraire des données à des fins de constitution de fichiers de prospection. Par exemple, imaginez que vous trouviez sur Meetup un événement qui rassemble beaucoup de vos clients potentiels.

L’utilisation d’un scraper peut vous permettre d’extraire automatiquement la liste des participants à l’événement afin de créer une base de fichier de prospection.

On peut imaginer d’autres usages dans cette configuration :

  • Extraire les catalogues produits de différents concurrents pour les comparer à votre catalogue et trouver les produits différenciants
  • Extraire la base de données d’annuaires spécialisés pour trouver prospects ou concurrents

Vous êtes vous déjà demandé comment des sites permettant de réserver des rendez-vous avec des médecins arrivent à démarrer avec une base de données de plusieurs milliers de praticiens dès leur lancement ?

Difficile pour eux d’obtenir les informations en contactant chaque médecin un par un alors que leur plateforme n’existe pas encore. En revanche il est bien plus envisageable de scraper le contenu des pages jaunes et de récupérer les informations nécessaires pour avoir du contenu à présenter aux visiteurs dès le lancement.

Constitution de data sets

On parle beaucoup de Machine Learning, d’Intelligence Artificielle et consorts mais d’un point de vue extérieur, on oublie souvent que ces technologies reposent sur de grandes quantités de données pour entraîner les modèles de données.

Le scraping peut alors être intéressant pour collecter et créer des “datasets”.

Par exemple, afin d’entraîner un outil utilisant l’IA pour détecter la présence d’une personne sur un ensemble de photos, il faut un grand nombre de photos de son visage.

Extraire les images de son compte Instagram grâce à un scraper peut permettre de constituer la base du dataset — en espérant que la personne soit avide de selfies.

Autre exemple : admettons qu’un organisme cherche à étudier la création d’entreprise dans le temps pour essayer de détecter des schémas et prévoir la création d’entreprises au fil du temps.

Scraper des sites qui listent les entreprises et leurs informations permet de créer des data sets contenant les dates de création des entreprises, le type d’entreprise créée, leur code NAF — permettant de déterminer leur secteur d’activité — et leur capital social afin de dégager des tendances et statistiques interessantes grâce au machine learning.

Automatisation de processus

ReceiptBank

ReceiptBank utilise des scrapers pour collecter certaines factures fournisseur

Le scraping peut aussi avoir une utilité dans l’automatisation de processus. C’est un outil auquel nous avons souvent recours dans nos opérations de transformation digitale.

Nous avons récemment publié un article sur l’automatisation de notre comptabilité.

Un des outils utilisé est ReceiptBank qui utilise un scraper pour aller chercher les factures sur les espaces clients des fournisseurs qui ne nous envoient pas les factures par email.

Conclusion

Le scraping permet d’automatiser et programmer l’extraction de données.

Le fait que ces tâches ne nécessitent plus d’intervention humaine ouvre de nouveaux champs de possibilités.

Nous pouvons extraire la donnée plus fréquemment et plus rapidement afin d’être plus à jour, mais aussi afin de surveiller les changements au niveau de ces données : ajouts, suppression, changement de propriétés, etc. permettant de découvrir des signaux faibles.

C’est donc un outil de plus en plus important, présentant un avantage concurrentiel certain pour qui sait le manier.