Premiers pas en web scraping

Introduction à la collecte automatique de données du web

Léa Christophe (Université Paris 1 Panthéon-Sorbonne, UMR Géographie-cités)

Hugues Pecout (CNRS, UMR Géographie-cités)

Robin Cura (Université Paris 1 Panthéon-Sorbonne, UMR PRODIG)

Alexandre Cebeillac (Université de Rouen Normandie, UMR IDEES)

Sébastien Rey-Coyrehourcq (Université de Rouen Normandie, UMR IDEES)

featured

Cet article peut être utilisé comme support pour une initiation aux bases de la collecte automatique de données du web avec R.

Introduction

Le web scraping, ou extraction de données sur le web, est un ensemble de techniques qui consistent à extraire de manière automatisée des informations à partir de sites web. Il peut s’agir de texte (faisant parfois référence à des entités géographiques telles que des longitudes ou des latitudes), de tableaux, d’images ou encore de vidéos. En d’autres termes, c’est comme si vous utilisiez un robot pour récupérer des données à partir de pages web, plutôt que de le faire manuellement.

En sciences humaines et sociales, le web scraping peut être utilisé pour collecter et structurer efficacement des données sur des sites web, forums, blogs, des réseaux sociaux ou autres sources en ligne. Par exemple, si des centaines de tableaux de données sont disponibles sur un site web dont l’analyse permettrait d’étayer différentes hypothèses de recherches, il paraît préférable d’en automatiser la collecte plutôt que de les copier/coller manuellement. Cette méthode peut être particulièrement utile pour analyser des tendances, des opinions, des dynamiques, ou tout simplement pour constituer une base de données à partir de plusieurs sources internet. L’utilisation de R pour le web scraping permet d’automatiser ce processus et d’analyser directement les données collectées.

Avant de se lancer dans du web scraping, il convient d’avoir une vision claire sur les utilisations des données que l’on souhaite récupérer. Ce n’est pas parce qu’on peut télécharger toutes les données d’un site web que l’on doit le faire. En plus de générer inutilement du trafic réseau qui peut perturber le fonctionnement du site, il faut se poser des questions simples : quelles données me semblent nécessaires pour répondre à ma question de recherche ? Ai-je vraiment besoin de toutes ces données ? Aurais-je les capacités et l’opportunité de tout traiter ? N’y a-t-il pas un autre moyen plus simple et moins gris de les obtenir ?

Le web scraping permet de récupérer des informations spécifiques d’une page web, notamment en analysant sa structure HTML et en extrayant uniquement les éléments pertinents. Cette pratique demande quelques connaissances techniques en matière de web, de langage de balisage HTML et de langage CSS, qui permettent respectivement de structurer une page web et de définir l’apparence et la mise en forme des différents éléments du document.

Le web scraping regroupe différentes techniques plus ou moins complexes, selon la structure du site cible. Ce dernier peut être statique, c’est à dire que le contenu de la page ne varie pas entre les visites, ou a contrario dynamique. Cet article, qui est une initiation à la pratique de la collecte automatique de données, présente le cas d’utilisation le plus simple, c’est-à-dire le scraping d’une page web statique et peu interactive.


1 Objectifs et prérequis

1.1 Le site web ScrapImmob

Pour cette introduction à la collecte automatisée de données du web avec R, nous proposons une mise en pratique sur un site internet de démonstration créé pour l’occasion : ScrapImmob. Ce site compile 1 000 annonces fictives de ventes immobilières de maisons et d’appartements.

Dans le cadre de cet article, nous cherchons à récupérer les propriétés des différentes annonces immobilières disponibles sur ce site, en vue de mener une première exploration du lien entre prix de vente, caractéristiques et localisation.