Du web aux tableurs

Importation de données du web dans les tableurs

Une énorme quantité de données se trouve en libre accès sur le web. On peut vouloir en récupérer pour les traiter : calculs, comparaisons de prix, etc. Pour cela, il est possible de les scrapper avec Python ou un autre langage de programmation. Mais lorsqu’on ne sait pas écrire la moindre ligne de code et que la quantité de données ne relève pas du big data, la solution est de les importer depuis un tableur qui nous guide pas à pas.

Toutefois la procédure peut nécessiter quelques explications… C’est l’objet de cette page. Nous vous convions à la découverte de cette opération, avec Excel et Google Sheets. Il ne s’agira que d’importations brutes, les éventuels nettoyages liés aux formats n’étant pas abordés ici.

 

Petite précision

La procédure permet de récupérer les données présentées sous forme de liste ou de tableau. Elles doivent être écrites en HTML. Si le tableau est enregistré sous un format image (PNG par exemple), passez votre chemin.

web vers Excel

 

Excel

Remarque préalable. La présentation que nous faisons ci-dessous d’une importation avec Excel de Microsoft 365 ne nécessite pas l’utilisation de Power Query. Toutefois, cet outil offre des avantages non négligeables par rapport à une feuille de calcul classique. Par exemple, sur ce site nous présentons les pourcentages sous forme de formule LaTeX, y compris dans les tableaux ; le résultat est qu’une importation depuis Excel se traduit par des cases vides alors que Power Query les importe convenablement (quant à Google Sheets, il le fait sous forme de chaînes de caractères).

D’abord, vous devez connaître certains détails de la page web qui contient les données, en l'occurrence son URL et les tableaux qu’elle contient (si ceux-ci ne sont pas nommés il faudra les compter).

Exemple d’URL pour vous entraîner avec les vainqueurs du tournoi de Roland-Garros :

https://fr.wikipedia.org/wiki/Palmar%C3%A8s_du_simple_messieurs_des_Internationaux_de_France

Roland-Garros

Onglet Données puis dans le groupe de commandes Récupérer et obtenir des données choisissez À partir du web (si ce choix n’apparaît pas, cliquez sur Obtenir des données puis À partir d’autres sources et enfin À partir du web).

menus

Une fenêtre apparaît alors. Vous avez le choix entre une procédure de base ou avancée. Optez pour une opération de base. Copiez-collez l’URL dans le champ. Il se peut que vous deviez patienter quelques secondes.

Une nouvelle fenêtre demande quelle table importer. On visualise même le tableau. Génial.

palmarès

Cliquez sur Charger. La tableau pparaît sur la feuille de calcul tandis qu’à droite s’ouvre une fenêtre Requêtes et connexions. Celle-ci fait le lien avec la page HTML. Si vous préférez la fermer, observez qu’une icône permet de la rétablir.

Si vous importez une deuxième table, une nouvelle feuille de calcul sera créée. Mais si vous souhaitez qu'elle se situe ailleurs, par exemple à côté de la table précédente, précisez l’endroit avec Charger dans…

Notez qu’une fois le lien établi, les mises à jour du site seront prises en compte sur la feuille de calcul avec une périodicité que vous déterminez. Vous pouvez vous entraîner avec un site boursier qui indique en temps réel l’évolution des indices ou les cours des actions. Dans la fenêtre Requêtes et connexions, clic droit sur la requête. Il s’affichera une fenêtre des propriétés dans laquelle sont définis les contrôles de l’actualisation. Il est évident que cette fonctionnalité n’existerait pas si au lieu d’une importation en bonne et due forme on se serait contenté d’un simple copier-coller.

Bien sûr, vous pouvez ajouter un graphique qui évoluera au fil des actualisations de données.

 

Google Sheets

La solution de Google Sheets est simple mais un peu plus laborieuse.

Positionnez-vous en première cellule de la plage qui sera importée. Utilisez la fonction IMPORTHTML. Celle-ci fonctionne avec trois arguments.

  1. L’URL, à placer entre guillemets.
  2. La forme sous laquelle les données sont présentées (tableau ou liste). Elle doit être écrite en anglais et entre guillemets, donc "table" ou "list". Il est parfois difficile de distinguer les deux. En cas d’hésitation et si vous connaissez un peu le HTML, vous pouvez sélectionner la table et par un clic droit accéder au code source de la sélection. Un tableau est créé avec <table>, une liste pucée avec <ul> et une liste numérotée avec <ol>. Les éléments d'une liste figurent entre balises <li>.
  3. Le dernier argument est le numéro de la liste ou du tableau dans la page. S’il est assez simple de compter les tableaux, il convient de faire attention aux listes « cachées » (par exemple des boutons). Il faut soit tâtonner, soit inspecter le code source.

Exemple : =importhtml("http://www.jybaudot.fr/Correl_regress/exajustement.html";"table";1)

Au moment où nous écrivons ces lignes, la dernière version de Google Sheets n’actualise pas les données.

 

Joconde