Embora úteis, as respostas anteriores falham na solução concisa, confiável e repetitiva da questão subjacente. Neste post, detalhamos brevemente as dificuldades de cada uma e, em seguida, oferecemos uma httrack
solução modesta .
fundo
Antes de chegarmos a isso, no entanto, considere examinar a resposta bem escrita de mpy . Em seu post tristemente negligenciado, mpy documenta rigorosamente o esquema de arquivamento obscuro (e honestamente ofuscante) da Wayback Machine.
Sem surpresa, não é bonito. Em vez de arquivar sites com segurança em um único diretório, a The Wayback Machine efetivamente distribui um único site por dois ou mais diretórios irmãos identificados numericamente. Dizer que isso complica o espelhamento seria um eufemismo substancial.
Compreender as armadilhas horríveis apresentadas por esse esquema é essencial para entender a inadequação das soluções anteriores. Vamos continuar com isso, vamos?
Solução anterior 1: wget
A pergunta relacionada ao StackOverflow "Recuperar site antigo fora do waybackmachine" é provavelmente o pior infrator nesse aspecto, recomendando o wget
espelhamento do Wayback. Naturalmente, essa recomendação é fundamentalmente doentia.
Na ausência de reescrita complexa de URL externa (por exemplo, Privoxy
), wget
não pode ser usado para espelhar com confiabilidade sites arquivados no Wayback. Como detalhes mpy em "Problema 2 + Solução", qualquer ferramenta de espelhamento que você escolher deve permitir que você baixe de forma não transitória apenas os URLs pertencentes ao site de destino. Por padrão, a maioria das ferramentas de espelhamento faz download de forma transitória de todos os URLs pertencentes ao site de destino e aos sites vinculados a esse site - o que, na pior das hipóteses, significa "toda a Internet".
Um exemplo concreto está em ordem. Ao espelhar o domínio de exemplo kearescue.com
, sua ferramenta de espelhamento deve :
- Inclua todos os URLs correspondentes
https://web.archive.org/web/*/http://kearescue.com
. Esses são os ativos fornecidos pelo site de destino (por exemplo, https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
).
- Excluir todos os outros URLs. Esses são os ativos fornecidos por outros sites apenas vinculados a partir do site de destino (por exemplo,
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
).
Deixar de excluir esses URLs normalmente atrai toda ou a maior parte da Internet arquivada no momento em que o site foi arquivado, especialmente para sites que incorporam recursos hospedados externamente (por exemplo, vídeos do YouTube).
Isso seria ruim. Enquanto wget
faz fornecer uma linha de comando --exclude-directories
opção de aceitar um ou mais padrões de URLs correspondentes a serem excluídos, estes são não -uso geral expressões regulares; são globs simplistas cuja *
sintaxe corresponde a zero ou mais caracteres, exceto/
. Como os URLs a serem excluídos contêm arbitrariamente muitos /
caracteres, wget
não podem ser usados para excluir esses URLs e, portanto, não podem ser usados para espelhar sites arquivados no Wayback. Período. Fim da história infeliz.
Esse problema está em registro público desde pelo menos 2009. Ele ainda precisa ser resolvido. Próximo!
Solução anterior 2: Álbum de recortes
Prinz recomenda ScrapBook
, um plugin do Firefox. Um plugin do Firefox.
Provavelmente era tudo o que você precisava saber. Enquanto ScrapBook
's Filter by String...
funcionalidade faz endereço do referido 'Problema 2 + Solução', isso não resolver o subsequente 'Problema 3 + Solução' - ou seja, o problema de duplicados estranhos.
É questionável se ScrapBook
aborda adequadamente o problema anterior. Como mpy admite:
Embora o Scrapbook tenha falhado até agora em capturar o site completamente ...
Soluções não confiáveis e excessivamente simplistas não são soluções. Próximo!
Solução anterior 3: wget + Privoxy
mpy , em seguida, fornece uma solução robusta aproveitando ambos wget
e Privoxy
. Embora wget
seja razoavelmente simples de configurar, Privoxy
é tudo menos razoável. Ou simples.
Devido ao obstáculo técnico imponderável de instalar, configurar e usar corretamente, Privoxy
ainda precisamos confirmar a solução da mpy . Ele deve trabalhar de uma forma escalável, robusta. Dadas as barreiras à entrada, essa solução é provavelmente mais apropriada para automação em larga escala do que o webmaster médio que tenta recuperar sites de pequena e média escala.
É wget
+ Privoxy
vale uma olhada? Absolutamente. Porém, a maioria dos superusuários pode ser melhor atendida por soluções mais simples e facilmente aplicáveis.
Nova solução: httrack
Enter httrack
, um utilitário de linha de comando que implementa um superconjunto da wget
funcionalidade de espelhamento. httrack
suporta exclusão de URL baseada em padrão e reestruturação simplista do site. O primeiro resolve o "Problema 2 + Solução" do mpy ; o último, "Problema 3 + Solução".
No exemplo abstrato abaixo, substitua:
${wayback_url}
pelo URL do diretório de nível superior que arquiva a totalidade do site de destino (por exemplo, 'https://web.archive.org/web/20140517175612/http://kearescue.com'
).
${domain_name}
pelo mesmo nome de domínio presente na ${wayback_url}
exclusão do prefixo http://
(por exemplo, 'kearescue.com'
).
Aqui vamos nós. Instale httrack
, abra uma janela do terminal cd
no diretório local para o qual você deseja baixar o seu site e execute o seguinte comando:
httrack\
${wayback_url}\
'-*'\
'+*/${domain_name}/*'\
-N1005\
--advanced-progressinfo\
--can-go-up-and-down\
--display\
--keep-alive\
--mirror\
--robots=0\
--user-agent='Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'\
--verbose
Na conclusão, o diretório atual deve conter um subdiretório para cada tipo de arquivo espelhado a partir desse URL. Isso geralmente inclui pelo menos:
css
, contendo todas as folhas de estilo CSS espelhadas.
html
, contendo todas as páginas HTML espelhadas.
js
, contendo todo o JavaScript espelhado.
ico
, contendo um favicon espelhado.
Como httrack
reescreve internamente todo o conteúdo baixado para refletir essa estrutura, seu site deve agora ser navegável como está sem modificações. Se você interrompeu prematuramente o comando acima e gostaria de continuar o download, acrescente a --continue
opção ao mesmo comando e tente novamente.
É isso aí. Não são necessárias contorções externas, reescrita de URL propensa a erros ou servidores proxy baseados em regras.
Aproveite, colegas superusuários.
20110722080716
snapshot, portanto a-np
opção do wget não ajuda.