Baixando arquivos com wget

O comando wget é um downloader de arquivos da Internet que pode baixar qualquer coisa de arquivos e páginas da Web até sites inteiros.

Uso básico

O comando wget está no formato de:
wget [opções] url

Por exemplo, em sua forma mais básica, você escreveria um comando mais ou menos assim:
wget http://www.domain.com/filename.zip

Isso fará o download do arquivo filename.zip de www.domain.com e o colocará em seu diretório atual.

Redirecionamento de saída

A -O opção define o nome do arquivo de saída. Se o arquivo se chama filename-4.0.1.zip e você deseja salvá-lo diretamente em filename.zip , você usaria um comando como este:
wget -O filename.zip http://www.domain.com/filename-4.0.1.zip

O programa wget pode operar em muitos protocolos diferentes, sendo os mais comuns ftp:// e http://.

Baixando em segundo plano.

Se você deseja baixar um arquivo grande e fechar sua conexão com o servidor, pode usar o comando:

wget -b url

Baixando vários arquivos

Se você deseja baixar vários arquivos, pode criar um arquivo de texto com a lista de arquivos de destino. Cada nome de arquivo deve estar em sua própria linha. Você então executaria o comando:

wget -i nomedoarquivo.txt

Você também pode fazer isso com um arquivo HTML. Se você tiver um arquivo HTML em seu servidor e quiser baixar todos os links dessa página, adicione --force-html ao seu comando, por exemplo:

wget --force-html -i nomedoarquivo.html

Limitando a velocidade de download

Normalmente, você deseja que seus downloads sejam o mais rápido possível. No entanto, se você deseja continuar trabalhando durante o download, deseja que a velocidade seja reduzida.

Para isso, use a --limit-rate opção. Você usaria assim:

wget --limit-rate=200k http://www.domain.com/filename.tar.gz

Continuando um download com falha
Se você estiver baixando um arquivo grande e ele falhar no meio, você pode continuar o download na maioria dos casos usando a -c opção.

Por exemplo:

wget -c http://www.domain.com/filename.tar.gz

Normalmente, quando você reinicia um download com o mesmo nome de arquivo, ele anexa um número começando com .1 ao arquivo baixado e começa do início novamente.

Baixando em segundo plano

Se você quiser baixar em segundo plano, use a -b opção. Um exemplo disso é:

wget -b http://domain.com/filename.tar.gz

Verificando se existem arquivos remotos antes de um download agendado

Se você quiser agendar um download grande com antecedência, vale a pena verificar se os arquivos remotos existem. A opção para executar uma verificação nos arquivos é --spider.

Em circunstâncias como essa, você geralmente terá um arquivo com a lista de arquivos para download. Um exemplo de como esse comando ficará ao verificar uma lista de arquivos é:

wget --spider -i nomedoarquivo.txt

No entanto, se for apenas um único arquivo que você deseja verificar, você pode usar esta fórmula:

wget --spider http://www.domain.com/filename.tar.gz

Copiar um site inteiro

Se você quiser copiar um site inteiro, precisará usar a --mirror opção. Como esta pode ser uma tarefa complicada, existem outras opções que você pode precisar usar, como -p, -P, --convert-links, --rejecte --user-agent.

-pEsta opção é necessária se você quiser todos os arquivos adicionais necessários para visualizar a página, como arquivos CSS e imagens
-PEsta opção define o diretório de download. Exemplo: -P downloaded
–convert-linksEsta opção irá corrigir quaisquer links nos arquivos baixados. Por exemplo, ele mudará quaisquer links que se refiram a outros arquivos que foram baixados para arquivos locais.
–rejectEssa opção impede o download de determinados tipos de arquivo. Se, por exemplo, você quisesse todos os arquivos, exceto arquivos de vídeo flash (flv), você usaria --reject=flv
–user-agentEsta opção é para quando um site tem proteção para evitar raspagem. Você usaria isso para definir seu agente de usuário para parecer que você era um navegador da Web normal e não o wget.

Usar todas essas opções para baixar um site ficaria assim:

wget --mirror -p --convert-links -P ./local-dir --user-agent="Mozilla/5.0 (Windows NT 6.3; WOW64; rv:40.0" http://www.domain.com/

DICA: Seja gentil

É sempre melhor pedir permissão antes de baixar um site pertencente a outra pessoa e mesmo que você tenha permissão é sempre bom jogar bem com o servidor deles. Essas duas opções adicionais garantirão que você não prejudique o servidor durante o download.

--wait=15 --limit-rate=50K

Isso aguardará 15 segundos entre cada página e limitará a velocidade de download a 50 K/s.

Esse artigo foi útil?

Também pode te interessar