Как скачать сайт из архива Wayback Machine на archive.org?

Вопрос или проблема

Я хочу получить все файлы для данного сайта на archive.org. Причины могут включать:

  • оригинальный автор не архивировал свой собственный сайт, и он сейчас недоступен, я хочу сделать из него публичный кэш
  • я оригинальный автор какого-то сайта и потерял часть контента. Я хочу его восстановить

Как мне это сделать?

Учитывая, что машина времени archive.org очень специфична: ссылки на веб-страницы не указывают на сам архив, а на веб-страницу, которая может больше не существовать. JavaScript используется на стороне клиента для обновления ссылок, но такой трюк, как рекурсивный wget, не сработает.

Я пробовал разные способы загрузки сайта и в конечном итоге нашел загрузчик машины времени – который был создан Hartator (все заслуги ему, пожалуйста), но я просто не заметил его комментарий на вопрос. Чтобы сэкономить ваше время, я решил добавить gem wayback_machine_downloader в качестве отдельного ответа здесь.

Сайт по адресу http://www.archiveteam.org/index.php?title=Restoring перечисляет эти способы загрузки из archive.org:

  • Загрузчик машины времени, небольшой инструмент на Ruby для загрузки любого сайта из Машины времени. Бесплатно и с открытым исходным кодом. Мой выбор!
  • Warrick – основной сайт, похоже, недоступен.
  • Загрузчики из Машины времени – сервис, который загрузит ваш сайт из Машины времени и даже добавит плагин для WordPress. Не бесплатно.

Это можно сделать с помощью скрипта оболочки bash, объединенного с wget.

Идея заключается в том, чтобы использовать некоторые из функций URL машины времени:

  • http://web.archive.org/web/*/http://domain/* отобразит все сохраненные страницы с http://domain/ рекурсивно. Это можно использовать для составления индекса страниц для загрузки и избегания эвристики для обнаружения ссылок на веб-страницах. Для каждой ссылки также есть дата первой версии и последней версии.
  • http://web.archive.org/web/YYYYMMDDhhmmss*/http://domain/page отобразит все версии http://domain/page для года YYYY. На этой странице можно найти конкретные ссылки на версии (с точной меткой времени)
  • http://web.archive.org/web/YYYYMMDDhhmmssid_/http://domain/page вернет неизмененную страницу http://domain/page по заданной метке времени. Обратите внимание на токен id_.

Это основы для создания скрипта, который загрузит все с заданного домена.

Вы можете сделать это легко с помощью wget.

wget -rc --accept-regex '.*ROOT.*' START

Где ROOT – корневой URL сайта, а START – начальный URL. Например:

wget -rc --accept-regex '.*http://www.math.niu.edu/~rusin/known-math/.*' http://web.archive.org/web/20150415082949fw_/http://www.math.niu.edu/~rusin/known-math/

Обратите внимание, что вам следует обойти фрейм веб-архива для URL START. В большинстве браузеров вы можете нажать правой кнопкой мыши на странице и выбрать “Показать только этот фрейм”.

Существует инструмент, специально разработанный для этой цели, Warrick: https://code.google.com/p/warrick/

Он основан на протоколе Memento.

Загрузчик машины времени работает отлично. Загружает страницы – .html, .js, .css и все ресурсы. Просто запустил index.html локально.

При установленном Ruby просто выполните:

gem install wayback_machine_downloader
wayback_machine_downloader http://example.com -c 5 # -c 5 добавляет параллелизм для гораздо более быстрой загрузки

Если ваше соединение прервется на полпути через большую загрузку, вы даже можете запустить его снова, и он повторно загрузит любые недостающие страницы

Мне удалось сделать это, используя Windows Powershell.

  • перейдите в машину времени и введите свой домен
  • нажмите URLS
  • скопируйте/вставьте все URL в текстовый файл (например, VS CODE). Возможно, вам придется повторить это, потому что машина времени показывает только 50 раз
  • с помощью поиска и замены в VS CODE измените все строки, чтобы они выглядели так
Invoke-RestMethod -uri "https://web.archive.org/web/20200918112956id_/http://example.com/images/foobar.jpg" -outfile "images/foobar.jpg"
  • использование поиска/замены с помощью REGEX полезно, например, измените шаблон example.com/(.*) на example.com/$1" -outfile "$1"

Число 20200918112956 – это DateTime. Не имеет большого значения, что вы сюда вставите, потому что WayBack автоматически перенаправит на допустимую запись.

  • Сохраните текстовый файл как GETIT.ps1 в каталоге, например c:\stuff
  • создайте все необходимые каталоги, такие как c:\stuff\images
  • откройте powershell, cd c:\stuff и выполните скрипт.
  • вам, возможно, нужно будет отключить безопасность, см. ссылку

Интересно, что официальный ответ – воспользоваться услугами третьих лиц, и они перечисляют несколько услуг в настоящее время:

https://waybackrebuilder.com
http://waybackdownloader.com
http://www.waybackmachinedownloader.com/en/
Wayback Downloads – Download Sites from Wayback Time Machine

Ответ или решение

Как скачать веб-сайт из архива Wayback Machine (archive.org)

Если вы хотите скачать файлы веб-сайта из архива Wayback Machine, существует несколько удобных методов, которые помогут вам в этом. Это может быть полезно в ряде случаев: вы хотите восстановить устаревший ресурс, который больше недоступен онлайн, или вам нужно восстановить потерянный контент, который был создан вами. В этой статье мы подробно обсудим различные способы загрузки контента из Wayback Machine и приведем необходимые примеры.

Способы скачивания сайта из Wayback Machine

  1. Использование Wayback Machine Downloader

    Один из самых распространенных инструментов для скачивания сайтов из архива — Wayback Machine Downloader, разработанный Hartator. Это легкий инструмент на языке Ruby, который позволяет загружать любой веб-сайт из Wayback Machine. Для установки и использования нужно:

    • Убедиться, что на вашей машине установлен Ruby.
    • Запустить команду в терминале:
      gem install wayback_machine_downloader
    • После установки вы можете начать загрузку:
      wayback_machine_downloader http://example.com -c 5

      Флаг -c 5 добавляет параллельность для ускорения загрузки.

    Этот способ работает эффективно и повторная загрузка позволяет получить отсутствующие страницы в случае обрыва соединения.

  2. Использование wget

    Еще один способ скачать сайт — через командную строку с помощью утилиты wget. Это особенно полезно, если вы знакомы с командной строкой:

    • Запустите следующую команду для загрузки всего содержимого веб-сайта:
      wget -rc --accept-regex '.*http://www.example.com/.*' http://web.archive.org/web/YYYYMMDDhhmmssfw_/http://www.example.com/

      Замените YYYYMMDDhhmmss на соответствующую метку времени в архиве. Убедитесь, что вы используете полные ссылки и избегаете обрамляющих страниц.

  3. Bash-скрипт с использованием wget

    Вы также можете создать более сложный скрипт на языке Bash, который автоматически переберет все сохраненные страницы и загрузит их. Вот простой пример:

    #!/bin/bash
    for URL in $(curl -s "http://web.archive.org/web/*/http://domain.com" | grep -o 'http://web.archive.org/web/[0-9]*/http://domain.com/' | sort -u); do
       wget -x $URL
    done
  4. Использование PowerShell

    Для пользователей Windows может быть удобным использовать PowerShell. Вы можете последовательно собрать URL-адреса страниц, а затем создать скрипт:

    Invoke-RestMethod -uri "https://web.archive.org/web/YYYYMMDDhhmmssid_/http://example.com/images/foobar.jpg" -outfile "images/foobar.jpg"

    Обязательно измените YYYYMMDDhhmmss на нужное значение, чтобы Wayback Machine мог правильно перенаправить запрос.

  5. Сторонние сервисы

    Существует множество сторонних сервисов, которые могут помочь с загрузкой контента из Wayback Machine. Вот несколько из них:

    Эти платформы могут предоставить дополнительные функции, такие как поддержка WordPress или автоматизация процесса, но часто требуют оплаты.

Заключение

Скачивание сайта из Wayback Machine может показаться сложным процессом, но с помощью вышеописанных методов вы сможете легко восстановить потерянный контент. Выбор способа зависит от ваших предпочтений и навыков. Не забудьте уважать права авторов и законность использования восстановленного контента.

Оцените материал
Добавить комментарий

Капча загружается...