Vous êtes sur la page 1sur 4

Baixando sites inteiros com o wget - Dicas

http://www.hardware.com.br/dicas/baixando-sites-wget.html

Guia do hardware

GDH Press

Frum GdH

Publique seu texto

RSS

Home

Equipe

Efetuar Login

ndice das dicas


Baixando sites inteiros com o wget
Criado 17/out/2007 s 12h38 por Marcos Elias Pico

Muitas vezes voc encontra um site cheio de coisas interessantes, mas no dispe de tempo para ler on line na hora. Ou, encontra algo to importante que pretende guardar em CD ou DVD, para nunca perder. A natureza dos sites da web no permitem isso. Voc entra, acessa um site e navega pela pgina. Se quiser outro contedo, deve clicar num link, ento o mesmo descarregado at a sua tela. Fica complicado, por exemplo, querer salvar um site inteiro no seu computador clicando nos links e salvando pgina por pgina. L vem a computao novamente, com sua rapidez e "inteligncia". Sim, inteligencia entre aspas porque as mquinas em si so 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 pginas, deifinidos em HTML pela tag <a href=...>. No final do processo, voc pode ter todo o site ou vrias pginas e arquivos do seu interesse. Existem vrios programas que se propem a isso, a maioria para Windows, normalmente pagos. Quase sempre o que se encontra so sharewares, que se limitam a funcionar por um perodo determinado ou baixam apenas um certo nmero de pginas, sendo liberados somente na verso completa. H um gratuito e open source, o HTTrack (WinHTTrack, na verso para Windows), bom e relativamente bastante usado, por ser fcil e bastante personalizvel. Mas h muito tempo h uma outra soluo gratuita e aberta, muito conhecida pelos usurios 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 programao de diversas "aplicaes" bem mais fcil. Para felicidade de quem usa Windows, saiba que h uma verso portada dele para o Windows, que funciona exatamente da mesma forma da verso Unix. E para quem quer baixar sites inteiros ou vrias pginas, ele tambm tem esse recurso. De quebra, um programa bem pequenininho, operado via linha de comando, o que permite o uso fcil em scripts ou a criao de interfaces. Antes de comear, tenha em mente que baixar sites inteiros pode prejudicar os sites. Alm 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 no tem noo 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 no abusar.

Notcias

Guias

O que h de novo?

Notcias
hoje Mandriva abre votao para escolha de novo nome da distro Ex-funcionrios da Nokia investem no MeeGo e prometem novos smartphones 06/07 Galaxy Nexus perder recurso para poder voltar a ser vendido nos EUA O Google est lucrando apenas US$ 15 em cada Nexus 7 vendido 05/07 Kim Dotcom diz que o MEGA voltar Windows Server 2012 ter apenas quatro edies 04/07

Obtendo o wget
Quase toda distribuio de Linux inclui ele. Caso no inclua, experimente instal-lo usando o gerenciador de pacotes da sua distribuio. Se voc usa Windows, pode baix-lo em: http://pages.interlog.com/~tcharron/wgetwin.html 03/07 Confira o Marco Civil da internet no Brasil Boatos do iPad de 7 polegadas ganham mais fora Ouya, projeto de console de jogos com Android por $99

O bsico do wget
Para baixar um arquivo com o wget, basta dar o comando wget seguido pelo caminho do arquivo na internet. Exemplo:

A justia brasileira e os celulares bloqueados Lanado o VLC Player Beta para o Android Upgrade do XP, Vista ou 7 para Windows 8 Pro sair por $40 at janeiro 02/07 Boot to Gecko expande parcerias e ser chamado Firefox OS Nexus 7 viola patentes da Nokia, mas este caso parece ser simples App do Google Analytics para Android e novo Mobile App Analytics 29/06 Adobe: Flash no ser suportado no Android 4.1 e downloads sero bloqueados a partir do dia 15 28/06 Mais sobre o app de fotos do Windows 8 Google lanar verso do Chrome para iOS [atualizado] Chrome para Android agora em verso estvel 27/06 Nexus 7 anunciado oficialmente, juntamente com o Nexus Q

wget http://www.umsitequalquer.com.etc/arquivo.zip
E o arquivo ser baixado na pasta atual do prompt de comando. Caso o download seja interrompido (porque o computador trave, ou o usurio tecle CTRL + C no prompt), possvel recontinuar do ponto em que parou, caso o servidor suporte o recurso. Basta informar, antes da URL, o parmetro -c, e claro, usar a mesma pasta que contm o "pedao" anterior do arquivo:

wget -c http://www.umsitequalquer.com.etc/arquivo.zip
Muita gente usa o wget como gerenciador de downloads (no Linux), em vez de baixar os arquivos pelos navegadores. Ele no acelera os downloads (como fazem os "aceleradores de downloads", que abrem vrias conexes), mas permitir recontinuar do ponto em que parou muito til, especialmente para quem acessa com conexo lenta ou instvel, que cai toda hora.

Baixando sites inteiros


Passando o parmetro -r, ele baixar todos os arquivos encontrados no domnio. Cuidado, use com ateno e responsabilidade! Alm de poder atrapalhar o site, voc poder baixar muita coisa intil. A sintaxe seria:

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

Notcias do ms de Julho de 2012


Ele seguir os links definidos em HTML, pela tag <a href...> nas pginas. Links em JavaScript ou em flash no sero reconhecidos, e as pginas no sero baixadas. No caso do JavaScript, quase impossvel um programa sair baixando tudo realmente, pois h vrias formas de se "programar" links em JavaScript. Por padro, 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 lem o arquivo e ficam sabendo para quais arquivos no devem seguir os links. Isso impede que o wget baixe determinados arquivos, arquivos esses que muitas vezes so justamente os que voc precisa. Para faz-lo ignorar os arquivos "robots.txt" e baixar tudo o que encontrar, basta usar o parmetro -erobots=off. Ficaria assim:

Artigos

Tutoriais Livros Dicas Anlises

Livros

1 de 4

09/07/2012 16:11

Baixando sites inteiros com o wget - Dicas

http://www.hardware.com.br/dicas/baixando-sites-wget.html

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


Apesar de tecnicamente possvel, um meio no muito legal fazer isso. Essa opo -erobots=off no comentada em muitos lugares. Novamente alerto, use com responsabilidade ou quando precisar "mesmo", afinal no devemos ser contra a divulgao de informaes. Voc pode us-la, por exemplo, quando quiser baixar um arquivo linkado mas que no esteja disponvel 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 pginas HTML. Isso possvel com o parmetro -A, especificando a seguir o tipo de arquivo pela extenso. Veja:

Compre o seu. Livro atualizado!

wget -r -A ".html" http://www.umsitequalquer.com.etc


As pginas ASP, PHP, entre outras, sero convertidas em HTML pelo wget (at porque sero pginas j processadas quando o wget acess-las), ou seja, voc no precisar se preocupar em ficar digitando todas as extenses possveis para as pginas. Da mesma forma, fica fcil baixar todas as imagens:

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


ou

wget -r -A ".jpg" http://www.umsitequalquer.com.etc


Depende do que voc precisa. Dica direta para baixar sites inteiros: o wget possui o parmetro -m, ideal para fazer espelhamentos de sites (mirroring), onde ele j ativa as opes necessrias. Se seu objetivo fazer um mirror do site, pode ir direto ao ponto:

wget -m http://www.umsitequalquer.com.etc
Outra coisa a identidade do navegador. Alguns sites s oferecem o contedo ao verificarem que determinado navegador que est acessando a pgina (como o IE, por exemplo), e o wget no conseguiria acesso aos arquivos. Pode-se fingir a identidade de navegador com esse parmetro:

--user-agent="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"


Colocando no texto entre aspas a identificao do navegador e sistema que voc quiser.

Pginas protegidas com senha


Pginas que exibem uma tela de login personalizada, via web mesmo, provavelmente no podero ser baixadas. Digamos que voc queira baixar todo o contedo do Orkut, ou de uma comunidade ou frum restrito. Ao acessar a pgina, vem uma pgina do site que pede o login e a senha. O wget pararia nela e se limitaria a pegar as pginas linkadas ela diretamente. No entanto, pginas 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 no seria diferente:

wget http://usuario:senha@servidor.com.etc/arquivo.etc
Tambm pode ser usado para servidores FTP, bastando trocar o http:// por ftp://.

Outros parmetros importantes


Atravs de diversos parmetros podemos controlar melhor o donwnload dos arquivos. Eis alguns importantes:

-t0
Nmero de vezes que ele deve tentar baixar um arquivo, caso no consiga. Definindo zero deixa configurado como "ilimitado", o que faz ele ficar tentando at conseguir baixar. Observe que deve-se deixar o nmero logo ao lado da letra "t", sem espao. bom us-lo mas com cuidado, num site com muitos arquivos e uma conexo ruim, voc pode ficar forando o download de vrios arquivos que nunca sero baixados, toa. Por precauo, defina um nmero menor, como -t3 ou -t5.

-c
Permite continuar downloads interrompidos, sem que ele precise baixar o que j foi baixado, incluindo pedaos de arquivos (e no apenas pginas). bom us-lo, principalmente quando no der tempo de baixar o que voc quer em uma nica vez.

-np
Ideal para baixar pginas de uma mesma rea de um site. Com 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 no o contedo do http://www.site.com.etc (e sim apenas da pasta /algumacoisa).

-T30
Define o timeout (limite de tempo) para 30 segundos. Quando ele fica espera do arquivo, em conexes lentas, esse parmetro orienta a refazer a conexo para puxar tal arquivo a cada 30 segundos, at conseguir. Observe a diferena que este em letra maiscula.

E os donos dos sites, como ficam?


Certamente no gostam nada nada disso. possvel aplicar alguns bloqueios diretamente no servidor (o que foge ao objetivo deste texto, alm do que variar muito dependendo do software de servidor utilizado), por exemplo, bloqueando IPs que acessem vrias pginas por segundo (mais precisamente um nmero maior de bytes definido por voc), reduzir a velocidade, ou at mesmo banir o IP por um perodo. Mas no haver muito o que fazer para pginas em si. O pessoal d um jeito, afinal se pode ser acessado pelo navegador, poder ser baixado e salvo.

2 de 4

09/07/2012 16:11

Baixando sites inteiros com o wget - Dicas

http://www.hardware.com.br/dicas/baixando-sites-wget.html

Uma dica para evitar downloads automtico 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 obrigatrio, no existe mais aquele papo de problemas de compatibilidade. Sendo assim, no se preocupe com o link em JavaScript, pois ele funcionar. A criao do link fica a seu critrio, evite colocar o nome do arquivo por inteiro. Um exemplo prtico: definindo uma funo na pgina:

<script language=javascript> function BaixaCoisa(arq){ self.location.href = arq; } </script>


E chamando a funo nos links assim:

<a href="javascript:BaixaCoisa('/arquivo.iso');">Clique aqui para baixar o CD</a>


Se preferir, pode complicar mais, mas dar mais "trabalho" para implementar. Exemplo (este coloque diretamente no local onde for ficar o link):

<script language=javascript> document.write('<a href='); document.write('arquivo.zip'); document.write('>'); document.write('clique aqui');> document.write('</a>'); </script>
Um outro meio um pouco mais complicado de implementar, aplicar CAPTHA, aquela verificao de letras e nmeros aleatrios em determinadas sees do site. O programa pra ali. Mas cuidado, a maioria dos sistemas no 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 Pico. Revisado 2/mar/2011 s 14h56 7 comentrios

3 de 4

09/07/2012 16:11

Baixando sites inteiros com o wget - Dicas

http://www.hardware.com.br/dicas/baixando-sites-wget.html

Comentrios

Destaques
Guia do Hardware agora Hardware.com.br Hardware II, o Guia Definitivo Siga-nos: RSS | Twitter | Facebook

Gostou do texto?
Veja nossos livros impressos: Smartphones | Linux | Hardware Redes | Servidores Linux ... ou encontre o que procura usando a busca:

1999-2012 Hardware.com.br. Todos os direitos reservados.

Home

Frum GdH

RSS

Equipe

Topo

4 de 4

09/07/2012 16:11