Estou tentando usar o wget para criar um espelho local de um site. Mas estou descobrindo que não estou recebendo todas as páginas vinculadas.
Aqui está o site
http://web.archive.org/web/20110722080716/http://cst-www.nrl.navy.mil/lattice/
Não quero todas as páginas que começam com web.archive.org
, mas quero todas as páginas que começam com http://web.archive.org/web/20110722080716/http://cst-www.nrl.navy.mil/lattice/
.
Quando uso wget -r
, na minha estrutura de arquivos, encontro
web.archive.org/web/20110722080716/http://cst-www.nrl.navy.mil/lattice/index.html,
mas não tenho todos os arquivos que fazem parte desse banco de dados, por exemplo
web.archive.org/web/20110808041151/http://cst-www.nrl.navy.mil/lattice/struk/d0c.html.
Talvez o httrack fosse melhor, mas agora isso é demais.
Então, de que maneira é possível obter uma cópia local de um site arquivado na Internet Archive Wayback Machine?
linux
wget
httrack
webarchive
user695322
fonte
fonte
20110722080716
snapshot, portanto a-np
opção do wget não ajuda.Respostas:
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 :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
).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
'sFilter 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: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
ePrivoxy
. Emborawget
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 dawget
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 prefixohttp://
(por exemplo,'kearescue.com'
).Aqui vamos nós. Instale
httrack
, abra uma janela do terminalcd
no diretório local para o qual você deseja baixar o seu site e execute o seguinte comando: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.
fonte
Infelizmente, nenhuma das respostas conseguiu resolver o problema de criar um espelho completo a partir de um site arquivado (sem duplicar todos os arquivos dezenas de vezes). Então, eu cortei outra abordagem. Hacked é a palavra importante, pois minha solução não é uma solução geral nem muito simples (leia: copie e cole). Usei o Privoxy Proxy Server para reescrever os arquivos on-the-fly enquanto espelhava com o wget.
Mas primeiro, o que é tão difícil sobre o espelhamento na Wayback Machine ?
Problema 1 + Solução
A barra de ferramentas Wayback é útil para uso interativo, mas pode interferir no wget. Portanto, livre-se disso com uma regra de filtro privoxy
Problema 2 + Solução
Eu queria capturar o site inteiro, então precisava de uma profundidade de recursão não muito pequena. Mas não quero que o wget rastreie o servidor inteiro. Geralmente você usa a opção sem pai
-np
do wget para esse fim. Mas isso não vai funcionar aqui, porque você deseja obtermas também
(observe o timestamp alterado nos caminhos). A omissão
-np
acabará sendo rastreada(...)http://cst-www.nrl.navy.mil
e, finalmente, recuperará onavi.mil
site inteiro . Eu definitivamente não quero isso! Portanto, esse filtro tenta emular o-np
comportamento com a máquina Wayback:Vou deixar isso como um exercício para cavar a sintaxe. O que este filtro faz é a seguinte: Ele substitui todos os URLs Wayback como
http://web.archive.org/web/20110801041529/http://www.nrl.navy.mil/
comhttp://some.local.server/404
o tempo que eles não contêmhttp://cst-www.nrl.navy.mil/lattice/
.Você tem que ajustar
http://some.local.server/404
. Isso é para enviar um erro 404 para o wget. Provavelmente o privoxy pode fazer isso de maneira mais elegante. No entanto, a maneira mais fácil para mim era reescrever o link para uma página inexistente em um servidor http local, então continuei com isso.E, você também precisa ajustar ambas as ocorrências de
http://cst-www.nrl.navy.mil/lattice/
para refletir o site que você deseja espelho.Problema 3 + Solução
E, finalmente, alguma versão arquivada de uma página pode ser vinculada à página em outro instantâneo. E isso para mais um. E assim por diante ... e você terá muitos instantâneos da mesma página - e o wget nunca conseguirá terminar até que ele obtenha todos os instantâneos. Eu realmente não quero isso também! Aqui ajuda muito, que a máquina Wayback é muito inteligente. Você pode solicitar um arquivo
mesmo que não esteja incluído no
20110801041529
instantâneo. Ele automaticamente o redireciona para o correto:Portanto, outro filtro privoxy para reescrever todos os instantâneos para o mais recente
Efetivamente, todos os números de 14 dígitos incluídos
/.../
são substituídos por20120713212803
(ajuste isso para o instantâneo mais recente do site desejado). Isso pode ser um problema se houver esses números na estrutura do site não originários da máquina Wayback. Não é perfeito, mas é bom para o site Strukturtypen .O bom disso é que o wget ignora o novo local para o qual é redirecionado e salva o arquivo - no exemplo acima - como
web.archive.org/web/20110801041529/http://cst-www.nrl.navy.mil/lattice/struk/a_f.html
.Usando o wget para espelhar o site arquivado
Então, finalmente, com estes filtros privoxy (definidos em
user.filter
) habilitado nauser.action
viavocê pode usar o wget como de costume. Não esqueça de dizer ao wget para usar o proxy:
Eu usei essas opções, mas também
-m
deve funcionar. Você vai acabar com as pastascomo a máquina Wayback separa imagens (
im_
), folhas de estilo (cs_
) etc., juntei tudo e usei uma mágica sed para substituir os feios links relativos (../../../../20120713212803js_/http:/cst-www.nrl.navy.mil/lattice
) de acordo. Mas isso não é realmente necessário.fonte
wget
Normalmente, ao baixar uma única página HTML, todos os documentos necessários que possam ser necessários para exibi-la corretamente não são baixados. Usar -r junto com -l pode ajudar, mas como o Wget normalmente não faz distinção entre documentos externos e embutidos, geralmente é deixado um "documento em folha" sem seus requisitos.
Por exemplo, digamos que o documento 1.html contenha uma tag "" referenciando 1.gif e uma tag "" apontando para o documento externo 2.html. Digamos que 2.html seja semelhante, mas que sua imagem seja 2.gif e esteja vinculada a 3.html. Digamos que isso continue até um número arbitrariamente alto.
-m
--mirror
Ative as opções adequadas para o espelhamento. Essa opção ativa a recursão e a marcação de tempo, define a profundidade infinita da recursão e mantém as listagens de diretórios FTP. Atualmente, é equivalente a -r -N -l inf --no-remove-Listing.
Observe que o Wget se comportará como se -r tivesse sido especificado, mas apenas essa página e seus requisitos serão baixados. Os links dessa página para documentos externos não serão seguidos. Na verdade, para baixar uma única página e todos os seus requisitos (mesmo que existam em sites separados) e garantir que o lote seja exibido corretamente localmente, esse autor gosta de usar algumas opções além de -p:
wget -E -H -k -K -p http://<site>/<document>
Então
wget -E -H -k -K -p http://web.archive.org/web/20110722080716/http://cst-www.nrl.navy.mil/lattice
, será o seu melhor terno para você. Mas eu recomendo outra ferramenta, umafirefox
extensãoscrapbook
página de recados
O ScrapBook é uma extensão do Firefox, que ajuda a salvar páginas da Web e gerenciar facilmente coleções. Os principais recursos são leveza, velocidade, precisão e suporte multilíngue. Os principais recursos são:
* Salvar página da Web
* Salvar snippet da página da Web
* Salvar site da Web
* Organizar a coleção da mesma maneira que os Favoritos
* Pesquisa de texto completo e pesquisa rápida de filtragem da coleção
* Edição da página da Web coletada
* Texto / HTML recurso de edição semelhante às notas do Opera
Como espelhar um site
Instale o álbum de recortes e reinicie o Firefox
Restrict to Drirectory
/Domain
do filtroAguarde até que o espelhamento seja concluído. Após o espelhamento, você pode acessar o site offline no
ScrapBook
menu.fonte
:)
Tenha cuidado com o comando abaixo, porque ele pega muito. O 1 após o 'l' diz para ele pegar todas as páginas de links do site com 1 nível de profundidade. Se você quiser uma alteração mais profunda, altere-o para 2, mas ele nunca poderá terminar porque poderá ficar preso em um loop.
Não tenho certeza de quais partes do site você deseja manter e quais não se importam, mas provavelmente você deve colocar uma lista branca e / ou colocar uma lista negra nas diferentes partes do site para obter apenas o que deseja e impedir que você baixando todo o archive.org ou a internet.
Use
-D www.examle.com,www.another.example.com
para colocar na lista branca apenas os domínios que você deseja ou--exclude-domains www.examle.com,www.another.example.com
para colocar na lista negra o que você não deseja.fonte
web.archive.org
host. Quero espelhar tudo owget -np
que teria espelhado uma vez que o site original ainda estivesse online.-l
também não ajuda muito, pois precisa ser aumentado para 3 ou 4, resultando em um aumento excessivo na hierarquia do site.O formato dos URLs para o Internet Archive inclui a data e a hora em que o site foi arquivado. Para economizar espaço, os ativos que não foram alterados são vinculados a uma versão anterior de um site.
Por exemplo, neste URL http://web.archive.org/web/20000229123340/http://www.yahoo.com/, a data em que o site foi rastreado era 29 de fevereiro de 2000 às 12:33 e 40 segundos.
Portanto, para obter tudo o que
http://web.archive.org/web/20110722080716/http://cst-www.nrl.navy.mil/lattice/
você precisa, comece por isso, mas também pegue todos os ativos vinculadoshttp://web.archive.org/web/*/http://cst-www.nrl.navy.mil/lattice/
.fonte
Já existe uma ferramenta que faz isso melhor:
Para obtê-lo, você precisa ter o ruby instalado. E depois:
fonte