Qu’est-ce que le Web Scraping ?

Le Web Scraping est l’art d’extraire des données d’un site Web de manière automatisée en téléchargeant le code HTML (source de la page) pour y extraire des données intéressantes.

Lorsqu’un site Web veux exposer des données aux développeurs tiers, il développe généralement une API (Application Programming Interface, ou interface de programmation d’application en français). L’API est conçue autour d’un ensemble de requêtes HTTP et répond généralement de la donnée structurée (JSON ou XML). 

Par exemple, admettons que vous vouliez récupérer le prix en temps réel du Bitcoin dans votre code, il n’y a pas besoin de scraper quoi que ce soit pour ça, il existe de nombreuses API publiques telle que CoinMarketCap, il suffit alors de faire une requête sur l’URL suivante : api.coinmarketcap.com/v1/ticker/bitcoin/?convert=EUR

On pourrait également imaginer qu’un site e-commerce ait une API qui liste tous les produits via cette URL (endpoint) : api.e-commerce.com/products

Et dans cet exemple on aurait le détail de chaque produit via l’URL suivante : api.e-commerce.com/products/123

Ça, ce serait dans un monde idéal, dans la réalité l’immense majorité des sites Web ne proposent pas d’API. La raison est très simple, créer et maintenir une API prend énormément de temps. Il faut la tester, créer de la documentation, des coûts d’infrastructure. L’autre problème avec les API c’est que bien souvent le “scope” des données exposées est bien plus réduits qu’en “scrappant” directement le site wWeb. 

Autrement dit le Web Scraping est souvent la seule solution pour extraire les informations dont on a besoin.

Cas d’utilisation du Web Scraping

Voici certaines industries ou cas d’utilisation où il est nécessaire d’extraire des informations depuis des sites Web :

  • Portail de news pour agréger de l’information depuis plusieurs sources
  • Comparateur de prix (site e-commerce, hôtel, billet d’avions)
  • Agrégateur bancaire (Bankin’, Linxo, etc…
  • “Data-journalisme”
  • “Lead generation”
  • “Agrégation de review”
  • Monitoring de marques

Par exemple, Mint.com est une application américaine de gestion de finance personnelle. Ce site permet de centraliser les différents comptes bancaires que vous avez dans divers établissement dans un seul et même endroit, de catégoriser les opérations automatiquement, créer des budgets etc…

Mint.com utilise le Web Scraping pour extraire les opérations bancaires de ses utilisateurs (après que ces derniers aient fourni leur identifiants à l’application) lorsque la banque ne propose pas d’API

Ainsi, chaque jour, les robots (i.e le code) de Mint passe par ce processus : 

  • Aller sur le site de la banque
  • Remplir le formulaire d’authentification avec les identifiants client
  • Pour chaque compte bancaire, extraire les opérations bancaires et sauvegarder dans la base de donnée Mint
  • Déconnexion

Grâce à cette technique, Mint est capable de supporter n’importe quelle banque, indépendamment de l’existence d’une API. C’est un excellent exemple de l’utilité et de la puissance du Web Scraping

Aller plus loin

Il y a deux problématiques que l’on peut rapidement rencontrer lors de l’extraction de donnée depuis le Web, la première est le blocage lié au “rate-limiting”. Certain site empêche de voir plus d’une page toute les 30 secondes avec la même IP. Il faut donc utiliser des “proxies” (un proxy est un composant logiciel informatique qui joue le rôle d’intermédiaire en se plaçant entre deux hôtes pour faciliter ou surveiller leurs échanges). 

La seconde c’est le fait que de plus en plus de site utilise énormément de JavaScript et de “framework frontend” tels que Vue.js ou React.js, et qu’il est de plus en plus complexe de les “scrapper” sans utiliser un navigateur “headless”. La gestion de ces navigateurs “headless” peut vite être compliquée.

Pour résoudre ces problèmes il existe des API de Web Scraping qui peuvent grandement simplifier les choses. Au niveau des langages et outils, Python est souvent le langage et écosystème de choix tant pour l’extraction de donnée que pour leur analyse. Voici un très bon article d’introduction au Web Scraping en Python

Total
5
Shares
5 Shares:
Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous aimerez aussi
CMS
Lire la suite

Tout savoir sur les CMS

« Système de Gestion de Contenu » traduit de l’anglais « Content Management System » est le nom attribué à des logiciels vous…