1. 07/07/13
Baixando sites inteiros com o wget - Dicas
Guia do hardware
GDH Press
Fórum GdH
Publique seu texto
RSS
Home
Equipe
Efetuar Login
Índice das dicas
Notícias
Baixando sites inteiros com o wget
Buscar...
Notícias
Marcos Elias Picão criou 17/out/2007 às 12h38
8
Muitas vezes você encontra um site cheio de coisas interessantes, mas não dispõe de tempo
para ler on line na hora. Ou, encontra algo tão importante que pretende guardar em C D ou
DVD, para nunca perder. A natureza dos sites da web não permitem isso. Você entra, acessa
um site e navega pela página. Se quiser outro conteúdo, deve clicar num link, então o mesmo
é descarregado até a sua tela. Fica complicado, por exemplo, querer salvar um site inteiro no
seu computador clicando nos links e salvando página por página.
Lá vem a computação novamente, com sua rapidez e "inteligência". Sim, inteligencia entre
aspas porque as máquinas em si são burras, meros papagaios, como você sabe só fazem
aquilo que foi previamente programado. Há programas que podem baixar os sites inteiros, sem
que você precise entrar e clicar em link por link. O que esses programas fazem é seguir os
links das páginas, deifinidos em HTML pela tag <a href=...>. No final do processo, você pode
ter todo o site ou várias páginas e arquivos do seu interesse.
Existem vários programas que se propõem a isso, a maioria para Windows, normalmente
pagos. Quase sempre o que se encontra são sharewares, que se limitam a funcionar por um
período determinado ou baixam apenas um certo número de páginas, sendo liberados somente
na versão completa. Há um gratuito e open source, o HTTrack (WinHTTrack, na versão para
Windows), é bom e relativamente bastante usado, por ser fácil e bastante personalizável. Mas
há muito tempo há uma outra solução gratuita e aberta, muito conhecida pelos usuários de
Linux: o wget. O wget é um programa criado inicialmente para o ambiente Unix/Linux, cujo
objetivo principal é baixar arquivos da internet. Ele pode ser usado em scripts, tornando a
programação de diversas "aplicações" bem mais fácil. Para felicidade de quem usa Windows,
saiba que há uma versão portada dele para o Windows, que funciona exatamente da mesma
forma da versão Unix. E para quem quer baixar sites inteiros ou várias páginas, ele também
tem esse recurso. De quebra, é um programa bem pequenininho, operado via linha de
comando, o que permite o uso fácil em scripts ou a criação de interfaces.
Antes de começar, tenha em mente que baixar sites inteiros pode prejudicar os sites. Além dos
sites em si, essa tarefa que pode consumir muita banda de download deles, você pode acabar
prejudicando outros sites que estejam hospedados no mesmo servidor, especialmente se for
um hospedeiro compartilhado - mesmo comercial. Muita gente não tem noção de que baixar
sites de uma vez ou acessar excessivamente arquivos grandes pode ser prejudicial, e faz isso
sem saber; é bom que você esteja consciente para não abusar.
Obtendo o wget
Quase toda distribuição de Linux inclui ele. C aso não inclua, experimente instalá-lo usando o
gerenciador de pacotes da sua distribuição. Se você usa Windows, pode baixá-lo em:
http://pages.interlog.com/~tcharron/wgetwin.html
O básico do wget
Para baixar um arquivo com o wget, basta dar o comando wget seguido pelo caminho do
arquivo na internet. Exemplo:
we ht:/w.mieulurcmecaqiozp
gt tp/wwustqaqe.o.t/ruv.i
E o arquivo será baixado na pasta atual do prompt de comando. C aso o download seja
interrompido (porque o computador trave, ou o usuário tecle C TRL + C no prompt), é possível
recontinuar do ponto em que parou, caso o servidor suporte o recurso. Basta informar, antes
da URL, o parâmetro -c, e claro, usar a mesma pasta que contém o "pedaço" anterior do
arquivo:
Guias
O que há de novo?
05/07
· MEGA lança app para Android
· Ambiente LXDE publica preview de uma versão baseada
em Qt
03/07
· Precision Touchpad: proposta irá melhorar a experiência
de uso do Windows 8 em notebooks
· Smart Search do Windows 8.1 terá anúncios do Bing Ads
02/07
· Bing adiciona filtros para buscar imagens com licença
C reative C ommons
· Lançado Opera 15 final para Windows e Mac, com motor
do C hromium
· Lançado Skype 4.0 para Android: app foi reescrito do
zero
01/07
· MS encerra assinaturas da TechNet
· Go Read: um clone open source do finado Google
Reader
· Firefox OS está sendo lançado na Espanha
28/06
· Google Maps agora inclui rotas de ônibus intermunicipais
e interestaduais no Brasil
· Ubuntu 13.10 já deverá vir com o servidor gráfico Mir
26/06
· Download do Windows 8.1 Preview
· Xen4C entOS: projeto colaborativo leva de volta o Xen
aos servidores com C entOS
· YouTube ficará mais rápido para iniciar o carregamento
dos vídeos
20/06
· Lançado alpha da OpenMandriva
· Microsoft se arrepende e elimina características
restritivas do Xbox One
· Microsoft pagará até US$ 100.000 pela descoberta de
vulnerabilidades no Windows 8.1
18/06
· Seattle: primeiro processador ARM da AMD, para
servidores
· Adobe lança C reative C loud: software por assinatura
Notícias do mês de Julho de 2013 »
ArtigosTutoriais
Livros Dicas Análises
Livros
we - ht:/w.mieulurcmecaqiozp
gt c tp/wwustqaqe.o.t/ruv.i
Muita gente usa o wget como gerenciador de downloads (no Linux), em vez de baixar os
arquivos pelos navegadores. Ele não acelera os downloads (como fazem os "aceleradores de
downloads", que abrem várias conexões), mas permitir recontinuar do ponto em que parou é
muito útil, especialmente para quem acessa com conexão lenta ou instável, que cai toda hora.
Baixando sites inteiros
Passando o parâmetro -r, ele baixará todos os arquivos encontrados no domínio. C uidado, use
com atenção e responsabilidade! Além de poder atrapalhar o site, você poderá baixar muita
coisa inútil. A sintaxe seria:
we - ht:/w.mieulurcmec
gt r tp/wwustqaqe.o.t
Compre o seu. Livro atualizado!
Ele seguirá os links definidos em HTML, pela tag <a href...> nas páginas. Links em JavaScript
ou em flash não serão reconhecidos, e as páginas não serão baixadas. No caso do JavaScript,
é quase impossível um programa sair baixando tudo realmente, pois há várias formas de se
"programar" links em JavaScript.
Por padrão, o wget ignora os arquivos que o produtor do site pediu para ignorar, por meio de
um arquivo especial, o "robots.txt". Esse arquivo serve para os motores de busca de sites de
pesquisa; eles lêem o arquivo e ficam sabendo para 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:
www.hardware.com.br/dicas/baixando-sites-wget.html
1/4
2. 07/07/13
Baixando sites inteiros com o wget - Dicas
we - -rbt=f ht:/w.mieulurcmec
gt r eoosof tp/wwustqaqe.o.t
Apesar de tecnicamente possível, é um meio não muito legal fazer isso. Essa opção erobots=off não é comentada em muitos lugares. Novamente alerto, use com responsabilidade
ou quando precisar "mesmo", afinal não devemos ser contra a divulgação de informações.
Você pode usá-la, por exemplo, quando quiser baixar um arquivo linkado mas que não esteja
disponível para ser indexado pelos buscadores (via robots.txt), já que o wget o ignoraria.
Uma dica para reduzir a quantidade de downloads é baixar apenas arquivos de determinado
tipo, por exemplo, apenas páginas HTML. Isso é possível com o parâmetro -A, especificando a
seguir o tipo de arquivo pela extensão. Veja:
we - - "hm"ht:/w.mieulurcmec
gt r A .tl tp/wwustqaqe.o.t
As páginas ASP, PHP, entre outras, serão convertidas em HTML pelo wget (até porque serão
páginas já processadas quando o wget acessá-las), ou seja, você não precisará se preocupar
em ficar digitando todas as extensões possíveis para as páginas. Da mesma forma, fica fácil
baixar todas as imagens:
we - - "gf ht:/w.mieulurcmec
gt r A .i" tp/wwustqaqe.o.t
ou
we - - "jg ht:/w.mieulurcmec
gt r A .p" tp/wwustqaqe.o.t
Depende do que você precisa.
Dica direta para baixar sites inteiros: o wget possui o parâmetro -m, ideal para fazer
espelhamentos de sites (mirroring), onde ele já ativa as opções necessárias. Se seu objetivo é
fazer um mirror do site, pode ir direto ao ponto:
we - ht:/w.mieulurcmec
gt m tp/wwustqaqe.o.t
Outra coisa é a identidade do navegador. Alguns sites só oferecem o conteúdo ao verificarem
que é determinado navegador que está acessando a página (como o IE, por exemplo), e o
wget não conseguiria acesso aos arquivos. Pode-se fingir a identidade de navegador com esse
parâmetro:
-ue-gn=Mzla40(optbe MI 60 WnosN 50"
-sraet"oil/. cmail; SE .; idw T .)
C olocando no texto entre aspas a identificação do navegador e sistema que você quiser.
Páginas protegidas com senha
Páginas que exibem uma tela de login personalizada, via web mesmo, provavelmente não
poderão ser baixadas. Digamos que você queira baixar todo o conteúdo do Orkut, ou de uma
comunidade ou fórum restrito. Ao acessar a página, vem uma página do site que pede o login e
a senha. O wget pararia nela e se limitaria a pegar as páginas linkadas à ela diretamente.
No entanto, páginas que pedem senha diretamente pelo servidor, podem ser baixadas. Estas
podem ser acessadas passando o nome e a senha diretamente na URL, com o wget não seria
diferente:
we ht:/sai:eh@evdrcmecaqioec
gt tp/uurosnasrio.o.t/ruv.t
Também pode ser usado para servidores FTP, bastando trocar o http:// por ftp://.
Outros parâmetros importantes
Através de diversos parâmetros podemos controlar melhor o donwnload dos arquivos. Eis
alguns importantes:
-0
t
Número de vezes que ele deve tentar baixar um arquivo, caso não consiga. Definindo zero
deixa configurado como "ilimitado", o que faz ele ficar tentando até conseguir baixar. Observe
que deve-se deixar o número logo ao lado da letra "t", sem espaço. É bom usá-lo mas com
cuidado, num site com muitos arquivos e uma conexão ruim, você pode ficar forçando o
download de vários arquivos que nunca serão baixados, à toa. Por precaução, defina um
número menor, como -t3 ou -t5.
c
Permite continuar downloads interrompidos, sem que ele precise baixar o que já foi baixado,
incluindo pedaços de arquivos (e não apenas páginas). É bom usá-lo, principalmente quando
não der tempo de baixar o que você quer em uma única vez.
-p
n
Ideal para baixar páginas de uma mesma área de um site. C om o -np (no-parent) ele baixa
apenas os arquivos da URL definida sem pegar a pasta pai dela. Por exemplo, utilize caso
queira baixar o site http://www.site.com.etc/algumacoisa, mas não o conteúdo do
http://www.site.com.etc (e sim apenas da pasta /algumacoisa).
-3
T0
Define o timeout (limite de tempo) para 30 segundos. Quando ele fica à espera do arquivo, em
conexões lentas, esse parâmetro orienta a refazer a conexão para puxar tal arquivo a cada 30
segundos, até conseguir. Observe a diferença que este é em letra maiúscula.
E os donos dos sites, como ficam?
C ertamente não gostam nada nada disso. É possível aplicar alguns bloqueios diretamente no
servidor (o que foge ao objetivo deste texto, além do que variará muito dependendo do
software de servidor utilizado), por exemplo, bloqueando IPs que acessem várias páginas por
segundo (mais precisamente um número maior de bytes definido por você), reduzir a
velocidade, ou até mesmo banir o IP por um período.
Mas não haverá muito o que fazer para páginas em si. O pessoal dá um jeito, afinal se pode
ser acessado pelo navegador, poderá ser baixado e salvo.
www.hardware.com.br/dicas/baixando-sites-wget.html
2/4
3. 07/07/13
Baixando sites inteiros com o wget - Dicas
Uma dica para e vitar downloads automático de arquivos grandes, poupando banda do servidor,
é usar um link definido em JavaScript. Praticamente nenhum programa copiador de sites
identificaria o link, mas nos navegadores funcionaria normal. Estar com o JavaScript habilitado
nos micros clientes hoje é praticamente obrigatório, não existe mais aquele papo de problemas
de compatibilidade. Sendo assim, não se preocupe com o link em JavaScript, pois ele
funcionará.
A criação do link fica a seu critério, evite colocar o nome do arquivo por inteiro. Um exemplo
prático: definindo uma função na página:
<citlnug=aacit
srp agaejvsrp>
fnto Biaos(r)
ucin axCiaaq{
sl.oainhe =aq
eflcto.rf
r;
}
<srp>
/cit
E chamando a função nos links assim:
< he=jvsrp:axCia'aqioio)"Ciu au pr bia o
a rf"aacitBiaos(/ruv.s';>lqe qi aa axr
C<a
D/>
Se preferir, pode complicar mais, mas dará mais "trabalho" para implementar. Exemplo (este
coloque diretamente no local onde for ficar o link):
<citlnug=aacit
srp agaejvsrp>
dcmn.rt(< he=)
ouetwie'a rf';
dcmn.rt(aqiozp)
ouetwie'ruv.i';
dcmn.rt(>)
ouetwie'';
dcmn.rt(ciu au';
ouetwie'lqe qi)>
dcmn.rt(<a';
ouetwie'/>)
<srp>
/cit
Um outro meio um pouco mais complicado de implementar, é aplicar C APTHA, aquela
verificação de letras e números aleatórios em determinadas seções do site. O programa pára
ali. Mas cuidado, a maioria dos sistemas não permitem o uso por deficientes visuais, o que
prejudica legal a acessibilidade do seu site, especialmente se usar isso em áreas essenciais.
É isso. Responsabilidade sempre!
Por Marcos Elias Picão. Revisado 2/mar/2011 às 14h56
8 comentários
Comentários
Entrar e fazer comentário
wget -é 10!
C riado 15/mar/2013 às 17h09 por paulo rocha dos santos
Procurei na net algo para baixar "tudo". No *ux temos essa ferramenta que não deixa a desejar em nada. Parabéns pelo artigo. Baixei a documentação do
PostgreSql em pt-br.
Um abraço!
wget
C riado 26/ago/2011 às 21h13 por Leogh
O link precisa ser um link direto?
WGET
C riado 22/jan/2011 às 11h55 por Tomé
Viva Marcos,
Trata de um assunto de interesse da comunidade free. Dou-lhe os parabéns por estas linhas que escreveu.. No entanto devemos todos, como o Marcos disse
"Novamente alerto, use com responsabilidade ou quando precisar.." :)
wget
C riado 24/dez/2010 às 15h18 por Ricardo
C araca!!! eita comando!!! baixa tudo mesmo!!!
wget
C riado 23/dez/2010 às 22h13 por Gilvan Ritter
Pra quem quer esperimentar recomendo baixar uma mina de ouro: http://serverapostilando.com/tutorials/
wget -m -erobots=off http://serverapostilando.com/tutorials/ /sua_pasta_aqui
baixe
C riado 8/set/2010 às 14h14 por julio
muito bom o artigo. já usei as dicas para baixar alguns manuais da net.
Obrigado.
Expandir réplicas
Num tem jeito
por Adriano
www.hardware.com.br/dicas/baixando-sites-wget.html
3/4