방법 : 지정된 간격 동안 Wayback Machine에서 페이지 다운로드


11

내 말은 Wayback Machine에서 사용 가능한 각 페이지를 지정된 기간 및 간격 동안 다운로드하는 것입니다. 예를 들어, 2012 년 1 월부터 2012 년 12 월까지 nature.com에서 매일 사용 가능한 각 페이지를 다운로드하려고합니다 (정확히하고 싶은 것은 아니지만 충분히 가깝고 좋은 예를 제공합니다).

불행히도 Wayback 시스템 작동 방식의 고유 한 특성으로 인해 wget이 작동하지 않습니다.

Wayback Machine downloader와 같은 도구는 최신 버전의 페이지 만 다운로드하는 것 같습니다.

IA API와의 상호 작용은 실행 가능한 경로처럼 보이지만 어떻게 작동하는지 잘 모르겠습니다.

감사!


이를 위해 스크립트를 작성해야합니다. 아마도 cURL?
PulseJet

스크립트를 작성하고 cURL에 의존하는 것이 가능하다고 생각하지만 인터넷 아카이브가 사용하는 Memento API에 익숙하지 않으며 이런 식으로 사용 된 것으로 보지 않습니다.
올랜도 marinella

a) 한 번에 여러 사이트를 수행하고, b) 각 사이트의 스냅 샷을 긴 간격 (예 : 1998-2001)으로 가져와 c) 해당 간격을 넘어서려는 스냅 샷 수를 지정할 수 있어야합니다.
orlando marinella


같은 문제입니다. 그들은 단지 한 페이지를 원합니다 .WB Machine 다운로더의 문서는 그 간격으로 작동하는지 아닌지 모호합니다.
orlando marinella

답변:


5

방법을 wayback다음과 같이 포맷 된 URL은 다음과 같습니다

http://$BASEURL/$TIMESTAMP/$TARGET

BASEURL일반적으로 여기 있습니다 http://web.archive.org/web(유일한 BASEURL인지 확실하지 않습니다)

TARGET자체 설명입니다 (귀하의 경우 http://nature.com또는 유사한 URL)

TIMESTAMP이다 YYYYmmddHHMMss캡처가 (UTC에서) 만들 때 :

  • YYYY: 년
  • mm: 월 (2 자리-01 ~ 12)
  • dd: 요일 (2 자리-01 ~ 31)
  • HH: 시간 (2 자리-00 ~ 23)
  • MM: 분 (2 자리-00-59)
  • ss: 초 (2 자리-00 ~ 59)

존재하지 않는 캡처 시간을 요청하는 경우 웨이 백 머신은 미래 또는 과거에 해당 URL에 가장 가까운 캡처로 리디렉션합니다.

이 기능을 사용하여 curl -I(HTTP HEAD)를 사용하여 매일 URL 을 가져 와서 URL 세트를 얻을 수 있습니다.

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

이렇게하면 2012 년 매일 정오에 가장 가까운 URL이 표시됩니다. 중복을 제거하고 페이지를 다운로드하십시오.

참고 : 위의 스크립트는 앞으로 REDIRECT1 일이 넘는 URL에 대한 경우에 대비하여 크게 향상 될 수 있지만 반환 된 URL을 해체 START하고 올바른 날짜 값으로 조정 해야합니다.


왜 그렇습니까? 누군가 콘텐츠를 보관 한 시간과 web.archive.org가 과거에 보관 된 콘텐츠를 제거한시기에 대한 사실과 증거가 있기 때문입니다. 위의이 스크립트는 보관 된 내용을 저장합니다. 대박.
DeerSpotter

js, html, css와는 관련이 없지만 주 파일 만 다운로드합니다.
목적

실제로이 스크립트 는 아무것도 다운로드하지 않습니다 . 가장 가까운 URL 만 표시합니다. 당신은에 해당 URL 연결할 수 있습니다 wget또는 기타 page-getter올바른 옵션 (으로 통지와 -I옵션을 curl).
Samveen

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.