Natan Felles


Creative Webmaster


HTTrack - Copiador de Websites

Blog · desenvolvimento

HTTrack - Copiador de Websites

Sobre

HTTrack lhe permite fazer download de sites na internet para um diretório local, criando recursivamente todos os diretórios, pegando arquivos HTML, imagens e outros arquivos do servidor para o seu computador. HTTrack organiza a estrutura original de links dos sites. Simplesmente abra a página “espelhada” em seu navegador e você poderá navegar de página em página, como se estivesse no site original. HTTrack também pode atualizar sites já copiados e continuar downloads interrompidos.

Uso

Como visto, este software pode ser usado para devidos fins e não, ele não copia páginas protegidas por autenticação, nem mesmo bancos de dados, somente o conteúdo estático.

Em tempos de crise (e até por preferência pessoal), trabalho sem conexão com a internet. Há vários motivos, mas principalmente por causa da distração em canais de comunicação. E devido a esses fatos acho o HTTrack muito importante para poder ter exemplos de sites e páginas de documentação localmente.

Inclusive, tenho esse site em meu servidor local. Construído em PHP e MySQL. Mas como o GitHub não executa arquivos dinâmicos, copio tudo com o HTTrack e atualizo o repositório remoto quando quero.

Instalação

Para instalá-lo é muito simples. Você pode encontrá-lo no Synaptic ou simplesmente executar:

sudo apt install httrack

Comandos

Lembrando que sempre que você instalar um novo software e quiser ver seus possíveis comandos você pode consultar sua manpage.

Você pode rodar apenas httrack para configurar o espelhamento de maneira interativa ou já passar os parâmetros conforme abaixo:

httrack --preserve --footer "" https://natanfelles.github.io

Este é o comando que utilizo para espelhar meu site local antes de sincronizá-lo com o GitHub. Os dois parâmetros iniciais são utilizados para não adicionar os comentários automáticos do HTTrack, de tal forma que o código será idêntico ao do site copiado.

Caso o site que você queira copiar possua arquivos estáticos em outro domínio, o que é muito comum com o uso de servidores em CDN, basta você adicionar o domínio na sequência:

httrack https://heavymetal-ns.github.io \
+https://maxcdn.bootstrapcdn.com \
+https://cdnjs.cloudflare.com \
+https://code.jquery.com

No exemplo acima, o espelhamento será feito em heavymetal-ns.github.io e os outros domínios serão acessados apenas quando houver requisições no código do site principal.

Caso você não queira inspecionar o código das páginas e já deseje copiar todos os arquivos lincados, pode fazer assim:

httrack -e https://github.com

O parâmetro -e (–go-everywhere) indica que o HTTrack pode seguir qualquer link na web. Cuidado com isso.

Algo muito útil, também é a atualização do espelhamento com --update ou a continuação com --continue. E, se for bloqueado pelo robots.txt do site, pode ignorá-lo com -sN e seguir qualquer URL pública.

Tracker

/usr/local/bin/track
#!/bin/bash
# Author: Natan Felles <natanfelles@gmail.com>
# Description: Use HTTrack with pre-defined options
# Local: /usr/local/bin/track

if  ! type httrack >> /dev/null ; then
    echo "HTTrack is not installed. Install it and try again.";
    exit 1;
fi

#if  ! "$1" ; then
    echo -n "Enter the URL's (you can use + and -): ";
    read URLS;
#fi

httrack \
--robots "0" \
--preserve \
--footer "" \
--user-agent "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0" \
$URLS;