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
-A
opçã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-P
opção de prefixo do diretório . Se você estiver baixando um único tipo de arquivo, como apenas jpg, use algo comowget -r -A.jpg http://www.domain.com
. Veja os exemplos avançados que a documentação do Wget fornece.-nd
ao acima faz com que funcione. Você também pode especificar vários sinalizadores -A, como-A "*foo*" -A "*bar*"
--level=inf
ou--level=9999999999
porquewget
provavelmente sabotará o trabalho devido ao nível máximo de profundidade de recursão padrão de5
.-nd
: sem diretórios (salve todos os arquivos no diretório atual;-P directory
altera o diretório de destino)-r -l 2
: nível recursivo 2-A
: extensões aceitas-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 comandorobotos=off
como se fosse parte do.wgetrc
arquivo. 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
.jpg
arquivos de uma listagem de diretório exemplar:fonte
Eu escrevi um shellscript que resolve esse problema em vários sites: https://github.com/eduardschaeli/wget-image-scraper
(Raspa imagens de uma lista de URLs com o wget)
fonte
Tente este:
e aguarde até excluir todas as informações extras
fonte
wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
De acordo com a página de manual, o sinalizador -P é:
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.
fonte
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.
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.
fonte
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
fonte