· 10 мин чтения

Архивация HTML-страниц для бизнеса: что хранить, чем и в каком формате

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. Запрос «сохранить страницу как доказательство» — один из самых частых, с которыми ко мне приходят юрфирмы и отделы закупок. Конкурс на zakupki.gov.ru снят, поставщик изменил цены на сайте за ночь, партнёр убрал из оферты важный пункт — и если вы не сняли копию, доказать ничего невозможно. Разберусь, какими инструментами правильно это делать и почему обычное «сохранить как» из браузера в 2026 году уже не работает.

Почему веб-страницу нельзя просто «сохранить как»

Встроенное в браузер «сохранить как HTML» десятилетней давности даёт один файл и папку с картинками. В 2026 году это сломано почти везде:

Я видел случай, когда юристы принесли в суд distinct HTML с сайта поставщика — а судья отказался принимать его в качестве доказательства, потому что «из этого файла неясно, что человек реально видел на экране в ту дату». Пришлось проигрывать дело и терять 480 000 руб.

Три задачи, три формата

ЗадачаФорматИнструмент
Юридическое доказательство (суд, ФАС, нотариус)PDF + SingleFilePlaywright, SingleFile CLI
Архив тендеров отдела закупокSingleFileSingleFile CLI, браузерное расширение
Мониторинг конкурентов (цены, описания)Regular HTML + diffwget, changedetection.io
Долгосрочный архив (10+ лет)WARCwget --warc, webrecorder
Печать/отправка клиентуPDFChrome Headless, weasyprint
Быстрое сохранение в один кликSingleFileБраузерное расширение SingleFile

SingleFile — основной инструмент корпоративного архиватора

SingleFile — это браузерное расширение и CLI-утилита, которая сохраняет полную копию страницы в один HTML-файл. Все ресурсы (картинки, шрифты, CSS, inline-JS) встраиваются в файл через data: URI. Открывается в любом браузере без интернета и показывает ровно то, что вы видели на экране.

Установка расширения в Firefox/Chrome занимает 30 секунд. Для корпоративного деплоя я использую автоматический push через GPO (Windows) или MDM (Mac/Linux).

Для автоматизации — CLI-версия на Node.js:

# Установка
npm install -g single-file-cli

# Сохранение одной страницы
single-file https://zakupki.gov.ru/epz/order/notice/ea44/view.html?id=12345 \
  --output-filename "tender-12345-$(date +%Y%m%d).html" \
  --browser-wait-until networkIdle2

# Пакетная обработка
cat urls.txt | xargs -I{} single-file {} --output-directory /archive/

Для тендера на zakupki.gov.ru типичный файл — 2-6 МБ, со всеми вложенными картинками и JS-виджетами. Открывается в Firefox за секунду, даже через 5 лет после сохранения.

Минус SingleFile: файлы с тяжёлыми галереями раздуваются до сотен МБ. Сайт с 200 фотографиями продукта может превратиться в 150 МБ HTML. На такие случаи мы настраиваем фильтр — исключаем .jpg/.png больше 500 КБ, сохраняем только URL.

Генерация PDF для нотариального заверения

Для суда и нотариуса PDF — главный формат. Во-первых, потому что нотариусы исторически работают с PDF (их программное обеспечение его ест без проблем). Во-вторых, потому что PDF легче подписать электронной подписью с квалифицированным сертификатом (КЭП) — и это юридически значимая копия страницы.

Chrome headless — типовой инструмент:

chromium --headless --disable-gpu \
  --print-to-pdf="/archive/offer-20260128.pdf" \
  --print-to-pdf-no-header \
  --virtual-time-budget=10000 \
  https://supplier.example.com/offer/1234

Для более аккуратных PDF с полным рендером SPA я использую Playwright:

const { chromium } = require('playwright');
(async () => {
  const b = await chromium.launch();
  const p = await b.newPage();
  await p.goto('https://supplier.example.com/offer/1234',
    { waitUntil: 'networkidle' });
  await p.waitForTimeout(2000);
  await p.pdf({
    path: '/archive/offer-20260128.pdf',
    format: 'A4',
    printBackground: true
  });
  await b.close();
})();

После генерации PDF подписываем КЭП через КриптоПро CSP или CryptoArm — это делает документ юридически значимым.

WARC — для серьёзного долгосрочного архива

WARC — международный стандарт ISO 28500. В WARC-файле хранится не только HTML, но и исходные HTTP-заголовки, request-метаданные, ответы сервера. Это даёт полную реконструкцию того, что происходило при запросе.

Когда нужен WARC:

Я использую wget для простых случаев и WebRecorder для сложных:

# Simple WARC через wget
wget --warc-file=tender-20260128 \
     --warc-cdx \
     --no-check-certificate \
     --recursive --level=2 \
     https://zakupki.gov.ru/epz/order/notice/ea44/view.html?id=12345

# Получаем:
# tender-20260128.warc.gz (40-200 МБ)
# tender-20260128.cdx (индекс для поиска)

Открывается WARC в ReplayWebPage (replayweb.page) или через Pywb-сервер. Нотариусы пока WARC принимают нехотя — им проще с PDF. Поэтому в реальной практике мы дублируем: WARC для архива, PDF с КЭП — для суда.

Кейс: архиватор для юрфирмы на 18 юристов

В сентябре 2025 года к нам обратилась юридическая фирма: 18 юристов, специализация — споры по поставкам и закупкам. До нас каждый юрист сохранял страницы руками, по-разному: кто-то через Ctrl+S, кто-то скриншотом, кто-то через Evernote. При подготовке к судам выяснялось, что половина сохранённых копий не открывается или не содержит ключевую информацию.

Что мы сделали за 8 рабочих дней:

  1. Поставили внутренний сервер архивации на Debian 12 в их ЛВС — один KVM на 4 vCPU, 8 ГБ RAM, 2 ТБ NVMe.
  2. Развернули связку: веб-форма на nginx + backend на Flask + очередь Redis + воркеры SingleFile CLI и Playwright (параллельно).
  3. Каждая заявка юриста (URL + контекст дела + описание) проходит через три воркера: SingleFile → PDF → SHA-256 от обоих файлов.
  4. Результат складируется в MinIO S3 с метаданными в PostgreSQL: id, url, timestamp, юрист, номер дела, хеши файлов.
  5. Автоматически ставится таймер на 3 месяца — архиватор пере-сохраняет те же URL для сравнения (diff по HTML).
  6. Интеграция с КриптоПро — юрист одним кликом подписывает PDF КЭП компании, подписанный файл сохраняется параллельно.
  7. Ежедневно в 22:00 — резервная копия всего архива на Synology NAS в офисе + раз в неделю — на offsite NVMe в сейф.

Результат за полгода работы: архив на 14 800 документов, 47 ГБ. Пять судов выиграно с использованием нотариально заверенных PDF из системы, ни один документ не «исчез» между моментом сохранения и судом. Стоимость проекта — 240 000 руб. за настройку плюс 45 000 руб. в месяц на поддержку и обновление.

Мониторинг изменений на сайтах конкурентов и поставщиков

Отдельная полезная задача — следить за изменениями на сайтах. Рекомендую changedetection.io: ставится одним docker-compose, ловит изменения на указанных URL, отправляет diff в Telegram или на email.

# docker-compose.yml
services:
  cdio:
    image: dgtlmoon/changedetection.io:latest
    ports: ["5000:5000"]
    volumes: ["./data:/datastore"]
    environment:
      - PUID=1000
      - PGID=1000

Для юрфирмы мы настроили мониторинг 64 сайтов поставщиков клиентов — если меняются условия поставки или цены, автоматически уходит уведомление менеджеру клиентского счёта. За первый месяц поймали три случая, когда поставщики молча поменяли условия договора — двое клиентов сэкономили суммарно 2.2 млн руб. на штрафах.

Куда это всё хранить

Я никогда не советую хранить архив на рабочих станциях сотрудников. Правильные варианты:

Настроим корпоративный архиватор веб-страниц — от 180 000 руб.

Я лично проектирую и внедряю автоматические архиваторы для юрфирм, отделов закупок и маркетинга в Москве и области. SingleFile + PDF с КЭП + WARC для долгосрочного архива, веб-форма для сотрудников, хранение в Samba/S3/Nextcloud с дедупликацией. Типовой проект — 1-2 недели. Предварительный аудит бизнес-процессов и требований бесплатно.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — архивация HTML для бизнеса

Зачем бизнесу архивировать веб-страницы?
Три основные причины: юридические (доказательства оферт и условий договора на момент заключения), закупочные (сохранение состава конкурса на zakupki.gov.ru и коммерческих тендерных площадок), мониторинг конкурентов и цен. Без архивации суд и ФАС вам не поверят на слово.
Чем SingleFile отличается от PDF-сохранения?
SingleFile сохраняет полную интерактивную копию страницы в одном HTML-файле с встроенными CSS, JS, картинками — как браузер видел её в момент захвата. PDF даёт только визуальный слой без интерактивности, но легче для печати и отправки в суд. Для юридических целей я рекомендую хранить оба формата.
Что такое WARC и когда он нужен?
WARC (Web ARChive) — стандарт консорциума ISO 28500 для долгосрочного архивирования веб-контента. В WARC хранятся HTTP-заголовки, cookies, метаданные. Нужен для крупных архивов (десятки тысяч страниц), когда критична сохранность HTTP-контекста — например, для судебных экспертиз по криптовалюте или расследований.
Можно ли автоматизировать архивацию в корпоративной сети?
Да, через SingleFile CLI + cron/Taskscheduler или через WebRecorder Server. Мы ставим сервер архивации на отдельную VM, отдел закупок/юристы отправляют URL через форму — бот сохраняет страницу и выдаёт подписанный SHA-256-хеш для удостоверения неизменности.
Сколько занимает архив крупных сайтов?
Одна страница коммерческого тендера — 2-6 МБ в SingleFile, 0.3-1 МБ в PDF. За год отдел закупок накопит 15-40 ГБ. Для хранения отлично подходит Samba-шара с дедупликацией, MinIO S3 или Nextcloud. Затраты на железо — около 5 000 руб. в год за 500 ГБ на NVMe.