Wget como utilidad para descargar todas las imágenes en el directorio mysite.com/img/

Wget como utilidad para descargar todas las imágenes en el directorio mysite.com/img/

Mi acceso al directorio mysite.com/img/ está bloqueado.

Sin embargo, todas las imágenes en ese directorio están en la forma n.jpgdonde n es la enésima imagen.

Mi acceso a mysite.com/img/n.jpgno está bloqueado

¿Hay alguna forma de guardar las imágenes 1-500 ( mysite.com/img/1.jpga mysite.com/img/500.jpg)?

Estoy usando ubuntu 11.10

Respuesta1

La solución más sencilla probablemente sea utilizar expansiones de llaves bash

wget http://mysite.com/img/{1..500}.jpg

También existe la opción de hacer un bucle, lo que le permite esperar un poco entre cada solicitud.

for n in $(seq 1 500); do
  wget http://mysite.com/img/${n}.jpg
  sleep 0.1
done

(Lo anterior se puede ejecutar directamente en el shell).

Respuesta2

También hay otra forma de hacer esto wgetque he usado exitosamente para un sitio, y debería poder modificar las instrucciones a continuación para otros sitios. Implica generar una lista de URL y luego enviar esa lista a wget.

1) Como ejemplo, digamos que desea descargar las 63 revistas en formato PDF deRevista Círculo Completo(una revista de Ubuntu), pero su administrador de descargas no puede descargarlos todos a la vez. Así que encuentra elenlacedel primer archivo pdf y verifique rápidamente que los otros enlaces de revistas estén en el mismo formato de URL.

2) Con el conocimiento adquirido en la parte 1, ahora podemos recurrir a nuestro script para generar las URL. El siguiente script ejecuta un bucle hasta, que he modificado (crédito a su autor). Modifica este script colocando el número de revistas en la until [ $i = 63 ]parte y colocando la URL correcta después echoy asegurándose de que "$i"esté en la parte correcta de la URL que se repetirá para que cambie con cada ejecución del bucle. Las URL se generan y luego se agregan a un archivo de texto; esto sucede en una fracción de segundo cuando se ejecuta el script y no es tan complicado de configurar como parece.

Guarde el script en un editor de texto, hágalo ejecutable y ejecútelo; modifíquelo como se describe arriba cuando desee descargar desde undiferentesitio que mi ejemplo.

#!/bin/bash
   i=0
   until [ $i = 63 ] ; do
    i=$(($i+1))
    echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt
done 

3) Finalmente, asumiendo que url.txtestá en el directorio de trabajo actual, ejecute:

wget -i url.txt  

Si desea guardar las descargas en otro lugar, agregue -P ~/MyDirectorydespuésurl.txt

Funciona: si lo pruebas, ingresa ctrl cpara cancelar si no deseas descargarlos todos.

información relacionada