MAPAQ – Rappels d’aliments – Données formattées

Je discutais avec Patrick “avoine” Hétu dans le canal IRC de Koumbit, spécifiquement de certaines informations que l’on retrouve sur le site du Ministère de l’Agriculture, des Pêcheries et de l’Alimentation du Québec. J’avais déjà utilisé ces informations pour faire une carte et un fil rss des amendes alimentaires (restaurants, marchés) mais depuis le site a beaucoup changé et j’ai perdu mon ordi fourre-tout qui me servait à héberger tant de petits projets. M’enfin, passons…

Donc le site a pas mal changé. Exit les HTML, c’est maintenant du PDF qu’il faut se taper si on veut extraire un peu d’information. Je n’ai jamais tellement jouer dans la lecture de PDF, sauf une fois mais c’était pour trouver un mot de passe qu’on avait biffer dans le document. Je dis bien biffer, car la source révélait bien le mot de passe. Mais bref, passons.

Je regardais donc les fichiers PDF disponibles avec Patrick quand on s’est aperçu que les données étaient quasiment désuètes. Plus étrange, il y avait moins d’entrées pour Montréal que pour Lanaudière pour une même période donnée. Rien de très rassurant dans tout ça. Pour Montréal, le MAPAQ nous réfère au site web de la ville, mais celui-ci a trop changé et les liens ne fonctionnent plus.

Alors on a fouillé un peu plus pour tomber sur la liste des rappels alimentaires. Ah, c’est mieux on dirait. Un tableau html avec un résumé de chaque rappel et un lien sur, encore, un PDF qui contient là l’information détaillée. Je ne sais pas trop ce qui m’a pris mais voilà, j’ai fais la première étape. Un petit script php et son service en ligne pour obtenir des données formattées extraites de ces rappels alimentaires format HTML. Il reste le PDF à parser, on verra si ça avance ;)

Habituellement, j’utilise iconv, tidy et simplexml pour manipuler des fichiers html. Je converti tout ça en utf-8, puis en xhtml valide et hop, il ne reste plus qu’à se promener dans les données xml générées par simplexml. Sauf qu’ici, c’est microsoft “bord en bord” comme on dit. J’ai dû couper le fichier bêtement pour trouver le bon tableau html. J’ai donné ce tableau à tidy et il m’a reconstruit un beau fichier xhtml que j’ai pu parser.

Mon service n’a pas de nom encore, je suis ouvert aux suggestions. J’ai démarré un nouveau domaine, data.waglo.com où je compte mettre mes projets de parsing au fur et à mesure, ça remplacera vaguement tools.waglo.com mais plus en phase avec des projets comme Visible Government et autonomous. Donc, des logiciels libres, des services libres et idéallement, des données libres (ou bien qui tombe assez dans la zone grise à mon goût).

Le service est là pour obtenir des informations sur les rappels alimentaires du Québec en plusieurs formats : xml, rdf, rss2, atom, json, etc. On peut s’enquérir par année, mois et bientôt par région. Les sources PHP/HTML avec licences AGPLv3 sont aussi disponibles.

Vus : 803
Publié par Robin Millette : 11