O que quero dizer é baixar cada página disponível da Wayback Machine por um período e intervalo de tempo especificados. Por exemplo, quero fazer o download de cada página disponível de cada dia no site nature.com de janeiro de 2012 a dezembro de 2012. (Não é exatamente o que eu quero fazer, mas é perto o suficiente - e é um bom exemplo).
O wget não funcionará devido à natureza única de como a máquina Wayback funciona, infelizmente.
Parece que ferramentas como o downloader do Wayback Machine baixam apenas a versão mais recente da página.
Interagir com a API da IA parece uma rota viável, mas não tenho certeza de como isso funcionaria.
Obrigado!
Respostas:
A forma como os
wayback
URLs são formatados é a seguinte:Aqui
BASEURL
está geralmentehttp://web.archive.org/web
(eu digo geralmente porque não tenho certeza se é o único BASEURL)TARGET
é auto-explicativo (no seu casohttp://nature.com
, ou algum URL semelhante)TIMESTAMP
éYYYYmmddHHMMss
quando a captura foi feita (no UTC):YYYY
: Anomm
: Mês (2 dígitos - 01 a 12)dd
: Dia do mês (2 dígitos - 01 a 31)HH
: Hora (2 dígitos - 00 a 23)MM
: Minuto (2 dígitos - 00 a 59)ss
: Segundo (2 dígitos - 00 a 59)Caso você solicite um tempo de captura que não existe, a máquina de wayback será redirecionada para a captura mais próxima desse URL, seja no futuro ou no passado.
Você pode usar esse recurso para obter cada URL diário usando
curl -I
(HTTPHEAD
) para obter o conjunto de URLs:Isso fornece os URLs mais próximos ao meio-dia de cada dia de 2012. Remova as duplicatas e faça o download das páginas.
Nota: O script acima provavelmente pode ser bastante aprimorado para avançar caso
REDIRECT
seja para um URL mais de 1 dia no futuro, mas requer desconstrução do URL retornado e ajusteSTART
para o valor correto da data.fonte
wget
ou qualquer outropage-getter
com as opções corretas (observe a-I
opçãocurl
).Há uma gema de rubi no Github: https://github.com/hartator/wayback-machine-downloader
fonte