More than Just Lines on a Map: Best Practices for U.S Bike Routes
Fazendo download de sites com wget
1. Postado às 07:20:00 por Eduardo Rolim
Fazendo Download de Sites com wget
Eu estava hoje precisando de um material sobre aprendizado por
reforço e me deparei com uma chata dificuldade: O referido site não
tinha versão em PDF do seu conteúdo. Não que isso fosse ruim mas,
para estudar todo aquele material eu precisaria ficar o tempo todo à
frente do computador, o que seria uma tarefa deveras enfadonha,
tendo em vista que o material é dividido em centenas de páginas com
mais outras centenas de referências a materiais utilizados em cada
um dos capítulos. Então me veio em mente que eu precisava de algo
pra copiar o site inteiro pra mim.
Antigamente, em meu tempo newbie de Windows, eu usava o GetRight para fazer essa atividade para
mim. No entanto, com o passar dos tempos, o GetRight passou a não mais conseguir baixar por causa
da sua "habilidade" de não deixar alterar o User-Agent de "GetRight Turbo Downloader" para algo como,
por exemplo, "Mozilla Compatible".
Então, fui atrás de outro programa, que durante vários e vários anos me atendeu bem nessa tarefa
Chama-se . Apesar de ser shareware, era só reinstalar que ele ficava novinho em folha por 30 dias
Praticamente, todas as vezes que eu o usava eu precisava reinstalar.
Agora, como eu vim precisar fazer isso no Linux, fiquei pensando em uma forma prática de fazer essa
mesma tarefa, sem precisar recorrer à programas de terceiros. Como eu sou programador, logo pensei
em fazer um programa que fizesse isso pra mim. Lindo e fino, começei a desenvolver um script que
usava o wget para resolver o endereço e pegar o arquivo e, caso fosse html ou algo do gênero, o script
resolveria os endereços e chamaria recursivamente o wget para efetuar o download. Isso até que eu
descobri que o próprio wget poderia fazer essa tarefa para mim, de maneira ainda mais fácil.
Então, depois dessa epopéia toda, eu resolvi montar um tuto rápido sobre como usar o wget para fazer o
download de sites para você, sem se preocupar com nada além do que o próprio console.
Fazendo Download de sites inteiros usando o wget
Bom, o wget é uma ferramenta bem simples de usar e é como um canivete suíço, daqueles bem caros
Sua função é fazer download de "coisas" da web. Sua sintaxe básica é a seguinte:
wget http://tocadoelfo.blogspot.com
No entanto, o wget(man) e o less(man) são tudo o que você precisa para navegar na internet. O poder do
wget está em poder fazer o download de recursos de uma página recursivamente, o que significa que
2. tudo o que estiver linkado em alguma página html será baixado. Para isso, basta usar o comando:
wget -r http://tocadoelfo.blogspot.com
No entanto, alguns sites poderão não permitir o download de seus conteúdos. Para prevenir esta prática
eles normalmente usam de algumas técnicas:
Verificação do User-Agent da requisição
Limitação de arquivos baixados por minutos
Limitação de banda
Verificação do User-Agent
Muitos sites, ao detectarem que é um gerenciador de download quem está baixando o recurso, enviam
páginas em branco ou mesmo negam a conexão, principalmente baseado na detecção do User-Agent de
quem está requisitando determinado recurso. Para contornar essa dificuldade, você pode usar a seguinte
linha:
wget -r -p -U UserAgent http://tocadoelfo.blogspot.com
Exemplos de User-Agent:
Firefox 3: Mozilla/5.0+
IE 6.0: Mozilla/5.0 (compatible; Mozilla/4.0; MSIE 6.0; Windows NT 5.1)
IE 7.0: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)
Limitação de Banda e de Arquivos Baixados por Minuto
Para resolver este problema, você pode usar as opções --limit-rate e --wait. A sintaxe das duas é a
seguinte:
wget --wait=20 --limit-rate=20K -r -p -U Mozilla http://tocadoelfo.blogspot.com
Onde, --wait=20 diz para o programa para aguardar 20s entre cada download, limitando a taxa de
download a 20Kb/s.
3. Baixando somente o necessário
Para evitar que o wget saia baixando tudo o que vê pela frente, você pode usar o comando --no-parent,
que limita o wget a baixar somente os arquivos de que ele necessita, sem baixar todos os arquivos que
estiverem em determinada pasta.
Outras opções úteis
-m: Permite você fazer o download de toda a estrutura do site, de modo que o download fique da mesma
forma que o original. -m é um atalho para as opções: -N -r -l inf –no-remove-listing.
-l ou --level: Permite definir a profundidade de "extração" do comando -r
-k ou --convert-links: Aponta os links para os arquivos locais, já baixados.
-p ou --page-requisites: Pega todos os arquivos necessários para a exibição de uma página.
Bom, é isso. Espero que esse tutorial também seja bastante útil para vocês.
Fonte: Geek to Live: Mastering Wget