Magazine Informatique

Leçon de Web Scraping avec Power BI

Publié le 06 juillet 2018 par Sopmar01 @mon_cher_watson

Le terme web scraping est utilisé pour désigner une technique d’extraction de données d’un site web. Afin d’analyser les données concernant les détenteurs du titre MVP de Microsoft, que j’ai présentées dans l’article À nouveau Microsoft MVP pour 2018-2019, je partage avec vous quelques statistiques sur le programme, j’ai utilisé cette technique avec Power BI. Cet article vise à vous montrer comment j’ai procédé.

Site web d’origine

La technique décrite dans cet article a servi à extraire des informations contenues dans un moteur de recherche sur le site web suivant:

Moteur de recherche MVP

Extraction des données avec Power BI

1- Création d’une fonction pour déterminer le nombre de MVPs par catégorie

Afin d’extraire les données avec Power BI, j’ai d’abord cliqué sur Obtenir des données / Web et j’ai inséré l’URL du site web: https://mvp.microsoft.com/en-us/MvpSearch?kw=&x=16&y=12. Jusqu’à tout récemment, nous devions absolument “fouiller” dans l’architecture de la page web afin de trouver nos données et ça pouvait être très long, voire impossible d’aboutir aux données. À présent, une nouvelle fonctionnalité nous permet d’effectuer le travail beaucoup plus facilement. Il s’agit de l’option “Extraire la table à l’aide d’exemple”. C’est cette fonctionnalité que j’ai utilisée.

Power BI Extraire à partir d'exemples

Cette option permet d’avoir un aperçu visuel de la page web. On peut ensuite insérer les informations que l’on cherche et charger Power BI de déterminer comment extraire l’information. Dans l’exemple ci-dessous, je cherchais d’abord à comprendre comment faire pour aller extraire le nombre total de MVPs par catégorie. Ce faisant, j’ai remarqué qu’en insérant une catégorie dans le moteur de recherche, la page web affichait la mention Results (nombre). J’ai donc simplement inséré cette information dans ma colonne d’exemple et j’ai cliqué sur OK.

Power BI extraction web

J’ai donc obtenu le résultat ci-dessous, avec le code M associé.

Power BI - Résultat extraction web

J’ai ensuite inséré un paramètre “Category” et je lui ai attribué la valeur de départ AI.

Power BI - Paramètre catégorie

J’ai ensuite modifié ma requête afin d’utiliser mon paramètre “Category” dans l’URL.

Power BI - À partir du web

Afin d’extraire la valeur (le nombre de MVP) dans chaque catégorie, j’ai utilisé la fonctionnalité “Texte entre les délimiteurs” et j’ai inséré les parenthèses d’ouverture et de fermeture.

Texte entre les délimiteurs

Ceci m’a permis de me débarrasser de la mention “Results “. J’ai ensuite cliqué sur la valeur avec le bouton droit de la souris et sélectionné “Drill-down”, afin d’extraire la valeur.

Drill down sur valeur

À ce stade-ci, je n’avais plus qu’à transformer ma requête en fonction (avec un clic droit de souris sur la requête). J’ai nommé cette fonction fnTotalMVPs.

2 – Utilisation de la fonction pour trouver le nombre de pages par catégorie

J’ai ensuite importé dans une nouvelle requête, une table avec la liste de toutes les catégories de titres MVPs.

Importation table catégories

Afin d’obtenir le nombre de MVPs par catégorie, j’ai ajouté une colonne qui appelle ma fonction fnTotalMVPs.

Invoquer fonction nouvelle colonne

J’ai obtenu ce qui suit:

Total MVP par catégorie

Sachant qu’il y avait 18 MVP par page, j’ai ajouté une colonne personnalisée pour déterminer le nombre de pages par catégorie.

Diviser par 18 et arrondir à l'entier supérieur

J’ai ensuite ajouté une colonne personnalisée pour créer la liste de pages qui sera utilisée pour chaque catégorie.

Ajout colonne liste des pages

En développant le tout, j’ai obtenu une ligne par page. Autrement dit, j’ai obtenu la liste complète du nombre de pages du moteur de recherche et cela, présenté par catégorie.

Liste des pages par catégorie

3 – Création d’une fonction pour extraire les MVPs

J’ai d’abord créé un paramètre “PageNumber”, tel que spécifié ci-dessous.

Paramètre Page Number

Ceci m’a permis de briser l’URL afin de composer un URL qui pointe sur une catégorie et sur une page en particulier.

URL web parts

Par exemple, avec la catégorie AI et la page 1, j’ai pu extraire la première page des MVPs AI. À nouveau, j’ai utilisé l’extraction par exemple afin d’indiquer que je cherchais à extraire les “Name” (et j’ai tapé les 3 premiers noms), puis le Award Category (et j’ai tapé les 3 premières catégories) et finalement les “Country” (et j’ai tapé les 3 premiers pays). Power BI a compris ce que je cherchais à extraire et à compléter la liste pour moi. Ceci a permis de générer le code M nécessaire. Voici par exemple le code qui a été généré pour extraire les “Name”.

Extraction AI

Une fois ma requête terminée, je l’ai convertie en fonction, que j’ai nommée fnMVPs.

Exemple AI page 1

Je suis donc retournée dans ma requête avec la liste complète de toutes les pages du site web par catégorie et j’ai ajouter une colonne qui appelle ma fonction fnMVPs.

Ajout colonne fonction fnMVPs

J’ai donc obtenu le résultat suivant. Notez que certains MVPs ont 2 Award Category.

Exemple extractions MVPS

J’ai donc ajouté une colonne qui indique si l’individu est dans plus d’une catégorie et une autre avec le nom de ces catégories, le cas échéant.

Retraitement de l'information

Afin d’analyser les données, j’ai aussi été obligée de créer plusieurs mesures en DAX et d’ajuster mes calculs en fonction du fait que plusieurs MVPs sont “Anonymous” et répondent donc tous au même “Name”, ce qui faussait mon “DistinctCount”.

Au final, cela m’a permis de créer le rapport ci-dessous.

Rapport MVP 2018-2019

NOTRE OFFRE DE FORMATIONS


Microsoft Most Valuable Professional

Le CFO masqué vous offre un vaste choix de formations Excel et Power BI, réparties dans 8 catégories: Excel – Tableaux de bord, Excel – Modélisation financière, Excel – VBA, Excel – Power Tools, Excel – Ninja, Power BI, Analytique d’affaires et Finance corporative. Ces formations sont offertes en classe, en entreprise et en ligne. Nos formateurs sont des experts dans leur domaine et ils sont accrédités par Emploi-Québec et vous remettent un certificat, à la fin de chaque formation, que vous pouvez notamment utiliser pour faire reconnaître des heures de formation continue auprès de votre ordre professionnel. De plus, nos formations peuvent mener à l’obtention d’une accréditation.

Découvrez quelles formations vous conviennent

Pour info: 514-605-7112 ou info@lecfomasque.com


Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

A propos de l’auteur


Sopmar01 3934 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte