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

Помимо личных файлов, кино и музыки, хочется сохранить архив сайтов и веб-страниц для чтения в будущем — на месяцы или даже годы вперёд. Но в каком формате это лучше делать?

ПК для Апокалипсиса

«ПК для Апокалипсиса» — офлайновая система, которая хранит полный набор необходимой информации для жизни без интернета. Это известная проблема, которую решают по-разному. Например, на Хабре упоминали репозиторий Project N.O.M.A.D. — это локальная база знаний для выживания:

  • Википедия, медицинские справочники и учебники;

  • карты и навигация всей планеты;

  • локальный LLM-ассистент, обученный на всей информации мира, с которым малограмотные потомки сапиенсов спустя тысячи лет могут общаться на естественном языке: он подскажет, как починить генератор или получить селитру.

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

  • Личная коллекция музыки MP3

  • Подборка кинофильмов на несколько десятилетий: например, несколько сотен сериалов и несколько тысяч фильмов, включая всех номинантов Оскара за все годы, все фильмы любимых режиссёров, все фильмы с оценкой выше 7.5 и т. д..

  • Художественная литература

  • Копии личных документов, кошельков, база паролей

  • Семейный архив (фото и видео)

  • Офлайновый мессенджер, работающий в mesh-сети по радио (Wi-Fi, Bluetooth, УКВ)

  • Копии сайтов и веб-страниц для последующего прочтения или поиска по ним.

  • и др.

Нас особенно интересует предпоследний пункт, потому что возможны варианты — в каком формате сохранять сайты и страницы.

Локальные копии веб-сайтов

Для скачивания сайтов целиком в 90-е использовался менеджер загрузки Teleport Pro, который рекурсивно проходился по всем ссылкам и делал полную копию веб-сайта. К сожалению, новые версии давно не выпускались, а последняя существующая версия 1.72 от 2015 года не умеет скачивать сайты по HTTPS, только обычные HTTP.

Поэтому приходится использовать другие варианты. Со статичными сайтами справляется утилита командной строки wget или более продвинутая версия wget2.

Из более современных альтернатив можно назвать Offline Explorer (платная), HTTrack (бесплатная, исходный код) и Website Ripper Copier (WRC). Ещё на Хабре рекомендовали вспомогательный поисковый модуль msfcrawler для хакерской программы Metasploit.

Модуль msfcrawler для Metasploit
Модуль msfcrawler для Metasploit

В комментариях подсказали ещё программку Akeeba Solo.

Локальные копии отдельных страниц

Стандартный Firefox без плагинов и расширений предлагает три варианта сохранения: 1) веб-страницу полностью, 2) только HTML или 3) экспорт TXT.

Вариант «Веб-страница полностью» создаёт папку с сотней файлов: картинками, скриптами и проч. Потом эту офлайновую копию можно открыть в браузере и она нормально отобразится, неотличимо от оригинала. Это нормальный вариант, но у него есть несколько недостатков:

  1. Слишком большое количество файлов. Такие копии страниц неудобно посылать по почте или в мессенджере.

  2. Отсутствие сжатия. Файлы занимают много места на диске:

    Главная Хабра сохраняется в 112 файлов общим размером 16 892 КБ
    Главная Хабра сохраняется в 112 файлов общим размером 16 892 КБ
  3. Для просмотра нужен браузер. Это не то чтобы недостаток, потому что для просмотра любого формата файлов нужна какая-то внешняя программа, даже для TXT нужен редактор, хотя бы утилита командной строки.

Но хотя бы первые два недостатка можно устранить. Мы хотим сохранять веб-страницы в один файл меньшего размера. Какие есть варианты?

Начнём с PDF, это самый «портативный» формат, который идеально сохраняет внешний вид страницы и одинаково отображается на всех устройствах, которые его поддерживают. Для сохранения страницы в PDF из браузера есть расширение FireShot, оно нормально работает в бесплатной версии — сохраняет скриншоты и PDF всей страницы целиком.

Расширение FireShot умеет сохранять в PDF. Главная страница Хабра ужалась до 3 534 КБ
Расширение FireShot умеет сохранять в PDF. Главная страница Хабра ужалась до 3 534 КБ

Специально для архивирования веб-страниц и сайтов разработан архивный формат WARC. Вышеупомянутый wget поддерживает его, как и другие программы для скачивания сайтов и вспомогательные инструменты. Для архивирования маленьких сайтов разработан бот ArchiveBot, а для архивирования отдельных страниц есть archive.is и Wayback Machine.

Процесс архивирования главной страницы Хабра на Wayback Machine
Процесс архивирования главной страницы Хабра на Wayback Machine

Другие популярные форматы для статичного хранения веб-страниц — MHTML, MAFF, SingleFile и SingleFileZ (ZIP-версия SingleFile).

Например, SingleFile можно установить как расширение к браузеру Chrome, Edge, Firefox, Safari — и сохранять страницы в одном файле со встроенными картинками, вот как это выглядит:

Утилита SingleFile CLI работает из командной строки без установки (нужен только установленный Chrome/Chromium и Deno). Достаточно скачать исполняемый файл и просто запустить его:

single-file <url> [output] [options ...]

Если Chromium установлен в нестандартной папке, следует указать её в опции --browser-executable-path при запуске:

На выходе получаем один файл размером около 10 МБ со всеми встроенными изображениями:

Как и wget, утилита тоже умеет сохранять одной командой много страниц по шаблону или из списка URL'ов:

single-file --urls-file=list-urls.txt

А также может пройтись по всем внутренним ссылкам и сохранить их тоже:

single-file https://www.wikipedia.org --crawl-links=true --crawl-inner-links-only=true --crawl-max-depth=1 --crawl-rewrite-rule="^(.*)\\?.*$ $1"

Кстати, такой формат удобен и для хостинга веб-сайтов, когда вы не хотите возиться с сотнями отдельных файлов для каждой страницы.

Но у SingleFile есть неприятный недостаток: некоторые страницы при упаковке в один файл раздуваются до невообразимых размеров. Например, вот эта 0,6-мегабайтная html-страница PaintsUndo при сохранении в один файл занимает 485 МБ. Такое часто происходит с постами Medium и другими сайтами. Такое происходит из-за того, что SingleFile включает в файл кучу шрифтов, JS, картинок, виджетов, иконок и прочего, ещё и преобразуя их в формат Base64 для файла HTML.

Что особенно обидно, посетитель оригинальной веб-страницы вовсе не обязан скачивать эти 485 МБ — он скачивает только те картинки, которые появляются на экране. Но в архивную версию приходится включать всё.

Формат Gwtar

В 2026 году известный разработчик и блогер Гвен Бранвен представил новый экспериментальный формат для архивирования HTML-страниц под названием Gwtar (произносится как guitar). Он был благосклонно принят публикой, потому что устраняет недостатки SinbgleFile благодаря нескольким интересным хакам.

Gwtar сохраняет веб-страницы в одиночный самодостаточный (статичный) и эффективный HTML-файл, который открывается в браузере. Это достигается с помощью скрипта в заголовке, который делает HTTP-запросы range (запрос точного диапазона байтов внутри URL). HTTP-запросы range применяются для различных полезных функций. Например, локальный клиент может запрашивать из серверной БД только нужный фрагмент информации, не скачивая всю базу на терабайт.

«Самодостаточный» HTML означает, что в него включены все ресурсы. При хранении на диске не требуется никаких дополнительных файлов.

И главное. Формат поддерживает эффективную ленивую загрузку ресурсов в браузер по мере необходимости, в отличие от SingleFile. По словам автора, ни один известный формат до сих пор не удовлетворял всем трём вышеупомянутым критериям (самодостаточный, одиночный, эффективный).

MHTML, MAFF, SingleFile и SingleFileZ — статичные и одиночные форматы, но не эффективные, а WARC и WACZ — статичные и эффективные, но не одиночные, потому что для их рендеринга требуется сложный софт типа WebRecorde и Replay Webpage.

Таким образом, .gwtar.html — первый в своём роде формат, уникальный для архивирования.

Например, вы открываете статичный HTML размером 1 ГБ с кучей встроенных ресурсов, но они не будут загружаться в браузере, пока пользователь не нажмёт на кнопку воспроизведения в плеере. Это актуально для хостинга архивных страниц и сайтов, если вы раздаёте их пользователям со своего сервера.

Вот пример Gwtar:

Это самораспаковывающийся файл с заголовком HTML+JavaScript, за которым следует tarball оригинального HTML и ресурсов. Скрипт с командой window.stop() в заголовке HTML-файла не даёт браузеру загружать остальную часть файла, он загружает только оригинальный маленький HTML, а затем перехватывает запросы и превращает их в запросы range к остальной части файла с tarball.

Метод window.stop() поддерживается всеми современными браузерами.

Скрипт в заголовке хранит JSON-словарь файлов/размеров/типов/SHA-256-хэшей реального HTML (с именем "0"), за которым следуют все его ресурсы (basename-asset-N.ext). В заголовке всегда есть HTML-файл и как минимум один ресурс. Все ресурсы хранятся в архиве сразу после заголовка.

<script>
let assets = {
    "0": {
        "size": 130673,
        "content-type": "text/html",
        "basename": "1999-03-17-brianmoriarty-whoburiedpaul",
        "hash": "79111815b482504d79428f5cea329741348060fd2d943da933288595e2c9e969"
    },
    "1999-03-17-brianmoriarty-whoburiedpaul-asset-1.js": {
        "size": 15127,
        "content-type": "application/x-javascript",
        "hash": "d739d46b0f3b188cd409c97ab47964ea3a009cce9d08a50b763fdb958e39b822"
    },
    "1999-03-17-brianmoriarty-whoburiedpaul-asset-2.js": {
        "size": 27146,
        "content-type": "text/javascript",
        "hash": "dd29affcde5ff55d96613aa7ac55fa56cc8eeda20d6aef90185b75332e2c3cde"
    },
    ...
}
</script>

В конце скрипта вызывается window.stop():

Таким образом, обычный браузер загружает то, что кажется обычным HTML-файлом, и все ресурсы загружаются только по мере необходимости. Получается, что в статическую веб-страницу можно встроить что угодно — например, медиафайлы размером в гигабайты — но они не будут передаваться клиенту до тех пор, пока это не станет необходимо, даже несмотря на то, что сервер видит один большой HTML-файл, который обрабатывается как обычно.

Gwtar похож на файл-полиглот, поскольку содержит внутри файлы разных форматов: .html, .tar и, возможно, .par2.

Поскольку файл самодостаточный, он автоматически совместим с будущими версиями браузеров. Gwtar позволяет легко и надёжно архивировать даже самые большие HTML-страницы, сохраняя их при этом удобными для чтения. Скрипт deconstruct_singlefile.php разбирает файлы SingleFile и генерирует из них Gwtar'ы. Можно использовать на своё усмотрение. Пример использования:

php ./static/build/deconstruct_singlefile.php --create-gwtar --add-fec-data \
    2010-02-brianmoriarty-thesecretofpsalm46.html

Эта команда берёт оригинальный файл 2010-02-brianmoriarty-thesecretofpsalm46.html и конвертирует его в 2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html.

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


Если рассматривать «ПК для Апокалипсиса», с которого информация загружается только локально, то Gwtar — не самый лучший вариант, потому что браузеру запрещено делать JS-запросы к HTML из-за безопасности. И он откажется открывать такой файл локально:

Такая же проблема у формата SingleFileZ со сжатием
Такая же проблема у формата SingleFileZ со сжатием

Но файл можно легко конвертировать обратно в единый HTML со встроенными ресурсами без JS:

perl -ne'print $_ if $x; $x=1 if /<!-- GWTAR END/' < 2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html | tar --extract

А вот при хостинге и раздаче файлов по сети формат Gwtar действительно эффективнее, потому что экономит трафик и память, а также уменьшает время первоначальной загрузки HTML. Кроме того, внутри файла можно эффективно хранить бинарные активы.

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

© 2026 ООО «МТ ФИНАНС»

Комментарии (6)



  1. LinkToOS
    20.04.2026 09:07

    Насколько часто владельцы сайтов создают защиту от трансляции содержимого в offline-формат?
    (Гугл ответил что “Защита от офлайн-скачивания и парсинга (scraping) контента становится стандартной практикой для коммерческих и контентных сайтов”)


    1. vikarti
      20.04.2026 09:07

      Offline Explorer умеет некоторые спецхитрости чтобы например с Facebook качать.


  1. NeoCode
    20.04.2026 09:07

    Я еще со времен diap-up имею привычку сохранять и скачивать всё интересное. Одних только статей Хабра уже многие тысячи, если не больше.

    А вообще это же не только на случай апокалипсиса или чебурнета. Бывает что ценный и интересный сайт просто исчезает, внезапно, после многих лет и даже десятилетий работы. И я задумываюсь, а не имеет ли смысл написать свою скачивалку сайтов, сейчас с помощью ИИ можно довольно быстро реализовывать различные идеи. То что есть или не работает (как телепорт), или кривое до невозможности.

    Особенно интересно сделать скачивание форумов с восстановлением структуры базы. То есть не просто скачивать страницы и скидывать их в файлы, а парсить и складывать в локальную sqlite базу, а затем специальной программой просматривать в удобном виде, с поиском, фильтрацией, сортировкой, сложными запросами (и даже скормить локальному ИИ). Форумных движков не так уж и много, под каждый можно сделать свою настройку парсинга, кроме того очевидно что можно сделать интерактивные настройки, позволяющие подстраиваться под особенности конкретного сайта прямо при скачивании.


    1. OlegZH
      20.04.2026 09:07

      Когда-то такие программы были в ходу. Жалею, что не скопировал пару-тройку форумов. Были места, где накапливались весьма значительные объёмы информации. :-(


  1. alexs963
    20.04.2026 09:07

    Только вот SingleFile (не Z) работает без js.