Как восстановить сайт из веб-архива

Коротко

  1. Проверьте, что архив вообще сохранил: CDX-индекс показывает все записанные адреса.
  2. Скачивайте в id_-режиме — он отдаёт исходные файлы без панели архива и переписанных ссылок.
  3. После скачивания ссылки нужно переписать в относительные, а кодировки — в UTF-8.
  4. Готовую копию открывают локальным веб-сервером, а не двойным кликом по файлу.
  5. Восстановится только то, что краулер когда-то забрал: чудес не бывает.

Веб-архив — это единственный источник контента, когда сайт удалён, хостинг потерял данные или доступ к серверу утрачен. Ниже — рабочий порядок действий, который выдерживает сайты на тысячи страниц, и границы, за которые этот способ не выходит.

Когда архив — единственный путь

Типичные ситуации, в которых других источников не остаётся:

Если у вас есть полный бэкап хостинга — сначала восстанавливайте его, архив подождёт. Если бэкапа нет, порядок ниже — самый быстрый способ вернуть текст и структуру.

Что архив хранит, а что нет

Тип данныхВосстанавливаетсяКомментарий
HTML-страницыПочти всегдаОсновной контент, статьи, каталог, описания
CSS, JS, шрифтыЧастоКэш CMS с хэшем в имени подставляется эвристикой
Изображения контентаЧастичноКраулер забирает не каждую картинку
Картинки товаровРедкоВ одном из кейсов отсутствовали 2 510 изображений
PDF, документыЕсли сохранялисьОбычно попадают в архив целиком
Корзина, вход, поиск, AJAXНетТребуют бэкенда и базы данных
Заявки, письма, базаНетЭто данные, а не страницы — их архив не хранит

Шаг 1. Проверить CDX-индекс

CDX — служебный интерфейс Internet Archive, который перечисляет все сохранённые записи по домену. Один запрос показывает, есть ли смысл вообще начинать:

https://web.archive.org/cdx/search/cdx?url=example.com&matchType=domain&output=json&limit=10&collapse=urlkey

В ответе будут поля timestamp (когда снят), original (адрес), mimetype (тип файла) и statuscode (код ответа). Ключевой параметр — collapse=urlkey: он схлопывает десятки снимков одного адреса до одной строки.

Ограничения на стороне архива: до 50 000 адресов на домен и постраничная выдача для больших сайтов. Если записей больше, часть придётся добирать отдельными запросами.

Шаг 2. Скачать страницы и файлы

Вручную это выглядит так: открываете https://web.archive.org/web/<timestamp>/<url>, сохраняете страницу, затем руками ищете стили и картинки. На сотне страниц это заканчивается через час.

Для автоматизации есть два важных правила.

  1. Режим id_. Добавьте id_ после метки времени: …/web/20240101120000id_/https://example.com/. Тогда архив отдаст исходный файл без своей панели и без переписанных ссылок — иначе копия будет ссылаться обратно на архив, а не на ваши файлы.
  2. Взять все типы файлов, а не только HTML. CDX отдаёт адреса CSS, JS, изображений и PDF — их нужно скачивать тем же проходом, иначе копия будет без стилей.

Дальше начинаются технические мелочи, из-за которых самодельные скрипты обычно и ломаются: лимиты архива (429 и 503), обрывы соединений, тысячи адресов, повторные загрузки при перезапуске. Именно это закрывает Site Restorer: инвентаризация через CDX, параллельная загрузка с адаптивной конкурентностью 2 → 24 потока, паузы на лимитах, докачка с места остановки.

Скачать Site Restorer

Портативный бинарник для Windows и Linux, без установки и зависимостей. MIT.

Скачать

Шаг 3. Собрать локальную копию

Скачанные файлы ещё не сайт. После загрузки нужно четыре преобразования:

Отдельный случай — бинарники под расширением .html. В архиве под таким адресом может лежать JPEG или PDF; если декодировать его как текст, файл будет уничтожен. Проверять магию файла обязательно.

Шаг 4. Проверить и открыть

Хороший инструмент заканчивает работу отчётом: сколько адресов было в индексе, сколько скачано, сколько битых ссылок и какой объём копии. Это позволяет честно сказать заказчику, что вернулось, а что потеряно.

Открывать копию двойным кликом по index.html не стоит: ссылки вида /catalog/ в файловой системе не разрешаются. Поднимите локальный сервер:

cd Документы\SiteRestore\site
python -m http.server 8080
# http://127.0.0.1:8080/

Подойдёт любой статический сервер: Python здесь просто самый доступный вариант.

Сколько это занимает

Зависит от размера сайта и лимитов архива, а не от вашего интернета. Ориентиры:

Размер сайтаВремяЧто влияет
До 100 страницМинутыСкорость ответа архива
1–2 тысячи адресов1–3 часаЛимиты на IP, доля 404
10 тысяч и большеНочная загрузкаПостраничный CDX, повторы

Internet Archive ограничивает частоту запросов с одного IP, поэтому «ускорить» большие сайты можно только терпением и докачкой. Прерывание не страшно: уже скачанное повторно не запрашивается.

Чек-лист

Частые вопросы

Можно ли восстановить сайт, если его нет в веб-архиве?

Нет. Если краулер Internet Archive ни разу не заходил на сайт, восстанавливать нечего. Остаются бэкапы хостинга, локальные копии у разработчика, кэш поисковых систем или письма с сохранёнными страницами.

Вернутся ли картинки товаров?

Только если архив их сохранил. Проверить просто: если в CDX нет ни одной записи для файла, его нет ни в одном снимке. В разобранном кейсе так потерялись 2 510 изображений — текст при этом уцелел на 98,2 %.

Будут ли работать корзина, вход и поиск?

Нет. Копия статическая: работают страницы, стили, скрипты и файлы. Всё, что требует серверной логики и базы данных, — нет.

Нужен ли Python?

Для скачивания и сборки — нет. Python нужен только для запуска простого локального сервера, но подойдёт любой статический сервер.

Законно ли это?

Восстанавливать свой сайт — да. Публиковать копию чужого сайта нельзя: контент защищён авторским правом, а у Internet Archive есть условия использования.

Смежные разборы

Восстановить сайт целиком

Site Restorer проходит путь от адреса до готовой копии: инвентаризация, параллельная загрузка, сборка, проверка и отчёт. Один бинарник, без установки.

Скачать для Windows

This guide is also available in English.

Материал основан на практике восстановления сайтов из Internet Archive и на открытом коде Site Restorer. Цифры кейса — из разбора в репозитории.