main

Нотариально заверенные скриншоты

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

Вот, например, лежит страница тарифов "Дальсвязи" на диалап от 2004 года. Осела как-то в качестве памятки, да так и осталась в архиве. Считай - своеобразный памятник. Хранится она в отдельном zip-архиве, потому что к ней прилагаются стили и картинки, для сохранения читаемого вида. Соответственно, чтобы её посмотреть, мне этот архив куда-то надо распаковать и показать браузеру на конкретный файл. Приемлемо, но слишком много действий на одну страницу.

Исторически, для этой задачи придумали формат MHT, который сейчас широко распространён и поддерживается почти любым браузером. Недостаток же его в том, страница и все ресурсы хранятся в одном файле, в виде MIME. Неплохо, но могло быть и лучше. Суть проблемы не нужно вам объяснять, если у вас был большой ящик в формате mbox.

Также, для этой цели иногда используется CHM. Формат закрытый, от М$, со всеми вытекающими. Требует специального вьювера, поэтому мастдай. Хотя он больше для инструкций/книг используется.

Так вот, а есть ли в природе формат, который бы допускал лёгкую обработку, сохранял метаданные об источнике и открывался одним кликом? Оказывается есть - MAF или «Mozilla Archive Format». Он представляет собой обычный zip, внутри лежит отдельный файл метаданных (с фиксированным именем), страница, и её ресурсы в виде обычных файлов (бинарный jpg, текстовой css, ...) в отдельной дире. Создать его можно и руками, без возни с MIME. Бонусом мы получаем сжатие, которого нет в MHT.

Из минусов - сохраняется ровно одна страница (но это и в mht так), сайты по типу blogger.com, где всё на жабаскрипте - пролетают со свистом, поскольку тот вырезается (для их сохранения - берите уже PDF/A).

Хорошо, а если надо сохранить (и поддерживать в актуальном состоянии) архив целого сайта? wget -p / wget -m? Неа, есть способ лучше: httrack. Опции у него слегка наркоманские, но свою работу софтина делает на отлично. Максимальный размер сайта, который я ей выкачивал - 700 тысяч внутренних ссылок с исключением автогенерации, типа поиска.

А чтобы пожать это зеркало сайта в один файл - можно использовать не tar.{gz,xz}/zip, а squashfs. Хотя это зависит от конкретных предпочтений.