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».