- PVSM.RU - https://www.pvsm.ru -
В 2026 году растёт риск перебоев и ограничений в работе интернета в РФ. В таких условиях имеет смысл заранее продумать, как сохранить привычное окружение при нестабильном доступе к сети.
Помимо личных файлов, кино и музыки, хочется сохранить архив сайтов и веб-страниц для чтения в будущем — на месяцы или даже годы вперёд. Но в каком формате это лучше делать?
«ПК для Апокалипсиса» — офлайновая система, которая хранит полный набор необходимой информации для жизни без интернета. Это известная проблема, которую решают по-разному. Например, на Хабре упоминали репозиторий Project N.O.M.A.D. [1] — это локальная база знаний для выживания:
Википедия, медицинские справочники и учебники;
карты и навигация всей планеты;
локальный LLM-ассистент, обученный на всей информации мира, с которым малограмотные потомки сапиенсов спустя тысячи лет могут общаться на естественном языке: он подскажет, как починить генератор или получить селитру.

В статьях на Хабре обсуждалось создание офлайновой станции для личного пользования на случай отключения интернета. Что в неё можно добавить, кроме Википедии и справочников:
Личная коллекция музыки MP3
Подборка кинофильмов на несколько десятилетий: например, несколько сотен сериалов и несколько тысяч фильмов, включая всех номинантов Оскара за все годы, все фильмы любимых режиссёров, все фильмы с оценкой выше 7.5 и т. д..
Художественная литература
Копии личных документов, кошельков, база паролей
Семейный архив (фото и видео)
Офлайновый мессенджер, работающий в mesh-сети по радио (Wi-Fi, Bluetooth, УКВ)
Копии сайтов и веб-страниц для последующего прочтения или поиска по ним.
и др.
Нас особенно интересует предпоследний пункт, потому что возможны варианты — в каком формате сохранять сайты и страницы.
Для скачивания сайтов целиком в 90-е использовался менеджер загрузки Teleport Pro [2], который рекурсивно проходился по всем ссылкам и делал полную копию веб-сайта. К сожалению, новые версии давно не выпускались, а последняя существующая версия 1.72 от 2015 года не умеет скачивать сайты по HTTPS, только обычные HTTP.
Поэтому приходится использовать другие варианты. Со статичными сайтами справляется утилита командной строки wget [3] или более продвинутая версия wget2 [4].
Из более современных альтернатив можно назвать Offline Explorer [5] (платная), HTTrack [6] (бесплатная, исходный код [7]) и Website Ripper Copier [8] (WRC). Ещё на Хабре рекомендовали вспомогательный поисковый модуль msfcrawler [9] для хакерской программы Metasploit.
В комментариях подсказали ещё программку Akeeba Solo [10].
Стандартный Firefox без плагинов и расширений предлагает три варианта сохранения: 1) веб-страницу полностью, 2) только HTML или 3) экспорт TXT.

Вариант «Веб-страница полностью» создаёт папку с сотней файлов: картинками, скриптами и проч. Потом эту офлайновую копию можно открыть в браузере и она нормально отобразится, неотличимо от оригинала. Это нормальный вариант, но у него есть несколько недостатков:
Слишком большое количество файлов. Такие копии страниц неудобно посылать по почте или в мессенджере.
Отсутствие сжатия. Файлы занимают много места на диске:
Для просмотра нужен браузер. Это не то чтобы недостаток, потому что для просмотра любого формата файлов нужна какая-то внешняя программа, даже для TXT нужен редактор, хотя бы утилита командной строки.
Но хотя бы первые два недостатка можно устранить. Мы хотим сохранять веб-страницы в один файл меньшего размера. Какие есть варианты?
Начнём с PDF, это самый «портативный» формат, который идеально сохраняет внешний вид страницы и одинаково отображается на всех устройствах, которые его поддерживают. Для сохранения страницы в PDF из браузера есть расширение FireShot [11], оно нормально работает в бесплатной версии — сохраняет скриншоты и PDF всей страницы целиком.
Специально для архивирования веб-страниц и сайтов разработан архивный формат WARC [13]. Вышеупомянутый wget поддерживает его, как и другие программы для скачивания сайтов и вспомогательные инструменты [14]. Для архивирования маленьких сайтов разработан бот ArchiveBot [15], а для архивирования отдельных страниц есть archive.is [16] и Wayback Machine [17].
Другие популярные форматы для статичного хранения веб-страниц — MHTML [18], MAFF [19], SingleFile [20] и SingleFileZ [21] (ZIP-версия SingleFile).
Например, SingleFile [22] можно установить как расширение к браузеру Chrome, Edge, Firefox, Safari — и сохранять страницы в одном файле со встроенными картинками, вот как это выглядит:
Утилита SingleFile CLI [23] работает из командной строки без установки (нужен только установленный Chrome/Chromium и Deno [24]). Достаточно скачать исполняемый файл [25] и просто запустить его:
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 [27] при сохранении в один файл занимает 485 МБ. Такое часто происходит с постами Medium и другими сайтами. Такое происходит из-за того, что SingleFile включает в файл кучу шрифтов, JS, картинок, виджетов, иконок и прочего, ещё и преобразуя их в формат Base64 для файла HTML.
Что особенно обидно, посетитель оригинальной веб-страницы вовсе не обязан скачивать эти 485 МБ — он скачивает только те картинки, которые появляются на экране. Но в архивную версию приходится включать всё.
В 2026 году известный разработчик и блогер Гвен Бранвен [28] представил новый экспериментальный формат для архивирования HTML-страниц под названием Gwtar [29] (произносится как guitar). Он был благосклонно принят публикой [30], потому что устраняет недостатки SinbgleFile благодаря нескольким интересным хакам.
Gwtar сохраняет веб-страницы в одиночный самодостаточный (статичный) и эффективный HTML-файл, который открывается в браузере. Это достигается с помощью скрипта в заголовке, который делает HTTP-запросы range (запрос точного диапазона байтов внутри URL). HTTP-запросы range применяются для различных полезных функций. Например, локальный клиент может запрашивать из серверной БД только нужный фрагмент информации, не скачивая всю базу на терабайт.
«Самодостаточный» HTML означает, что в него включены все ресурсы. При хранении на диске не требуется никаких дополнительных файлов.
И главное. Формат поддерживает эффективную ленивую загрузку ресурсов в браузер по мере необходимости, в отличие от SingleFile. По словам автора, ни один известный формат до сих пор не удовлетворял всем трём вышеупомянутым критериям (самодостаточный, одиночный, эффективный).
MHTML, MAFF, SingleFile и SingleFileZ — статичные и одиночные форматы, но не эффективные, а WARC [31] и WACZ [32] — статичные и эффективные, но не одиночные, потому что для их рендеринга требуется сложный софт типа WebRecorde [33] и Replay Webpage [34].
Таким образом, .gwtar.html — первый в своём роде формат, уникальный для архивирования.
Например, вы открываете статичный HTML размером 1 ГБ с кучей встроенных ресурсов, но они не будут загружаться в браузере, пока пользователь не нажмёт на кнопку воспроизведения в плеере. Это актуально для
Вот пример Gwtar:
2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html [35] (файл 276 МБ со встроенным аудиофайлом)
Это самораспаковывающийся файл с заголовком HTML+JavaScript, за которым следует tarball оригинального HTML и ресурсов. Скрипт с командой window.stop() в заголовке HTML-файла не даёт браузеру загружать остальную часть файла, он загружает только оригинальный маленький HTML, а затем перехватывает запросы и превращает их в запросы range к остальной части файла с tarball.
Метод window.stop() поддерживается всеми современными браузерами [36].
Скрипт в заголовке [37] хранит 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 похож на файл-полиглот [38], поскольку содержит внутри файлы разных форматов: .html, .tar и, возможно, .par2.
Поскольку файл самодостаточный, он автоматически совместим с будущими версиями браузеров. Gwtar позволяет легко и надёжно архивировать даже самые большие HTML-страницы, сохраняя их при этом удобными для чтения. Скрипт deconstruct_singlefile.php [39] разбирает файлы 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 из-за безопасности. И он откажется открывать такой файл локально:
Но файл можно легко конвертировать обратно в единый HTML со встроенными ресурсами без JS:
perl -ne'print $_ if $x; $x=1 if /<!-- GWTAR END/' < 2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html | tar --extract
А вот при
Если же ничего раздавать не планируется, то для личного архива удобнее хранить HTML-страницы в формате SingleFile, тогда они сразу открываются локально.
© 2026 ООО «МТ ФИНАНС»
Автор: alizar
Источник [40]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/arhivirovanie/450102
Ссылки в тексте:
[1] Project N.O.M.A.D.: https://github.com/Crosstalk-Solutions/project-nomad
[2] Teleport Pro: https://ru.wikipedia.org/wiki/Teleport_Pro
[3] wget: https://www.gnu.org/software/wget/
[4] wget2: https://gitlab.com/gnuwget/wget2
[5] Offline Explorer: https://metaproducts.com/products/offline-explorer?
[6] HTTrack: https://www.httrack.com/
[7] исходный код: https://github.com/xroche/httrack
[8] Website Ripper Copier: http://websiterippercopier.com/
[9] msfcrawler: https://www.rapid7.com/db/modules/auxiliary/crawler/msfcrawler/
[10] Akeeba Solo: https://www.akeeba.com/products/akeeba-solo.html
[11] расширение FireShot: https://getfireshot.com/
[12] 3 534 КБ: https://github.com/alizar/save_pdf/blob/main/FireShot%20Capture%20051%20-%20%D0%92%D1%81%D0%B5%20%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8%20%D0%BF%D0%BE%D0%B4%D1%80%D1%8F%D0%B4%20_%20%D0%A5%D0%B0%D0%B1%D1%80%20-%20%5Bhabr.com%5D.pdf
[13] WARC: https://wiki.archiveteam.org/index.php?title=The_WARC_Ecosystem
[14] программы для скачивания сайтов и вспомогательные инструменты: https://dhamaniasad.github.io/WARCTools/
[15] ArchiveBot: http://archivebot.com/
[16] archive.is: https://archive.is/
[17] Wayback Machine: https://web.archive.org/
[18] MHTML: https://en.wikipedia.org/wiki/MHTML
[19] MAFF: https://en.wikipedia.org/wiki/Mozilla_Archive_Format
[20] SingleFile: https://github.com/gildas-lormeau/SingleFile/
[21] SingleFileZ: https://gildas-lormeau.github.io/Polyglot-HTML-ZIP-PNG/SUMMARY.html
[22] SingleFile: https://www.getsinglefile.com/
[23] SingleFile CLI: https://github.com/gildas-lormeau/single-file-cli
[24] Deno: https://deno.com/
[25] исполняемый файл: https://github.com/gildas-lormeau/single-file-cli/releases
[26] хостинга: https://www.reg.ru/?rlink=reflink-717
[27] 0,6-мегабайтная html-страница PaintsUndo: https://lllyasviel.github.io/pages/paints_undo/
[28] Гвен Бранвен: https://gwern.net/
[29] Gwtar: https://gwern.net/gwtar
[30] благосклонно принят публикой: https://news.ycombinator.com/item?id=46694618
[31] WARC: https://en.wikipedia.org/wiki/WARC_(file_format)
[32] WACZ: https://specs.webrecorder.net/wacz/1.1.1/
[33] WebRecorde: https://webrecorder.net/
[34] Replay Webpage: https://replayweb.page/
[35] 2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html: https://gwern.net/doc/philosophy/religion/2010-02-brianmoriarty-thesecretofpsalm46.gwtar.html
[36] всеми современными браузерами: https://caniuse.com/mdn-api_window_stop
[37] Скрипт в заголовке: https://gwern.net/static/build/gwtar.js
[38] полиглот: https://%D1%84%D0%B0%D0%B9%D0%BB-%D0%BF%D0%BE%D0%BB%D0%B8%D0%B3%D0%BB%D0%BE%D1%82
[39] deconstruct_singlefile.php: https://gwern.net/static/build/deconstruct_singlefile.php
[40] Источник: https://habr.com/ru/companies/ruvds/articles/1020916/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1020916
Нажмите здесь для печати.