Je voulais disposer enfin d'une liste claire de mes bouquins relatifs au Japon. Claire, donc structurée, avec toutes les références bien propres, l'ISBN, la couverture, toussa. Et en terme de références et de bibliographie, pour moi la référence (justement), c'est BibTeX.
D'un autre côté, j'avais déjà plus ou moins cette liste dans mon compte Amazon, qui me permet avec une assez bonne efficacité de suivre les sorties de nouveaux livres assez proches de mes centres d'intérêts. Bien sûr, pas de fonction "export" chez mon libraire en ligne, les données, il les a et il les garde.
Mais les pages HTML me permettant de consulter ma liste de bouquins contiennent des bouts de code avec l'ISBN de chaque ouvrage, justement. Et un chti gars tout bien a mis en ligne un formulaire web qui peut nous donner toutes les infos sur un bouquin, sont ses références BibTeX complètes et un lien vers la couverture, en interrogeant Amazon, justement. Il ne restait plus qu'à bien articuler tout ça:
Récupérer à la main les 7 fichiers html bruts de ma liste de bouquins depuis le web du libraire, et mettre tout ça dans un gros fichier en vrac.
Ajuster les outils, faire quelques essais à blanc, puis en extraire la liste des numéros ISBN.
Pour chaque ISBN, interroger le formulaire web pour en obtenir le code BibTeX, noyé dans une soupe de tags HTML.
Filtrer les liens vers les couvertures des livres, et rapatrier ces images en les renommant proprement.
Supprimer des données renvoyées par le formulaire ce qui ne ressemble pas à du BibTeX.
Faire les finitions à la main.
Voilà. Tout ça en script shell, pipe à gogo, sed à tous les étages,
wget à volonté :).
grep pd_ys bibliographie.html | grep -v img\ src | grep -v \
template-name | grep -v Consultez | grep -v Pas\ de\ note | sort \
-u | sed 's/^.*\/dp\///' | sed 's/\/.*>/ /' > bibliographie.isbn
for nb in `cat bibliographie.isbn`; do wget -q -O $nb.html
http://keijisaito.info/lead2amazon/e/?op=bt\&ht=fr\&key=$nb ; done
for f in `ls *.html`; do img=`echo $f | sed 's/.html/.jpg/'`; \
url=`grep images-amazon $f | tr ' ' '\n' | grep images-amazon | \
grep href | sed 's/href="//' | sed 's/">.*//'`; wget -q -O $img \
$url; done
for f in `ls *.html`; do grep @BOOK $f | sed 's/.*@BOOK/@BOOK/' | \
sed 's/}<.*/}/'| sed 's/<BR>/\n/g' > `echo $f | sed \
's/html/bibtex/'`; done
cat *.bibtex global.bibtex; emacs global.bibtex
Gruuuuik!
Et après, quel plaisir, quel confort, luxe, calme et volupté... Un petit template ikiwiki, et hop, tout est bien formaté comme il faut sur la page qui va bien.
Sinon, j'aurais pu travailler sérieusement, consulter l'API Amazon, qui propose sûrement un moyen d'obtenir ce que j'ai obtenu, mais en plus propre. Ou bien me passer d'Amazon (parce que Amazon, c'est mal, données personnelles, toussa. Mais bon, mes bouquins je ne les trouve pas ailleurs, non plus...) et faire du Z39.50 sur des bases bibliographiques publiques (BNF, sudoc), mais bon, en fin de nuit blanche, faut pas abuser...
Sur ce, quand même, je me suis dit que les microformats ce n'est pas qu'un buzz de marketeux2.0, et que ça serait quand même bien que des données simples soient formatées de manière standard de telle sorte que des outils juste un peu intelligents puissent aller les récupérer tout seuls. Enfin, ça serait bien... ça me semblerait juste normal en fait. Pas de chance, hcite, le microformat de bibliographie est encore en cours d'élaboration. Dès qu'il sort, promis, je l'utilise, au moins pour que ma bibliographie puisse servir à d'autres.