Web Scraping ou Data Scraping
Introduction
Dans les présentations des solutions de Robotic Process Automation, les fonctionnalités les plus couramment citées sont celles permettant des échanges de données entre systèmes de gestion de bases de données (SGBD) hétérogènes, la gestion des flux de données texte. Tout ceci a été étudié dans les précédents chapitres.
Une autre fonctionnalité très importante n’a pas encore été traitée dans ce livre, la gestion du Web Scraping ou Data Scraping.
UiPath propose plusieurs mécanismes pour extraire des données structurées à partir de pages web. Selon le scénario, l’extraction peut reposer sur les activités d’automatisation d’interface de UiPath Studio ou sur un script Python chargé d’analyser le contenu HTML.
Dans nos deux premiers processus du chapitre, nous prendrons l’option de ne pas mettre tout de suite en œuvre les puissants assistants intégrés à UiPath. Les opérations seront sous-traitées à des scripts Python, ce langage disposant de bibliothèques de très haut niveau pour cela.
Nous débuterons, pour notre premier exemple de Web Scraping, par la récupération du fichier HTML « personnes.html » publié par nos soins...
Application « Web Scraping - Liste des personnes »
1. Présentation de l’application
Comme indiqué ci-avant, l’enjeu est de récupérer la liste de données qu’affiche le script accessible à l’adresse http://christian.vigouroux.online.fr/uipath/personnes.html :

La copie d’écran a été retouchée pour une meilleure lisibilité, le tableau est normalement centré par rapport à la page web.
Le processus UiPath ne se contentera pas de faire un affichage de contrôle de chaque enregistrement, mais en fera une exploitation plus poussée en reportant les données extraites par Web Scraping dans une table MySQL nommée personnes_webscraping stockée dans notre base de données MySQL habituelle uipath.
La structure de cette table personnes_webscraping sera la suivante :

Cette structure pourra être créée via le script SQL ci-dessous :
CREATE TABLE IF NOT EXISTS `personnes_webscraping` (
`personne_id` int(11) NOT NULL AUTO_INCREMENT,
`nom` char(20) DEFAULT NULL,
`prenom` char(20) DEFAULT NULL,
`age` int(11) DEFAULT '0',
`genre` char(1) DEFAULT NULL,
PRIMARY KEY (`personne_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
2. Application UiPath
Le processus étant relativement long et complexe, il est présenté ci-après avec ses activités pour la plupart pliées :

Contrôlons de suite les dépendances requises pour ce traitement :

La bibliothèque Python est bien évidemment nécessaire pour exécuter un script Python depuis l’environnement UiPath. La bibliothèque WebAPI servira à désérialiser le flux JSON produit par l’application Python. Enfin, la bibliothèque DataBase nous sera utile pour stocker les données lues par l’opération de Web Scraping, assurée conjointement par Python et sa bibliothèque Beautiful Soup, dans la table MySQL personnes_webscraping.
La première activité du processus assigne des valeurs à des chemins nécessaires au bon fonctionnement de Python. Elle est identique à celles vues dans le chapitre Utilisation...
Application « Web Scraping - Palmarès du Tour de France »
1. Présentation de l’application
Dans l’application précédente, l’opération de Web Scraping (ou Data Scraping) était relativement facilitée par le peu de complexité de la page explorée (liste de personnes sur un site web mise en place par l’auteur).
Comme annoncé dans l’introduction de ce chapitre, notre deuxième application sera basée sur une page web que nous n’avons pas mise nous-mêmes en ligne, le palmarès du Tour de France cycliste masculin.
Nous utiliserons la page Wikipédia donnant ce palmarès (sous forme d’un tableau HTML), disponible à l’adresse https://fr.wikipedia.org/wiki/Palmar%C3%A8s_du_Tour_de_France.
Le début du tableau (la première édition a eu lieu en 1903) se présente comme suit :

Nous nous intéresserons uniquement aux quatre premières colonnes du tableau (voir ci-avant) alors qu’en réalité il en compte quatorze.
Un report partiel des données sera réalisé dans un classeur Excel (Palmarès_TDF.xlsx) après l’extraction.
2. Application UiPath
Le workflow présente des similitudes avec la section Application « Web Scraping - Liste des personnes » tout en étant plus conséquent. Une présentation avec un grand nombre de blocs pliés en est faite ci-après :

Déployons la séquence Paramétrage de l’environnement Python :

Comme vous le constatez, aucune différence notable dans cette séquence, nous y retrouvons les mêmes activités que celles vues pour l’application précédente.
Le seul point de différence est bien entendu le chemin du script Python à exécuter.
La variable cheminScriptPython sera uniquement utilisée pour le chargement du script Python, tous les autres fichiers (fichier JSON et classeur Microsoft Excel) étant placés dans le répertoire du processus UiPath.
Passons au cœur du traitement, l’opération de Web Scraping :

Cette séquence est très conséquente et les activités incluses sont pour le moment pliées...
Application « Web Scraping - Liste des personnes - Version 2 »
1. Présentation de l’application
L’enjeu est de récupérer la liste de données qu’affiche le script accessible à l’adresse http://christian.vigouroux.online.fr/uipath/personnes.html :

La copie d’écran a été retouchée pour une meilleure lisibilité, le tableau est normalement centré par rapport à la page web.
Contrairement à ce qui a été effectué dans la section Application « Web Scraping - Liste des personnes » sur cette même liste, nous n’allons pas utiliser un script Python basé sur la bibliothèque Python Beautiful Soup, mais un assistant intégré à UiPath Studio.
Le processus UiPath ne se contentera pas de faire un affichage de contrôle de chaque enregistrement, mais en fera une exploitation plus poussée en reportant les données extraites par Web Scraping dans un fichier CSV personnes.csv. Ce fichier pourra ensuite être chargé sous Microsoft Excel. Cette opération supplémentaire aurait même pu être effectuée en fin de processus UiPath.
2. Application UiPath
Avant toute chose, avant d’envisager une opération de Web Scraping directement sous UiPath Studio, il convient d’installer dans le navigateur internet que vous avez l’intention d’utiliser une extension pour UiPath.
La documentation officielle pour...
Pour aller plus loin
Sur la base d’un jeu de données présent sous forme d’un tableau HTML sur un site web de votre choix, vous pourriez développer deux processus UiPath, le premier en passant par un script Python utilisant la bibliothèque Beautiful Soup, le second basé sur l’assistant directement intégré dans UiPath Studio.