A maneira como wayback
URLs são formatados é a seguinte:
http://$BASEURL/$TIMESTAMP/$TARGET
Aqui BASEURL
é geralmente http://web.archive.org/web
(eu digo normalmente porque não tenho certeza se é o único BASEURL)
TARGET
é auto-explicativo (no seu caso, http://nature.com
ou algum URL semelhante)
TIMESTAMP
é YYYYmmddHHMMss
quando a captura foi feita (em UTC):
-
YYYY
: ano -
mm
: 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 exista, a máquina de wayback redireciona 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
(HTTP HEAD
) para obter o conjunto de URLs:
BASEURL='http://web.archive.org/web'
TARGET="SET_THIS"
START=1325419200 # Jan 1 2012 12:00:00 UTC (Noon)
END=1356998400 # Tue Jan 1 00:00:00 UTC 2013
if uname -s |grep -q 'Darwin' ; then
DATECMD="date -u '+%Y%m%d%H%M%S' -r "
elif uname -s |grep -q 'Linux'; then
DATECMD="date -u +%Y%m%d%H%M%S -d @"
fi
while [[ $START -lt $END ]]; do
TIMESTAMP=$(${DATECMD}$START)
REDIRECT="$(curl -sI "$BASEURL/$TIMESTAMP/$TARGET" |awk '/^Location/ {print $2}')"
if [[ -z "$REDIRECT" ]]; then
echo "$BASEURL/$TIMESTAMP/$TARGET"
else
echo $REDIRECT
fi
START=$((START + 86400)) # add 24 hours
done
Isso fornece os URLs mais próximos do meio-dia de cada dia de 2012. Basta remover as duplicatas e fazer o download das páginas.
Observação: o script acima provavelmente pode ser muito melhorado para avançar caso o REDIRECT
seja para um URL com mais de um dia no futuro, mas isso exige a desconstrução do URL retornado e o ajuste de START
ao valor de data correto.