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

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.log

Otro 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.


CategoryRedes | CategoryRecetas | CategoryProgramacion

BOFH/Soho (last edited 2009-09-22 01:04:47 by diegueus9)