- Un manual sobre el formato PNG [ http://www.libpng.org/pub/png/book/toc.html ]
- Una conexión a Internet intermitente, así que no es una posibilidad leerlo online
- Pereza suficiente para no ponerse a descargarlo a mano
Y la receta, comentadita [ vacuum.sh ] o coloreado:
#!/usr/bin/env bash
nxt="$1"
base="$2"
# Se comprueban los argumentos
if [ -z "$nxt" ] || [ -z "$base" ]; then
echo "$0 <first link> <base>"
exit 0
fi
# Mientras queden páginas
while [ ! -z "$nxt" ];do
# Se descarga
wget "$nxt"
# Se lee el nombre del archivo
for i in $(echo $nxt|sed "s/\// /g");do
fname=$i
done
nxt=""
# Se lee el archivo en busca del link al siguiente
# ( la línea contiene align="right" y al principio está el <a href )
echo "Parsing..."
for o in $(cat $fname|sed "s/\ /%/g");do
i=`echo "$o"|sed "s/%/\ /g"`
l1=`echo "$i"|grep 'align="right"'`
l2=`echo "$i"|cut -d\" -f1|grep 'href'`
# Si se encuentran las dos cosas
if [ ! -z "$l1" ] && [ ! -z "$l2" ];then
# Se extrae lo que está entre las comillas
nxt="$base"`echo "$i"|cut -d\" -f2`
echo "Next: $nxt"
break # Ya está, pasamos a la siguiente
fi
done
# Se comprueba que no se volvió al principio
if [ "$nxt" == "$1" ];then
break
fi
done
Para lanzarlo contra la web de antes, habría que hacer:
./vacuum.sh "http://www.libpng.org/pub/png/book/title.html" "http://www.libpng.org/pub/png/book/"
Sí, es bastante cutre, pero no se me ocurrió nada mejor :P.
Saludos
No hay comentarios:
Publicar un comentario