Utilitário semelhante ao Wget para baixar todas as imagens no diretório mysite.com/img/

Utilitário semelhante ao Wget para baixar todas as imagens no diretório mysite.com/img/

Meu acesso ao diretório mysite.com/img/ está bloqueado.

No entanto, todas as imagens nesse diretório estão no formato n.jpgem que n é a enésima imagem.

Meu acesso a mysite.com/img/n.jpgnão está bloqueado

Existe alguma maneira de salvar as imagens 1-500 ( mysite.com/img/1.jpgto mysite.com/img/500.jpg)?

Estou usando o Ubuntu 11.10

Responder1

A solução mais fácil é provavelmente usar expansões de chaves do bash

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

Existe também a opção de fazer um loop, permitindo esperar um pouco entre cada solicitação.

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

(O acima pode ser executado diretamente no shell.)

Responder2

Há também outra maneira de fazer isso wgetque usei com sucesso para um site, e você poderá modificar as instruções abaixo para outros sites. Envolve gerar uma lista de URLs e, em seguida, alimentar essa lista para wget.

1) Por exemplo, digamos que você deseja baixar todas as 63 revistas em PDF deRevista Círculo Completo(uma revista do Ubuntu), mas seu gerenciador de download não pode baixá-los todos de uma vez. Então encontre olinkdo primeiro arquivo pdf e verifique rapidamente se os links das demais revistas estão no mesmo formato de url.

2) Com o conhecimento adquirido na parte 1, podemos agora recorrer ao nosso script para gerar as urls. O script abaixo executa um loop até, que modifiquei (crédito ao seu criador). Você modifica este script colocando o número de revistas na until [ $i = 63 ]parte e colocando o URL correto depois echoe certificando-se de que "$i"está na parte correta do URL a ser ecoado para que ele mude a cada execução do loop. Os URLs são gerados e anexados a um arquivo de texto – isso acontece em uma fração de segundo quando o script é executado e não é tão complicado de configurar quanto parece!

Salve o script em um editor de texto, torne-o executável e execute-o; modifique-o conforme descrito acima quando quiser fazer download de umdiferentesite do que meu exemplo.

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

3) Por fim, supondo que url.txtesteja no diretório de trabalho atual, execute:

wget -i url.txt  

Se você quiser salvar os downloads em outro lugar, adicione -P ~/MyDirectorydepoisurl.txt

Funciona - se você tentar, entre ctrl cpara abortar se não quiser baixar todos!

informação relacionada