Como baixar todas as imagens de um site usando o wget?

2

Eu quero que você me ajude com wget , eu quero baixar todas as imagens do site de imagens de estoque como https://pixabay.com/ , mas quando eu digitar o código no terminal nada está baixando, não jpg , não zip .

Eu usei este código:

wget -r -A jpg https://pixabay.com/

Às vezes, uso jpg ou zip dependendo do site. Eu tentei com mais sites:

http://www.freepik.com/
http://www.freeimages.com/
http://all-free-download.com/

Não está baixando nada.

    
por ali haider 15.06.2017 / 09:16

2 respostas

2

Primeiro, parece que eles não querem que você baixe as fotos deles. Por favor considere isso enquanto atua.

Tecnicamente, você poderá fazer o download das imagens usando tags / atributos personalizados. Você pode verificar seus atributos personalizados baixando a fonte html. Infelizmente wget (ainda) não suporta tags personalizadas arbitrárias. Basicamente você tem duas opções:

  1. Estenda o wget com esse recurso, conforme sugerido em link
  2. Faça o download da fonte e escreva seu próprio pós-processador.

No segundo caso, você precisa baixar o arquivo de índice e extrair a imagem url-s. Você precisa ter em mente que eles não querem que você use o wget, então eles proíbem a cadeia do agente do usuário. Você tem que fingir algo, por exemplo. mozilla. Se você está no Linux, algo como isto listaria as imagens para você:

wget -O --user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0"    "https://pixabay.com/en/photos/?q=cats&hp=&image_type=&cat=&min_width=&min_height=" | grep -o 'https://cdn.pixabay[^" ]*'

Você só precisa alimentá-lo de volta no wget e está pronto.

..... | xargs wget

edit: a solução da @ vera também é legal, no entanto, parece baixar uma fração de imagens no caso de uma pesquisa de imagens. [desculpe não há pontos suficientes para comentar:)]

    
por 15.06.2017 / 10:05
1

Aqui está o comando de trabalho:

wget -U "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0" -nd -r --level=1  -e robots=off -A jpg,jpeg -H http://pixabay.com/
  • -U "..." : O site está retornando o erro HTTP 403 (proibido), pois permite que apenas uma determinada lista de User-Agent acesse suas páginas. Você tem que estipular um User-Agent de um navegador comum (firefox, chrome, ...). O que eu te dei é um exemplo de trabalho.
  • -nd (no-directories) from man: "Não crie uma hierarquia de diretório ao recuperar recursivamente."
  • -e robots=off : não seguir HTTPS exclusão
  • -H : ative a recuperação de arquivos entre hosts (aqui pixabay.com e cdn.pixabay.com são considerados hosts diferentes)

se houver algum mecanismo de limite de taxa, adicione a seguinte opção --wait 1

    
por 15.06.2017 / 10:02

Tags