Открыть сервисСервис

Heritrix

Heritrix — это свободное программное обеспечение для веб-архивирования, представляющее собой веб-сканер (робот), предназначенный для сбора и сохранения копий веб-страниц и связанных с ними ресурсов в целях долгосрочного хранения. Разработан Международным консорциумом по сохранению интернета (IIPC) и поддерживается некоммерческой организацией Internet Archive. В отличие от поисковых краулеров, которые индексируют страницы для быстрого поиска, Heritrix ориентирован на создание максимально полных и точных копий сайтов, включая их структуру, мультимедиа и метаданные.

История

Разработка Heritrix началась в 2002 году под эгидой Internet Archive как ответ на потребность в специализированном инструменте для веб-архивирования. До этого Internet Archive использовал собственные скрипты и модифицированные версии коммерческих сканеров, но они не обладали необходимой гибкостью и надёжностью для масштабных проектов. Первая стабильная версия, Heritrix 1.0, была выпущена в 2003 году. С тех пор проект прошёл несколько этапов развития:

  • 2003–2006 (Heritrix 1.x): Базовая версия с поддержкой основных протоколов (HTTP, FTP) и форматов хранения (ARC, WARC). Основной упор делался на функциональность, а не на производительность.
  • 2007–2012 (Heritrix 2.x): Значительная переработка архитектуры. Внедрение модульной системы, поддержка многопоточности, улучшенная обработка JavaScript и cookies. Появилась возможность настройки политик обхода (scope) и фильтрации контента.
  • 2013–2020 (Heritrix 3.x): Текущая стабильная ветка. Внедрение поддержки протокола HTTP/2, улучшенная работа с большими объёмами данных (терабайты), интеграция с системами управления очередью (например, Apache Kafka). Версия 3.3.0 (2020 год) стала последней стабильной, хотя проект продолжает получать обновления безопасности.
  • 2021–настоящее время (Heritrix 4.x, бета): Экспериментальная ветка, ориентированная на облачные архитектуры и контейнеризацию (Docker, Kubernetes). Поддержка распределённого сканирования и динамического масштабирования.

По состоянию на 2025 год Heritrix остаётся основным инструментом для веб-архивирования в Internet Archive, Библиотеке Конгресса США, Национальной библиотеке Франции и других крупных архивах.

Архитектура и принцип работы

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

Ядро (CrawlController)

Центральный модуль, управляющий всеми процессами: запуск/остановка сканирования, распределение задач между потоками, обработка ошибок. Он взаимодействует с очередью URL (Frontier), которая определяет, какие страницы сканировать в первую очередь.

Frontier (Менеджер очереди)

Отвечает за приоритизацию URL. Поддерживает несколько стратегий:

  • Breadth-first (по ширине) — стандартный обход всех ссылок на странице.
  • Depth-first (по глубине) — сначала следуют по одной цепочке ссылок до конца.
  • Politeness — соблюдение задержек между запросами к одному домену (robots.txt и пользовательские настройки).

Процессоры (Processors)

Каждый этап обработки страницы реализован отдельным модулем:

  • FetchProcessor — загрузка контента (HTTP GET, FTP, локальные файлы).
  • ExtractorProcessor — извлечение ссылок (HTML, CSS, JavaScript, PDF, изображения).
  • WriterProcessor — сохранение результата в архивный файл (WARC/ARC).
  • FilterProcessor — отбрасывание ненужных страниц (по типу контента, размеру, домену).

Политики обхода (Scope)

Определяют границы сканирования:

  • HostScope — только один хост (например, example.com).
  • DomainScope — весь домен и поддомены.
  • SurtPrefixScope — по префиксу URL (например, http://example.com/archive/).
  • RegexScope — по регулярному выражению.

Хранение данных

Heritrix сохраняет результаты в формате WARC (Web ARChive) — открытом стандарте ISO 28500:2017, который включает как сам контент, так и метаданные (HTTP-заголовки, дата загрузки, IP-адрес сервера). Ранее использовался формат ARC (старый стандарт Internet Archive). WARC-файлы могут быть сжаты (gzip) и содержать подписи для проверки целостности.

Основные возможности

Масштабируемость

Heritrix способен обрабатывать миллионы URL в сутки на одном сервере. Для крупных проектов (например, архивирование всего .ru-сегмента) используется распределённая конфигурация с несколькими экземплярами, координируемыми через общую базу данных или очередь сообщений.

Гибкость настройки

Пользователь может задавать:

  • Правила robots.txt — соблюдение или игнорирование (для архивных целей часто игнорируется, но с осторожностью).
  • Ограничения по времени — максимальное время сканирования, паузы между запросами.
  • Фильтры контента — исключение изображений, видео, скриптов, определённых типов MIME.
  • Поведение при ошибках — повторные попытки, пропуск, запись в лог.

Логирование и мониторинг

Heritrix генерирует подробные логи (в формате CSV), включающие:

  • Время загрузки каждой страницы.
  • HTTP-статус (200, 404, 500 и т.д.).
  • Размер контента.
  • Количество извлечённых ссылок.
  • Ошибки (таймауты, отказы соединения).

Для визуализации используется веб-интерфейс (порт 8443 по умолчанию), отображающий текущее состояние сканирования, статистику и управление очередью.

Применение

Веб-архивирование

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

  • Internet Archive (Wayback Machine) — крупнейший публичный архив, содержащий более 800 миллиардов страниц. Heritrix используется для массового сканирования.
  • Национальные библиотеки — архивирование национальных доменов (например, .fr, .uk, .au).
  • Университетские проекты — сбор данных для исследований (например, анализ социальных сетей, эволюция веб-дизайна).

Юридические и судебные цели

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

Научные исследования

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

Мониторинг изменений

Регулярное сканирование определённых сайтов для отслеживания обновлений (например, новостные порталы, правительственные страницы).

Ограничения и критика

Технические ограничения

  • Производительность на больших объёмах: При сканировании десятков миллионов страниц Heritrix может испытывать проблемы с памятью из-за хранения очереди URL в оперативной памяти (хотя это можно настроить).
  • Поддержка динамического контента: Heritrix не выполняет JavaScript. Для архивирования одностраничных приложений (SPA) требуется дополнительный инструмент (например, Puppeteer или Selenium), который затем передаёт данные Heritrix.
  • Сложность настройки: Для неопытных пользователей конфигурация через XML-файлы может быть трудоёмкой.

Этические и правовые аспекты

  • Нагрузка на серверы: При неправильной настройке (слишком частые запросы) Heritrix может создавать значительную нагрузку на целевые сайты, что может быть расценено как атака типа «отказ в обслуживании» (DDoS).
  • Авторские права: Архивирование сайтов без разрешения владельцев может нарушать законодательство об авторском праве. В России, например, копирование контента без согласия правообладателя может быть признано нарушением (ст. 1270 ГК РФ).
  • Соблюдение robots.txt: Хотя Heritrix по умолчанию уважает robots.txt, для архивных целей это правило часто отключают, что может вызывать конфликты с владельцами сайтов.

Статус разработки

Проект развивается медленно, последняя стабильная версия (3.3.0) выпущена в 2020 году. Акцент смещается на облачные решения и интеграцию с другими инструментами (например, Browsertrix — краулер на основе браузера). Heritrix остаётся надёжным, но не самым современным инструментом.

Альтернативы

  • Browsertrix — краулер на основе браузера (Chrome), способный выполнять JavaScript. Разработан Internet Archive.
  • Wget — консольный инструмент для загрузки сайтов, менее гибкий, но простой в использовании.
  • Apache Nutch — поисковый краулер с открытым исходным кодом, поддерживающий индексацию и архивирование.
  • Crawler4j — Java-библиотека для создания собственных краулеров.

Интересные факты

  • Название «Heritrix» происходит от латинского hereditas (наследие) и суффикса -trix (женский род), что отражает цель сохранения цифрового наследия.
  • Heritrix использовался для архивирования сайтов, удалённых после политических событий (например, сайты правительства Египта во время «Арабской весны»).
  • В 2019 году Internet Archive с помощью Heritrix собрал более 2 петабайт данных за один месяц.

Источники

  • Официальная документация Heritrix (GitHub, Internet Archive).
  • «Web Archiving: Principles and Practice» (Julien Masanès, 2006).
  • Статья «Heritrix: The Internet Archive’s Web Crawler» (IEEE Internet Computing, 2004).
  • Руководство по установке и настройке Heritrix 3.x (Internet Archive).
  • «ISO 28500:2017 — Information and documentation — WARC file format».