Script para descargar todas las imagenes de soho
Versiones en bash
url=http://www.soho.com.co/galerias/mod_
for mod in $( seq 1 166 );do
mkdir mod_$mod
cd mod_$mod
for foto in $(seq 1 34 );do
wget -c $url$mod/f$foto.jpg
done
cd ..
done- Este script, necesita verificar si existen fotos en las carpetas.
- Necesitamos también crear un actualizador.
Script mejorado para descargar imagenes de soho
Éste script fue reimplementado para dar solución a las dos necesidades planteadas anteriormente, además permite la actualización de las imágenes, si por alguna razón se cancela la descarga y/o se ingresan nuevas fotografías a los directorios de imágenes existentes. Tampoco tiene en cuenta las imágenes ya descargadas, es decir, realiza un actualización, más no reinicia la descarga total de las imágenes como sucedía con el script original, mejorando el rendimiento en la descarga de la galería de soho, y por último se añadió un toque de elegancia al script, imprimiendo mensajes informativos de la descarga... (Lo que hace un geek en una noche de insomnio ;-)).
Después de ponerlo a prueba, encuentro un bug que quedará pendiente para su solución
cuando las imágenes han sido eliminadas del repositorio original de Soho, se presenta un mensaje que informa que el archivo o directorio no existe, pero el mensaje en pantalla informa al usuario con un OK, cuando debería informar que dicha descarga falló... en fin, si alguien se anima...
URL=http://www.soho.com.co/galerias
MODELO=1
FOTO=1
while [ `wget -c -o soho.log $URL/mod_$MODELO; grep -i "Not Found" soho.log | wc -l` = '0' ]
do
# Omitir archivos descargados
if [ -d mod_$MODELO ]
then let FOTO+=`ls mod_$MODELO | wc -l`
fi
echo -e "Descargando Fotografias: mod_$MODELO\c"
while [ `wget -c -o soho.log -Pmod_$MODELO $URL/mod_$MODELO/f$FOTO.jpg;grep -i "Not Found" soho.log | wc -l` = '0' ]
do
let FOTO++
done
if [ `ls mod_$MODELO | wc -l` > '0' ]
then echo -e "\t\t.... \E[32;1m\033[1m[OK]\033[0m"
else
echo -e "\t\t.... \E[31;1m\033[1m[FAIL]\033[0m"
fi
FOTO=1
let MODELO++
done
rm soho.logOtro aparente bug, se presenta en el momento en que el directorio de la modelo no existe en el servidor, ésto se soluciona modificando el primer while por la siguiente línea:
while [ `wget -c -o soho.log $URL/mod_$MODELO; grep -i "Not Found" soho.log | wc -l` -lt '3' ]
Ésto con el fin de que continue buscando los siguientes directorios, el número 3 sólo es un umbral de 2 directorios inexistentes consecutivos, con lo que cada quien podrá parametrizarlo a su gusto.
