#1 Le 10/01/2012, à 11:24
- nesthib
[script] un parseur pour récupérer les données servicepublic.fr
À la suite de ce post, voici un petit script qui permet d'extraire et de compiler sous forme de fichier csv les donnée du site http://lannuaire.service-public.fr concernant les mairies de France.
attention, le script est très gourmand en requêtes au niveau du serveur il ne faut donc pas en abuser, l'option -d en paramètre permet au script de n'effectuer qu'une démo en récupérant des informations partielles. Par ailleurs, bien que ces données soient publiques, il faut également préciser que toute utilisation est susceptible de faire l'objet d'une déclaration à la CNIL.
edit :voici un lien vers les données brutes et libres de droit
#!/bin/bash
OUT_FILE="info_mairies"
DEBUG_COMMAND='cat'
[ "$1" == "-d" ] && DEBUG_COMMAND='head 5'
while read departement
do
while read ville
do
{
curl -s ${ville} | sed -n -e "/<title>/s/.*Mairie \(des\? \|d \?'\? \?\|du \)\(.*\) - \(.*\) - \(.*\) -\([0-9]\+\).*/\3, \4 (\5), \2, /Ip" \
-e '/Adresse/{n;s/^ *<p>//;s/<br \/>/ - /gp}' \
-e '/Téléphone/{n;s/.*\(+[ 0-9]\+\).*/, \1, /p}' \
-e '/Courriel :/{n;s/.*>\([^<]*\)<.*/\1/;s/ \[ à \] /@/p}' | tr -d '\n'
echo ", ${ville}"
} | tee -a "${OUT_FILE}"
done < <(curl -s ${departement} | sed -n 's#.*\(mairies/.*.html\).*#http://lannuaire.service-public.fr/\1#p' | ${DEBUG_COMMAND})
done < <(curl -s http://lannuaire.service-public.fr/navigation/index-mairie.html | sed -n '/contenuCarte/,/contenuForm/s#.*href="\([^"]*\).*#http://lannuaire.service-public.fr/navigation/\1#p' | ${DEBUG_COMMAND})
edit : typo + lien vers les données brutes
Dernière modification par nesthib (Le 10/01/2012, à 15:35)
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#2 Le 10/01/2012, à 11:56
- pem1664
Re : [script] un parseur pour récupérer les données servicepublic.fr
Top, bravo pour le script et tes mises en gardes
EDIT : une question cependant, pourquoi as tu remplacé le courriel par l'adresse du lien pour la mairie en question?
Oups pardon! en regardant mieux le fichier de sortie il y a
+33 2 72 77 20 00, , http://lannuaire.service-public.fr/mairies/pays-de-la-loire/maine-et-loire/mairie-49099-01.html
(par exemple) ce qui me laisse penser que le sed ne trouve pas l'adresse mail
EDIT2: il manque un $ devant {DEBUG_COMMAND} à la dernière ligne
Dernière modification par pem1664 (Le 10/01/2012, à 13:48)
Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)
Hors ligne
#3 Le 10/01/2012, à 13:38
- xabilon
Re : [script] un parseur pour récupérer les données servicepublic.fr
Salut
Je signale que toutes les données de l'annuaire administratif de service-public.fr (mairies, services publics divers nationaux et européens) sont disponibles en téléchargement ici, sous forme de fichiers XML, et sous licence ouverte.
Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.
Hors ligne
#4 Le 10/01/2012, à 13:52
- pem1664
Re : [script] un parseur pour récupérer les données servicepublic.fr
Merci Xabilon pour l'info! je vous jure que je l'ai cherché cette info!! (mal faut croire)
EDIT: en meme temps y'en a pour 100Mo a dl, alors qu'avec le script de nesthib, apres suppression des [ à ] <dd> et </dd> l'ensemble des adresses prend 397ko pour 31280 adresses!
Dernière modification par pem1664 (Le 10/01/2012, à 14:10)
Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)
Hors ligne
#5 Le 10/01/2012, à 15:21
- xabilon
Re : [script] un parseur pour récupérer les données servicepublic.fr
Oui, l'archive décompressé fait dans les 250Mo, dont 120Mo pour les mairies.
Pour épargner les serveurs, ce serait peut-être mieux de travailler directement sur le fichier téléchargé pour en sortir un csv
Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.
Hors ligne
#6 Le 10/01/2012, à 15:37
- nesthib
Re : [script] un parseur pour récupérer les données servicepublic.fr
tout à fait d'accord, en plus les données sont triées, en xml et plus complètes, cependant le script reste intéressant à étudier donc je le laisse à disposition.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#7 Le 10/01/2012, à 16:02
- pem1664
Re : [script] un parseur pour récupérer les données servicepublic.fr
Merci a vous 2, pour le script comme pour les info!
@ Nesthib : ca résout notre problème en mp
Pas de problème sans solutions, mettre [résolu] dans son premier post permet de rechercher plus facilement une solution... ;)
Hors ligne
#8 Le 10/01/2012, à 18:34
- Kanor
Re : [script] un parseur pour récupérer les données servicepublic.fr
Après le site opendata de l'état français est tout récent.
Hors ligne