No próximo artigo, daremos uma olhada no Wget. Deve ser dito que GNU Wget é um ferramenta grátis que permite o download de conteúdo de servidores web de forma simples e rápida. Seu nome deriva de World Wide Web (w) e a palavra get (em inglês ter) Este nome passa a significar: obter da WWW.
Hoje existem dezenas de aplicativos para baixar arquivos de forma muito eficiente. A maioria deles é baseada em interfaces da web e de desktop e são desenvolvidos para todos os sistemas operacionais. No entanto, em Gnu / Linux (também existe uma versão para Windows) existe o poderoso gerenciador de download de arquivos wget. É considerado o downloader mais poderoso que existe. Suporta protocolos como http, https e ftp.
Baixar arquivos com wget
Baixe um arquivo
A maneira mais simples de usar esta ferramenta é fazer o download indicando o arquivo O que nós queremos:
wget http://sitioweb.com/programa.tar.gz
Baixe usando protocolos diferentes
Como um bom gerenciador de download, é possível solicitar mais de um download por vez. Podemos até usar protocolos diferentes na mesma ordem:
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg
Baixar por extensão
Outra maneira de baixar vários arquivos que usam a mesma extensão, estará usando o asterisco curinga:
wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf
Este comando nem sempre funciona, pois alguns servidores podem ter bloqueado o acesso a wget.
Baixe uma lista de arquivos
Se o que queremos é baixar os arquivos que estamos encontrando, só teremos que salvar seus URL em um arquivo. Vamos criar uma lista chamada arquivos.txt e iremos indicar o nome da lista ao comando. É necessário coloque apenas um url por linha dentro de arquivos.txt.
O comando que usaremos para baixar a lista criada e que salvaremos em arquivos .txt será o seguinte:
wget -i archivos.txt
Reiniciar um download
Se por algum motivo o download foi interrompido, poderemos continue o download de onde parou usando o opção c com o comando wget:
wget -i -c archivos.txt
Adicionar um registro sobre o download
Se quisermos obter um log sobre o download, a fim de controlar qualquer incidente nele, teremos que adicionar o -o opção como é mostrado a seguir:
wget -o reporte.txt http://ejemplo.com/programa.tar.gz
Limitar largura de banda de download
Em downloads muito longos, podemos limitar a largura de banda de download. Com isso, evitaremos que o download ocupe toda a largura de banda durante o download:
wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso
Baixe com nome de usuário e senha
Se quisermos fazer o download de um site onde um nome de usuário / senha é necessário, só teremos que usar estas opções:
wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3
Tentativas de download
Por padrão, este programa faz 20 tentativas para estabelecer a conexão e inicie o download, em sites muito saturados é possível que mesmo com 20 tentativas não tenha sido alcançado. Com a opção t aumenta para mais tentativas.
wget -t 50 http://ejemplo.com/pelicula.mpg
Baixe um site com wget
Wget não se limita apenas a downloads de arquivosPoderemos baixar uma página inteira. Teremos apenas que escrever algo como:
wget www.ejemplo.com
Baixe um site e seus elementos extras
com o opção p também faremos o download de todos os elementos extras necessários na página como folhas de estilo, imagens embutidas, etc.
Se adicionarmos o opção r se irá baixar recursivamente até 5 níveis do site:
wget -r www.ejemplo.com -o reporte.log
Converter links para locais
Por padrão, os links dentro do site apontam para o endereço de todo o domínio. Se baixarmos o site recursivamente e depois estudá-lo off-line, podemos usar o opção de conversão de links isso vai transformá-los em links locais:
wget --convert-links -r http://www.sitio.com/
Obtenha uma cópia completa do site
Teremos a possibilidade de obter uma cópia completa de um site. O –Opção de espelho é o mesmo que usar o opções -r -l inf -N que indica a recursão em um nível infinito e a obtenção do carimbo de data / hora original de cada arquivo baixado.
wget --mirror http://www.sitio.com/
Transformar extensões
Se você baixar todo o site para visualizá-lo offline, vários arquivos baixados podem não abrir devido a extensões como .cgi, .asp ou .php. Então é possível indicar com o Opção –html-extension Todos os arquivos são convertidos para uma extensão .html.
wget --mirror --convert-links --html-extension http://www.ejemplo.com
Estas são apenas diretrizes gerais do que você pode fazer com Wget. Quem quiser pode consultar o manual on-line consultar todas as possibilidades que este maravilhoso gerenciador de downloads nos oferece.
Quanto a "Baixar por extensão", parei de ler. Você não pode baixar o que você não conhece. A menos que o diretório solicitado permita a listagem de arquivos e não tenha um índice (e ambos devem ocorrer ao mesmo tempo), o que você diz não pode ser feito. Que nível.
Olá Rubén, a ignorância é um pouco ousada.
O que você comenta pode ser feito com um simples comando no google:
tipo de arquivo:pdf site:ubunlog.com
Neste exemplo não existe pdf neste blog, mas mude o domínio no final para a web de sua preferência e você verá como é fácil ver todos os arquivos de um tipo de web.
Tenha um bom dia.
Mas o wget não se conecta ao google para encontrar os pdfs que estão em uma url. O diretório web deve estar aberto e deve haver uma página de índice gerada por mod_autoindex ou similar, como diz Rubén Cardenal.
"Este comando nem sempre funciona, pois alguns servidores podem ter bloqueado o acesso ao wget."
Esta alteração que foi colocada neste artigo, porque não concordo com ela (embora tecnicamente seja possível bloquear certos agentes web para solicitações de cabeçalho http e retornar uma mensagem 403 "não permitido") e irei explicar o porquê:
Todos os servidores da web Apache (e estou falando de uma porcentagem considerável de servidores), por padrão, permitem globbing (excelente artigo da Wikipedia, leia: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .
Na prática, isso significa que, conforme especificado pelo sr. Rubén (e ele está certo), SE NÃO HOUVER ARQUIVO CHAMADO "index.php" ou "index.html" (ou mesmo simplesmente chamado de "index") o servidor irá retornar silenciosamente uma lista de arquivos e diretórios (claro no formulário de uma página html com as informações como um link da web para cada arquivo). A MAIORIA DOS SERVIDORES DA WEB DESATIVAM ESTE RECURSO ATRAVÉS DO ARQUIVO .htacces (estritamente falando Apache2) POR MOTIVOS DE SEGURANÇA.
Aqui está a versatilidade do wget (veja a história dele, novamente na Wikipedia, a que você mais conhece: https://es.wikipedia.org/wiki/GNU_Wget ) para analisar ou "analisar" essas informações e extrair apenas as extensões que solicitamos.
Agora, caso isso não funcione, por um motivo ou outro, podemos tentar outras funções wget avançadas, cito diretamente em inglês:
Você deseja baixar todos os GIFs de um diretório em um servidor HTTP. Você tentou 'wget http://www.example.com/dir/*.gif’, mas isso não funcionou porque a recuperação de HTTP não suporta GLOBBING (coloquei as letras maiúsculas). Nesse caso, use:
wget -r -l1 --no-parent -A.gif http://www.example.com/dir/
Mais detalhado, mas o efeito é o mesmo. '-r -l1' significa recuperar recursivamente (consulte Download recursivo), com profundidade máxima de 1. '–no-parent' significa que as referências ao diretório pai são ignoradas (consulte Limites baseados em diretório) e '-A. gif 'significa baixar apenas os arquivos GIF. '-A «* .gif»' teria funcionado também.
SE VOCÊ CORRER DESTA MANEIRA, o wget criará uma pasta para nós com o endereço web solicitado na pasta padrão onde estamos trabalhando, e fará subdiretórios se necessário e ali colocará, por exemplo, as imagens .gif que nós solicitação.
--------
No entanto, se ainda não for possível obter apenas alguns tipos de arquivos (* .jpg, por exemplo), teremos que usar o parâmetro «–page-requisites» que baixa todos os elementos internos de uma página html (imagens, sons, css, etc) junto com a própria página html ("–page-requisites" pode ser abreviado como "-p") e isso seria o equivalente a baixar algo como um "mhtml" https://tools.ietf.org/html/rfc2557
Eu espero que essa informação seja útil para você.
Obrigado pelas notas. Salu2.
Acho que você tem um erro, as duas primeiras linhas têm o mesmo comando.
Muito obrigado, tutorial muito bom!