Olá! Decidi fazer este tutorial como um super resumo dos vários artigos que li ensinando como fazer download de sites inteiros com o Linux sem ser bloqueado pelos servidores de hospedagem. Ensino também algumas manhas que estão escondidas no manual do wget e não são mencionadas na maioria dos artigos que você irá encontrar em outros lugares.
Existem vários motivos do porque você queira fazer o download de um site inteiro. Para o usuário do Linux o jeito mais fácil e ágil é usar o comando wget, que é uma ferramenta de download de arquivos por linha de comando que já vem instalada em praticamente todas as distribuições.
O primeiro passo é acessar o terminal de comandos com ctrl+alt+t e criar uma pasta para ser a base dos seus downloads (um comando por linha):
mkdir “Download do site foo”
cd “Download do site foo”
AGORA É SÓ USAR O SEGUINTE COMANDO:
wget -r -p -E –execute=robots=off –limit-rate=100k –convert-links –random-wait -U mozilla http://www.foo.etc
EXPLICANDO AS OPÇÕES:
-r: Recursivo, baixa tudo o que estiver linkado dentro do domínio informado. Veja que mesmo se você informar http://www.foo.etc/algumacoisa o wget irá baixar tudo em http://www.foo.etc, incluindo http://www.foo.etc/coisaquenaoquero porque ele segue todos os links dentro do site. Para baixar apenas o que está em /algumacoisa veja abaixo em OPÇÕES ADICIONAIS.
-p: Baixa todos os tipos de arquivo (imagens, css, rss, pdf, etc). Não utilize se for baixar apenas um tipo específico de arquivo (ver abaixo em OPÇÕES ADICIONAIS).
-E: Adquire e grava a extensão correta dos arquivos. Sem essa opção uma grande parte dos arquivos será gravada sem extensão.
–execute=robots=off: Não age como se fosse um robot/tracker/spider, ou seja, evita seguir as instruções do arquivo remoto robots.txt porque geralmente os sites somente aceitam os rastreadores do Google e outros buscadores mais comuns, e também porque este arquivo pode limitar quais pastas e/ou arquivos poderemos baixar.
–limit-rate=100k: Limita o download a 100kb/s ou outra velocidade-limite que você quiser para não atrapalhar sua navegação em outros sites. Você pode usar b para bytes/s, k para kilobytes/s ou m para megabytes/s.
–convert-links: Após o download o wget irá converter todos os links para funcionarem na cópia local ou invés de apontar para o original na web, assim você poderá navegar no site mesmo sem conexão com a internet.
–random-wait: Faz pausas aleatórias entre os acessos aos arquivos para evitar que seu acesso seja bloqueado pelo servidor do site. Servidores não gostam que trackers e robots “chupem” seus sites, então essa opção os engana para achar que é um humano que está acessando.
-U mozilla: Indica para o site que o acesso está sendo feito com o navegador Mozilla, evitando que ele detecte o uso wget. Mais uma garantia para que seu acesso não seja bloqueado pelo servidor do site.
OPÇÕES ADICIONAIS:
-c: Continua um download interrompido. Use junto com a opção –no-clobber.
–no-clobber: Não sobrescrever arquivos já existentes. É útil no caso de você precisar continuar um download interrompido.
-np: Para quando você quiser baixar somente uma área do site, como por exemplo você quer apenas o que está em http://www.foo.etc/algumacoisa. Veja que, se usar com a opção -r, ele copiará também o que estiver em http://www.foo.etc/algumacoisa/maiscoisas. Se quiser restringir para apenas /algumacoisa e nada mais, retire a opção -r.
-A “.ext”: Copia apenas os arquivos com a extensão informada. Por exemplo, se quiser apenas (e todas) as imagens JPG utilize -A “.jpg”.
–timeout=30: Define o tempo máximo para esperar por um arquivo. Isso vai evitar que o wget fique “travado” em um arquivo que não pode ser baixado. Como o timeout (tempo esgotado) padrão do wget é de 900 segundos, definir para 30 segundos mais ou menos é melhor. Se em 30 segundos o arquivo não começar a baixar, ele será ignorado e o wget passará para o próximo.
É isso aí! Para mais opções consulte o manual online do wget ou com o comando man wget.