Skip to content

Benchmarker avec PAPESR (ou : Comment libérer des données)

17/10/2012

J’ai découvert l’existence de la plate-forme PAPESR avec ce billet du nouveau blog  d’Olivier Tacheau.

Présentation

« PAPESR » signifie : « Portail d’aide au pilotage  de l’enseignement supérieur et de la recherche ». Après une procédure de demande de compte (validée manuellement, ce qui laisse entendre que ce pourrait être refusé –alors qu’aucune condition ne semble nécessaire à remplir pour pouvoir disposer d’un compte), on accède à un ensemble de données statistiques sur les universités.

Pour accéder à ces tableaux :

  1. sélectionner une région
  2. sélectionner un établissement
  3. on obtient une première série de tableaux
  4. Sous chaque rubrique (regroupant plusieurs tableaux) se trouve un lien vers plus de détails

Oui, rien que comme ça, la structure fait peur.  Il y a des fonctions que je n’ai pas encore explorées (j’ai vu passer des boutons « Sélection » ou « Tableau de bord »). Ca m’est un peu égal : j’ai passé moins de temps à faire les manipulations ci-dessous qu’à me familiariser avec cette plate-forme.

Dans la description en creux qu’en faisait Olivier Tacheau, il s’y trouvait 3 éléments pour me plaire immédiatement :

  • il y a des données dedans
  • elles sont fournies dans un format qui nécessites des heures de retraitement pour pouvoir les exploiter, par exemple dans la perspective de comparer des établissements.
  • il n’y a pas de fonctionnalité permettant d’afficher rapidement (par cases à cocher) côte à côte un ensemble d’établissements pour un ensemble de critères sélectionnés

Ce qui m’a rappelé les stats de la DLL sur la lecture publique, avec un obstacle supplémentaire : la plate-forme est authentifiée, c’est donc impossible d’utiliser un outil comme Yahoo Pipes.

L’objectif est donc d’aspirer l’ensemble des pages du site qui peuvent m’intéresser, de les mettre dans un format exploitable (XML) pour en retirer des tableaux comparatifs.

1. Aspirer les pages qui m’intéressent

Partir d’une liste d’URL de ces pages : l’idée est d’aspirer l’ensemble des pages « Tableaux de premier niveau » pour l’ensemble des établissements (ligne en gras ci-dessus).

Pour ça, il faut récupérer les identifiants des établissements : les URL pages qui fournissent des tableaux exploitent ces identifiants.

Donc Etape 1 : récupérer les identifiants internes des établissements en trouvant une page fournissant une liste cliquable de ces établissements : les URL derrière les liens contiendront forcément ces identifiants

  1. Je trouve la page
  2. Je colle la liste dans KompoZer (éditeur HTML)
  3. Je vais voir le code source, et je le nettoie pour n’avoir plus qu’une correspondance : Identifiant – Etablissement

Etape 2 : créer une page HTML contenant la liste des liens vers les pages qui m’intéressent.

Le lien est sous la forme : http://www.enseignementsup-recherche.gouv.fr/papesr/front/outil/selectionnerTheme?uoIdSousCarte= + identifiant

Je peux donc

  1. remplacer le tableur Feuille 1 déjà mentionné ci-dessous par sa feuille 2, dans laquelle j’ai intégré du code entre les colonnes
  2. récupérer le contenu du tableau dans le bloc-notes
  3. remplacer les tabulations par rien
  4. ajouter en en-tête les balises <html><head/><body>
    et en fin de fichier : </body></html>
  5. et ça me donne ça :

Etape 3 : Utiliser l’extension DownThemAll

Cette extension balaie tous les liens d’une page, récupère les fichiers qui sont derrière et les dépose là où on le lui demande. Le nommage du fichier est paramétrable, par exemple en récupérant le contenu de l’attribut title du lien (d’où le fait que dans le tableau le nom de l’établissement est présent 2 fois, comme texte cliquable et comme attribut de <a>).

Retraitement des fichiers récupérés

Ces fichiers sont en HTML. Certains seraient certainement capables d’en faire quelque chose directement, avec du Perl, par exemple. Ce n’est pas mon cas : j’ai besoin de les mettre en XML propre, exploitable avec des feuilles de style XSL.

Il me faut donc un outil qui modifiera tous ces fichiers à la fois : ce sera InfoRapid Search & Replace.

Etape 1 : supprimer le début et la fin

Dans l’ensemble des 83 pages aspirées, c’est la partie contenant les tableaux qui m’intéresse. Il faut donc que je vire tout le reste

Cette zone de la page s’appelle ColoneDroite [sic]. Donc je supprime tout ce qui précède <div id="ColoneDroite">, puis je supprimerai tout ce qui est après <div id="ColoneGauche">

Les pages sont ensuite plus sobres et ne contiennent plus que quelques détails :

  • les balises <br> à remplacer par <br/>.
  • les diacritiques encodés en iso-8859-1 (&eacute; au lieu de é, &egrave; au lieu de è, et &nbsp; pour l’espace insécable — dont XSL ne veut pas)
  • une fin de balise écrite
    rel=default >
    au lieu de
    rel="default"/>

J’obtiens un affichage assez « brut »

Exploiter mes 83 fichiers XHTML

Utilisation d’une feuille de style XSL pour restructurer tout ça, et obtenir un fichier XML avec une arborescence, sinon compréhensible, du moins significative.

L’affichage en rapports (tableaux) de ce gros fichier, au moyen d’autres feuilles de style, ce sera pour plus tard.

J’ai déjà extrait l’ensemble des données les plus récentes (2010-2011, sauf exception) pour l’ensemble des rubriques aspirées (la liste des rubriques est fournie dans une feuille à part).

Je précise tout de suite que s’il y a déjà pas mal de données là-dedans, je n’ai pas aspiré l’intégralité de la base. En fait, c’est simplement impossible (du moins avec la méthode utilisée ci-dessus) parce que pour les autres données, les liens profonds n’existent pas : on accède aux pages en passant par des pages intermédiaires (dont l’URL contient l’identifiant de l’institution). Mais ces pages de 2e niveau ont toute la même URL, selon l’historique de navigation. Impossible donc de les attraper « depuis l’extérieur ».

Mais déjà avec celles-là j’ai deux chantiers intéressants :

  • voir comment on peut les exploiter et leur faire avouer des choses
  • s’exercer dessus pour voir comment publier des données statistiques en RDF

A suivre, donc…

Et au fait

 

%d blogueurs aiment cette page :