Microsoft BI

Power BI : Web scraping avec Power Query

Introduction

Power Query est un outil ETL (Extract, Transform and Load) intégré dans Microsoft Power BI, qui permet de récupérer, d’extraire et d’effectuer des transformations sur des données avant de les importer dans l’outil.

Le web scraping est une technique d’extraction de contenus web, et son principal intérêt est de pouvoir récolter et stocker l’information voulue d’un site web. Cette technique est souvent utilisée dans les veilles concurrentielles.

Dans cet article, nous allons effectuer du web scraping à travers Power BI et Power Query afin d’analyser les données concernant les articles de blog de DeciVision.

Site web de démonstration

Site web de démonstration

Extraction des données

Nous allons dans un premier temps sélectionner la source de données web à travers le bouton « Obtenir des données », renseigner l’URL de notre site de démonstration puis valider la connexion à la source de données.

Extraction des données

Une fois que Power BI établit la connexion, ce dernier suggère automatiquement une ou plusieurs tables contenants les données issues de la page web.

Nous allons donc sélectionner la table qui répond à notre besoin de reporting, puis transformer les données dans l’outil Power Query.

Transformation des données sur Power BI Query

Remarque : Il est possible de créer sa propre table à partir d’exemples si Power BI ne suggère aucune table ou si aucune des tables suggérées ne correspond aux besoins.

Transformation des données

Une fois dans Power Query, nous retrouvons la table sélectionnée (Table 1) qui contient les informations relatives à une seule page.

Le but du web scraping est de récupérer l’ensemble des informations de toutes les pages du site web et nous allons pour cela effectuer des modifications sur le code de la table.

En ouvrant l’éditeur avancé, nous avons des lignes de code qui s’affichent, dont une ligne qui contient l’URL que nous avons renseigner lors de la phase connexion à la source de données.

Récupération des informations du site web

Dans la ligne de code, le numéro de page de l’URL est défini statiquement, nous allons donc créer une variable de type texte qui va stocker la valeur du numéro de page.

Création d'une variable de type texte

Après la modification du code, la table de données devient une fonction que nous renommons en FxPages, puis, nous allons créer une liste à partir d’une requête vide. Cette liste devra contenir tous les numéros de page du site web à scraper.

Dans notre exemple, la page web des articles de blog de DV a 17 pages, nous allons donc créer notre liste en fonction de ce chiffre, puis, convertir notre liste en table.

Scrapping du site web Power BI

Remarque : Attention à bien vérifier que la colonne de la table convertie est en type texte.

Une fois que nous avons la table qui contient l’ensemble des numéros de page du site web, nous allons appeler notre fonction FxPages en cliquant sur le bouton « Appeler une fonction personnalisée », une nouvelle colonne s’ajoute à notre table que nous allons développer afin de créer la table qui va englober toutes les données du site.

Utilisation fonction FXPages

La prochaine étape, une fois toutes les informations récupérées, consiste à effectuer les transformations sur la table afin de répondre à notre besoin d’analyse et de reporting :

  • Renommer la table
  • Supprimer les colonnes obsolètes
  • Renommer les colonnes
  • Ajouter une colonne « Date de publication »
  • Ajouter une colonne « Trigramme du consultant »
Transformation de la table

Chargement des données

Il ne reste plus qu’à fermer Power Query, appliquer nos différentes transformations,  mettre en forme nos données et les visualiser sur Power BI.

Fermer et appliquer Power Query

CONCLUSION DE L’EXPERT

L’outil Microsoft Power BI démontre qu’il est bien plus qu’un outil de datavisualisation et qu’il permet de réaliser des extractions et des transformations de données complexes tout en restant facile d’utilisation.

Un projet ? Une question ?

Laissez-nous vos coordonnées et nous vous recontactons dans les plus brefs délais !

Articles récents
Évènements à venir
Newsletter DeciVision

Soyez notifiés de nos derniers articles de blog, de nos prochains webinars et nos actualités !