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
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.
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.
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.
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.
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.
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.
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 »
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.
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.