Como uso o Wget para baixar todas as imagens em uma única pasta, a partir de um URL?


133

Estou usando o wget para baixar todas as imagens de um site e funciona bem, mas armazena a hierarquia original do site com todas as subpastas e, portanto, as imagens são pontilhadas. Existe uma maneira de apenas baixar todas as imagens em uma única pasta? A sintaxe que estou usando no momento é:

wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Respostas:


194

Tente o seguinte:

wget -nd -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.somedomain.com

Aqui está mais informação:

-ndimpede a criação de uma hierarquia de diretórios (ou seja, nenhum diretório ).

-rpermite recuperação recursiva. Consulte Download recursivo para obter mais informações.

-P define o prefixo do diretório em que todos os arquivos e diretórios são salvos.

-Adefine uma lista de permissões para recuperar apenas determinados tipos de arquivo. Seqüências de caracteres e padrões são aceitos e ambos podem ser usados ​​em uma lista separada por vírgula (como visto acima). Consulte Tipos de arquivos para obter mais informações.


5
Isso realmente não funcionou para mim. Meu local de salvamento era "." e copiou toda a hierarquia do site lá.
Buttle Butkus

2
@ButtleButkus Parece que você precisa mexer um pouco mais com a -Aopção de aceitação , consulte a documentação do Wget sobre os tipos de arquivos . Além disso, se você estiver baixando para o diretório atual, poderá remover a -Popção de prefixo do diretório . Se você estiver baixando um único tipo de arquivo, como apenas jpg, use algo como wget -r -A.jpg http://www.domain.com. Veja os exemplos avançados que a documentação do Wget fornece.
8114 Jon

Adicionando -nd ao acima faz com que funcione. Você também pode especificar vários sinalizadores -A, como-A "*foo*" -A "*bar*"
Yablargo

1
Não se esqueça de usar --level=infou --level=9999999999porque wgetprovavelmente sabotará o trabalho devido ao nível máximo de profundidade de recursão padrão de 5.
user619271

127
wget -nd -r -l 2 -A jpg,jpeg,png,gif http://t.co
  • -nd: sem diretórios (salve todos os arquivos no diretório atual; -P directoryaltera o diretório de destino)
  • -r -l 2: nível recursivo 2
  • -A: extensões aceitas
wget -nd -H -p -A jpg,jpeg,png,gif -e robots=off example.tumblr.com/page/{1..2}
  • -H: span hosts (o wget não baixa arquivos de diferentes domínios ou subdomínios por padrão)
  • -p: requisitos da página (inclui recursos como imagens em cada página)
  • -e robots=off: execute o comando robotos=offcomo se fosse parte do .wgetrcarquivo. Isso desativa a exclusão do robô, o que significa que você ignora o robots.txt e as metatags do robô (você deve saber as implicações disso, tenha cuidado).

Exemplo: obtenha todos os .jpgarquivos de uma listagem de diretório exemplar:

$ wget -nd -r -l 1 -A jpg http://example.com/listing/


9

Tente este:

wget -nd -r -P /save/location/ -A jpeg,jpg,bmp,gif,png http://www.domain.com

e aguarde até excluir todas as informações extras


Não está funcionando para mim. wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Vivo

5

De acordo com a página de manual, o sinalizador -P é:

-P prefix --directory-prefix = prefix Defina o prefixo do diretório como prefixo. O prefixo do diretório é o diretório em que todos os outros arquivos e subdiretórios serão salvos, ou seja, na parte superior da árvore de recuperação. O padrão é (o diretório atual).

Isso significa que ele especifica apenas o destino, mas onde salvar a árvore de diretórios. Não achatar a árvore em apenas um diretório . Como mencionado antes, o sinalizador -nd realmente faz isso.

@ Jon no futuro, seria benéfico descrever o que a bandeira faz para entendermos como algo funciona.


2

As soluções propostas são perfeitas para baixar as imagens e, se for suficiente, você salve todos os arquivos no diretório que está usando. Mas se você quiser salvar todas as imagens em um diretório especificado sem reproduzir toda a árvore hierárquica do site, tente adicionar "cut-dirs" à linha proposta por Jon.

wget -r -P /save/location -A jpeg,jpg,bmp,gif,png http://www.boia.de --cut-dirs=1 --cut-dirs=2 --cut-dirs=3

nesse caso, os cut-dirs impedirão o wget de criar subdiretórios até o 3º nível de profundidade na árvore hierárquica do site, salvando todos os arquivos no diretório especificado. Você pode adicionar mais 'cut-dirs' com números mais altos, se desejar estão lidando com sites com uma estrutura profunda.


-7

O utilitário wget recupera arquivos da World Wide Web (WWW) usando protocolos amplamente usados ​​como HTTP, HTTPS e FTP. O utilitário Wget é um pacote disponível gratuitamente e a licença está sob licença GNU GPL. Este utilitário pode ser instalado em qualquer sistema operacional semelhante ao Unix, incluindo Windows e MAC OS. É uma ferramenta de linha de comando não interativa. A principal característica do Wget é sua robustez. Ele foi projetado de forma a funcionar em conexões de rede lentas ou instáveis. O Wget inicia automaticamente o download de onde foi interrompido em caso de problemas na rede. Também baixa o arquivo recursivamente. Ele continuará tentando até que o arquivo seja recuperado completamente.

Instale o wget na máquina linux sudo apt-get install wget

Crie uma pasta na qual deseja baixar arquivos. sudo mkdir myimages cd myimages

Clique com o botão direito do mouse na página da web e, por exemplo, se você deseja o local da imagem, clique com o botão direito do mouse na imagem e copie o local da imagem. Se houver várias imagens, siga o seguinte:

Se houver 20 imagens para baixar da Web de uma só vez, o intervalo começará de 0 a 19.

wget http://joindiaspora.com/img {0..19} .jpg


2
Sua resposta explica o que é o wget e como usá-lo para baixar imagens numeradas em sequência ... nem estão relacionadas à pergunta original.
Alastair
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.