À 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