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
.
-p | Esta opção é necessária se você quiser todos os arquivos adicionais necessários para visualizar a página, como arquivos CSS e imagens |
---|---|
-P | Esta opção define o diretório de download. Exemplo: -P downloaded |
–convert-links | Esta 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. |
–reject | Essa 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-agent | Esta 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.