Como baixar sites inteiros com o wget!

Publicado em 16/09/2007 • geek, Linux, blog, webmaster, download19 comentários »

ESPECIAL E FÁCIL:
Se você não tem intimidade com o prompt de comando, pode usar esta interface que criei, para baixar sites inteiros com o WGet sem complicação:

É o GetSite (561 KB). Baixe em:

http://www.mediafire.com/?8yyjyij3wbr

Link alternativo aqui, no 4shared

Basta informar a URL e o caminho para salvar :)
Agora, se você preferir usar opções avançadas do wget, leia este tutorial.

por Marcos Elias, com base num tutorial do Eder S. G.

O EXPLORANDO É BOM DEMAIS! AS DICAS QUE NINGUÉM MOSTRA, AQUI VOCÊ TEM SEM FRESCURA!!! VEJA COMO BAIXAR AQUELA TÃO SONHADA GALERIA DE IMAGENS DO SEU SITE PREDILETO SEM TER DE CLICAR EM UMA POR UMA (DESDE QUE USEM LINKAGEM EM HTML SIMPLES), BAIXE SITES E BLOGS INTEIROS PARA LER OFF LINE OU FAZER O QUE QUISER!!! A WEB É SUA!

Há tempos eu havia dado aqui uma dica de programa para baixar sites inteiros, era shareware. Depois comentei do HTTrack, com interface gráfica e que tem versões para Windows e Linux, mas é um pouco falho. Isso faz tempo... Agora pouco dei a dica aqui de um tutorial cheio de comandos para o Linux, do Eder S. G., com base numa notícia publicada pelo Julio no GdH. Nesse tutorial havia muitas informações sobre o WGET, um programa de linha de comando para Unix/Linux, cujo objetivo é baixar arquivos da Internet. Muito usado em scripts, ele é uma boa também manualmente e para tarefas em lotes. Ele pode baixar sites inteiros! E para quem não usa Linux, não tem problema, existe uma versão para Windows também. No Linux, praticamente todas as distribuições incluem o wget. Para o Windows, procure por "wget for Windows" no Google que você deverá encontrar.

Dando o comando:

wget -r http://www.umsitequalquer.com.etc

Faz com que ele copie todo o site (salvando na pasta atual do prompt), incluindo imagens, seguindo os links e baixando todos os arquivos que encontrar. Claro que isso deve ser usado com responsabilidade, para não prejudicar o site e nem mesmo seu HD, pois facilmente você poderá enchê-lo de porcaria.

DICA QUE SÓ O EXPLORANDO DÁ PARA VOCÊ: por padrão, o wget ignora os arquivos que o produtor do site pediu para ignorar, por meio de um arquivo "robots.txt". Esse arquivo serve para os caçadores de sites dos buscadores, eles identificam quais arquivos não devem seguir os links. Isso impede que o wget baixe determinados arquivos, arquivos esses que muitas vezes são justamente os que você precisa. Para fazê-lo ignorar os arquivos "robots.txt" e baixar tudo o que encontrar, basta usar o parâmetro -erobots=off. Ficaria assim:

wget -r -erobots=off http://www.umsitequalquer.com.etc

Se você quiser baixar apenas arquivos de determinado tipo, use o parâmetro -A seguido da extensão, por exemplo:

wget -r -erobots=off -A ".gif" http://www.umsitequalquer.com.etc

Boa sorte, juízo e por favor, responsa sempre! Use essas dicas com cuidado, pois isso em excesso pode prejudicar os sites. Não somos contra o compartilhamento de informação, cada um faz o uso que quiser, sob sua inteira responsabilidade.

A sintaxe básica é essa aí, deixo aqui o trecho do texto do Eder que fala do wget, vale a pena :)

Aproveitando, comentei recentemente aqui sobre várias críticas ao Linux (algumas exclusivamente pessoais e momentâneas, outras globais), mas há coisas que no Linux você tem primeiro, realmente :) Como digo, eu amodeio o Linux, hehe. Bom, vamos ao tutô do wget!

Comando wget = software que faz o download de arquivos da WWW
por Eder S. G. (Jordam)
ederjordam@yahoo.com.br
http://geocities.yahoo.com.br/ederjordam

Sintaxe:
wget URL:porta/path

- Comeca a fazer o download do arquivo 'file1.avi'
wget http://www.site.com.br/file1.avi

- Caso a conexao termine e o download do arquivo 'file1.avi' não tenha terminado, basta reiniciar do ponto onde caiu a conexão, usando o parametro '-c'
wget -c http://www.site.com.br/file1.avi

- Copia todo o conteúdo do site referente à este dominio
wget -r http://www.dominio.com/

- Baixa apenas páginas html do site, deixando de lado as imagens e outros arquivos. Neste caso você usa o parâmetro '-A', seguido dos tipos de arquivos a serem baixados. O wget automaticamente converte páginas php, asp e outras extensões para html, de forma que esse comando funciona bem com a maioria dos sites
wget -r -A ".html" http://www.uol.com.br

- Baixando um arquivo via FTP com com senha. EX:
wget ftp://login@senha@http://ftp.ibiblio.org/teste.iso
ou
wget ftp://user:password@host/path

- Faz o download do arquivo 'file1.txt' especificando o nome de usuário sendo 'user1', a senha sendo 'senha88', e o caminho do arquivo no servidor ftp
wget user1:senha88@ftp.ederjordam.com/home/ederjordam/file1.txt

- Copia um arquivo especifico, no exemplo seria index.html e grava no diretorio '/tmp' com o nome de 'teste.html'
wget -O /tmp/teste.html http://www.site.com/files/index.html

- Copia todas as páginas HTML do site 'http://www.uol.com.br/remedios'
wget -m -l 0 -A htm http://www.uol.com.br/remedios

- Copia a página web e suas imagens para o respectivo diretório que voce se encontra
wget -r -np -k http://whatever/wherever

- Copia todo o site para o seu computador
wget -t0 -r -F http://www.dominio.com

- Faz o espelhamento (mirror) do site. OBS: Um espelhamento mal projetado pode contribuir para encher seu disco rígido com material não desejado, além de sobrecarregar a Internet e o servidor sendo espelhado
wget -m http://members.xoom.com/edersg/

- Uma aranha, no contexto da Internet é um programa que serve para verificar se os links de uma página estão ativos, ou seja, verificando se cada vínculo HREF está conectado (ativo), verificando se os links de uma determinada página local, chamada de links.html, estão ativos
wget --spider --force-html -i links.html

- Faz o mesmo que a opção acima, porem o arquivo agora analizado se encontra na Internet
wget --spider http://members.xoom.com/edersg/links.html

- Para fazer o download apenas de imagens nos formatos jpg, gif e png
wget -P /tmp/pastaespecifica -r -p http://www.unicamp.br --accept=JPG,jpg,GIF,gif,png,PNG

- Para fazer o download de todos os aquivos de um site
wget -c -r ftp://meu.servidor.com/

- Para fazer o download do arquivo 'arquivo.txt' de um ftp que exija login e senha
wget ftp://login:senha@ftp.servidor.com/pasta/arquivo.txt
wget ftp://usuario:senha@servidor_ftp.com.br/arquivo.extensao

- Para limitar o download a no máximo 10Kbps
wget --limit-rate=10k --continue http://algumendereco/arquivo.zip

- O wget pode também retomar transferências interrompidas (opção '-c') quando se fornece o arquivo incompleto ao qual se acrescenta os restantes dados. Esta operação precisa de ser suportada pelo servidor
wget -c http://o.url.do/arquivo/incompleto

Entretanto, lembre-se que nem todos os sites estão abertos para espelhamento, o direito autoral deve ser respeitado. E também, existem sites que possuem arquivos robots.txt que especificam quais partes do site podem ser copiadas e quais não. Portanto, não se surpreenda se descobrir que determinado site ou página não pode ser recuperado.

- Se tiver tantas interrupções na transferência de arquivo como eu tenho no meu escritório, pode dizer ao wget para tentar o URL várias vezes
wget -t 5 http://coloque.o.seu.url/aqui
aqui desistimos ao fim de 5 tentativas. Use a opcao '-t inf' para nunca
desistir.

- E quanto a proxy firewalls? Use a variável de ambiente "http_proxy" ou o arquivo de configuração ".wgetrc" para especificar um proxy através do qual irá fazer a transferência de arquivos. Um problema com ligações via proxy com ligações interrompidas é que o retomar pode por vezes falhar. Se uma transferência via proxy é interrompida o servidor proxy irá colocar em cache somente uma cópia incompleta do arquivo. Quando tentar usar "wget -c" para obter o resto do arquivo o proxy irá verificar a sua cache e informar erradamente que o arquivo completo já foi transferido. Pode conseguir que a maioria dos proxyes não passe pelo cache, adicionando um cabeçalho especial ao pedido de transferência de arquivos:
wget -c --header="Pragma: no-cache" http://coloque.o.seu.url/aqui

- A opção "--header" pode adicionar qualquer número e tipos de cabeçalhos pelos quais podemos modificar o comportamento dos servidores de rede e dos proxies. Alguns sítios recusam-se a servir arquivos via uma ligação externa; o conteúdo é entregue somente a navegadores se acederem a página via outra página no mesmo sítio. Pode contornar isto adicionando um cabeçalho 'Referer:'
wget --header="Referer: http://site.com/pagina"
http://navegar.para.esta/pagina

- Alguns sites na rede particularmente anti-sociais irão fornecer conteúdo somente a um tipo específico de navegador. Contorne isto com um cabeçalho "User-Agent:" header:
wget --header="User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; WindowsNT; DigExt)" http://so.url.msie/aqui

Aviso: a dica acima pode ser considerada um mecanismo para evitar licenciamento de conteúdo e existem sistemas legais anti-sociais que consideram estas acções ilegais. Verifique a legislação local.

- A opção "-N" para o wget irá verificar o selo temporal do objectivo e parar a transferência se eles coincidirem, o que é uma indicação que o ficheior completo foi transferido. Por isso pode activa-lo e esquece-lo
wget -c -N http://coloque.o.seu.url/aqui

- Recuperando downloads interrompidos - uma das características que tornam interessantes o uso do wget é sua capacidade para recuperar downloads interrompidos, desde, é claro, que o servidor suporte este recurso. Você pode recuperar downloads perdidos especificando a opção '-c' na linha de comando do wget
wget -c http://www.dominio.com/arquivo.tar.gz

- Espelhamento de sites - outro recurso interessante é o espelhamento de sites, também conhecido como mirror. O wget é capaz de fazer espelhamento de sites, mas tenha cuidado: um espelhamento mal projetado pode contribuir para encher seu disco rígido com material não desejado, além de sobrecarregar a Internet e o servidor sendo espelhado. Você faz um espelhamento utilizando a opção -m (de mirror). Lembre-se que nem todos os sites estão abertos para espelhamento. Existem sites que possuem arquivos 'robots.txt' que especificam quais partes do site podem ser copiadas e quais não. Portanto, não se surpreenda se descobrir que determinado site ou página não pode ser recuperado
wget -m http://www.dominio.com/diretorio/

- O comando 'at' pode ser utilizado para agendar uma tarefa em um momento específico do dia. Este comando vai agendar para a 1 hora da madrugada o download do arquivo http://www.dominio.com/file01.tar.gz'. O resultado do download (no caso, mensagens do wget), serão enviados para voce via comando 'mail'
echo "wget http://www.dominio.com/file01.tar.gz" | at 01:00

- Uma 'aranha', no contexto da Internet, é um programa que serve para verificar se os links de uma página estão ativos. A referência surgiu por que o programa examina a página como se fosse um ponto de uma teia (web), verificando se cada fio (vínculo HREF) está conectado (ativo). Para utilizar o wget como aranha, usamos a opção '--spider'. Para verificar se os links de uma determinada página local, chamada de 'bookmark.html' estão ativos, basta digitar o comando acima. A opção '--force-html' obriga o arquivo local 'bookmark.html' a ser tratado como arquivo HTML
wget --spider --force-html -i bookmark.html

Se o arquivo reside na Internet, a sintaxe pode ser simplificada wget --spider http://www.dominio.com/linuxlinks.html

- Baixa o conteúdo de um web site
wget -c -t70 -r -np http://www.dominio.com.br

- Passa alguns parametros como usuário e senha para poder baixar o conteúdo de um site
wget -c -r --http-user=usuario --http-passwd=senha link

-c : esta opção informa ao wget para continuar o download de onde terminou se encontrar um arquivo parcial. Se não fosse informada esta opção, ele criaria novo arquivo e começaria o download do início.

-t0 : com esta opção, estou informando ao wget que, caso o download falhe, ele deve repetir indefinidamente o mesmo. É preciso cuidado com esta opção, principalmente se o comando será executado em uma sexta-feira para ser verificado somente na segunda feira - se a URL estiver errada, o wget vai ficar tentando encontrar o arquivo indefinidamente.

-T30 : o wget utiliza a facilidade de timeout, mas seus limites de tempo não são satisfatórios, pelo menos não para mim. Com esta opção, estou informando ao wget que, se não houver fluxo de dados por 30 segundos, ele deve refazer a conexão.

-i get-list.txt : esta opção informa ao wget que este deve ler as URL's a serem baixadas a partir de um arquivo, a saber, get-list.txt (pode ser qualquer nome), em vez de receber a mesma na linha de comando.


MAIS DICAS E TUTORIAIS!
Acesse as dicas mais recentes no Explorando.com.br :).


Dicas de inglês



Aviso: Os comentários são postados pelos visitantes do site, e não expressam a opinião da produção. Eventuais comentários indesejados, ofensivos ou que firam nossas políticas ou interesses de alguma forma poderão ser removidos sem aviso prévio. Ao comentar, seu IP ser[a gravado em log, assim como em praticamente todo blog. Evite comentários inúteis.
COMENTÁRIOS DESATIVADOS: A partir de abril de 2011 os comentários nesta seção antiga do site foram desativados, porque estava vindo muito SPAM automático. Para dúvidas ou novos comentários sobre algo que você não entendeu, poste no fórum que tanto a equipe como outros visitantes poderão lhe ajudar.

19 comentários

Comentário de: Anonymous [Visitante]
Boa, gostei do GetSite, ele só será em ingles? Ele foi util!
08.10.07 @ 17:50
Comentário de: Marcos Elias [Visitante]
Oi anônimo, que bom que gostou :)

Haverá em breve uma versão em português também, assim que ele for "oficializado", pois por enquanto nem entrou na página dos softwares do grupo (falta de tempo :)

Provavelmente colocaremos um aviso aqui no Explorando quando sair em português.
09.10.07 @ 02:59
Comentário de: Alea jacta est [Visitante]
vou testar,mas gostaria de saber,como se copia o haloscam de um blogger
uso o Winhttrack,e não consegui .
não entendo nada de inglês.
obrigado
07.01.08 @ 15:13
Comentário de: rafael [Visitante]
vlw aew cara vc e d+ ow so tenho uma duvida tipo eu copiei um site q tem painel de adm tem como eu descobrir a senha do painel pq o painel q coloca os downloads por la ??
12.04.08 @ 20:01
Comentário de: Marcos Elias [Visitante]
Não, isso não tem como por esse meio não :)
13.04.08 @ 02:34
Comentário de: Rafael K. [Visitante] Email
Muito bom esse programa mas tenho uma duvida, achei um site q vende templates e consegui baixar um com o modo de previsualização q tem nele, copiei a url para esse programa e baixou completinho. Editei ele com o Dreamweaver e queria saber se isso é ilegal pois copiei gratis um template q estava a venda.
16.12.08 @ 03:32
Comentário de: Marcos Elias [Visitante] Email · http://www.explorando.com.br
Rafael, acho que não dá nada não... rsrs

O wget não baixaria nada que não estivesse publicado na web, se o site publicou uma pré-visualização utilizável, fica complicado comprar se pode-se pegar essa visualização e modificar.

Não seria mto "justo" ou "honesto", além do que muitos sites que vendem templates (não sei o caso do seu) vendem temas que acham por aí de graça.
16.12.08 @ 12:15
Comentário de: Giovanni [Visitante] Email
Excelente ideia a sua de cria uma uma tela q facilita tudo pra leigos etc. Mas, uma das qualidades do wget vc não incluiu. Fui instalar o virtualbox e o programa estupido desconectou minha net não sei porque cargas dágua ja q na primeira tela ele quer meu nome e email. Vc explica como alguem cria um programa q desliga a net e logo em seguida pede pra o usuario se registrar? Então, perdi a conexão e tudo q tava baixando ja q sua tela não dá a opção de retomada e não sei executar o wget de oura maneira. Imagina, tava baixando o ubuntu studio de 1,2g e vpu perder tudo? ONde tem e como wintala o wget pra win? Baixei e isntalei e o propt diz "comando invalido". Dá pra quebrar o galho e me dizer como continua o meu download de onde parei?
obrigado.
13.01.09 @ 20:05
Comentário de: Elyseo Mesquita [Visitante] Email
Giovanni cara,
No Windows faça o seguinte:
Pré-requisito claro( wget-1.11.4-1-setup.exe já instalado. );

-> Meu computador -> Propriedades -> Avançado -> Variáveis de Ambiente;
-> Na guia Variáveis do Sistema:
-> Edite a variável "Path" e adicione
o caminho para o executável do "wget".

No meu caso "C:\Arquivos de programas\GnuWin32\bin".

Pronto! no PROMPT vc vai conseguir chamar o WGET.

ok.
12.02.09 @ 02:47
ola.

cara eu peguei esse seu programa pra baixar todos os arquivos de site php

pra mim poder fazer um site

mais eu coloco pra baixar td e nada vem soh vem ah pagina index pow

como eu faço pra baixar os arquivos php e pastas?
22.12.09 @ 20:25
Comentário de: Carlos Daniel [Visitante]
Tanto tempo usando o wget no Linux e nunca percebi o poder do parâmetro "-r", agora nem uso mais esses programas
28.12.09 @ 06:20
Comentário de: Noooo [Visitante]
quero saber quem consigue baixar um site completo coms os php de config
14.01.10 @ 13:26
Comentário de: Marcos Elias [Membro] Email · http://www.explorando.com.br
Sem acesso ao servidor de alguma forma fica difícil, pela web não deve existir meio não... Afinal as páginas são estregues prontas, pegar o código delas aí seria um caso de invasão, o que é ilegal.
14.01.10 @ 13:27
Comentário de: TopTec [Visitante] Email · http://www.toptec.net.br/
isso é excelente para desenvolvedores web em faze inicial
20.08.10 @ 09:15
Comentário de: Dainel [Visitante]
Olá, muito interessante o site.
tem como eu baixar um site inteiro que funciona como blog? para eu poder usar o template em outro site?
abraços!
17.11.10 @ 16:48
Comentário de: Anonimo [Visitante]
Ele baixa os liks também
17.11.10 @ 19:33
Comentário de: Daniel [Visitante] Email
Olá... o programa é show demais. Só que estou com um problema ao realizar o download. Ele baixa tudo, com exceção da pasta de CSS. Não sei se o erro é meu (estou desabilitando apenas o checkbox do "ignore robots.txt"). O que fazer?
01.04.11 @ 06:29
Comentário de: DJ Sander MIx [Visitante] · http://www.djsandermix.webs.com
D+++++ !!! carra, cmo vc falou, vc q fez esseprograma?? parabéns!!! baixei tudo oq eu queria

valewwww
15.04.11 @ 10:39
Comentário de: Marcos Elias [Membro] Email · http://www.explorando.com.br
Eu fiz a interface, o wget mesmo é um popular programa open source de linha de comando :) Vlw!
15.04.11 @ 10:40