Brozzler
Brozzler — это распределённый веб-кроулер, использующий реальный браузер (Chrome или Chromium) для захвата страниц и встроенных URL.
Описание
Brozzler разработан для архивации сложных JavaScript-heavy сайтов через распределённую архитектуру с использованием Redis для координации.
Особенности
- Распределённость: Поддержка множественных воркеров
- Реальный браузер: Использует Chrome/Chromium для рендеринга
- JavaScript поддержка: Полная поддержка JavaScript сайтов
- Redis координация: Использование Redis для координации воркеров
Установка
Требования
- Python 3.6+
- Redis
- Chrome или Chromium
- Docker (опционально, для контейнеризации)
Установка через pip
pip install brozzler
Установка из исходников
git clone https://github.com/internetarchive/brozzler
cd brozzler
pip install -e .
Использование
Базовое использование
# Запуск Redis (если не запущен)
redis-server
# Запуск воркера
brozzler-worker
# Добавление задания
brozzler-new-job https://example.com
Docker использование
# Запуск через Docker Compose
docker-compose up
Архитектура
Компоненты
- Brozzler Worker: Выполняет фактический кроулинг
- Redis: Координирует воркеры и хранит очередь заданий
- Brozzler Dashboard: Веб-интерфейс для мониторинга (опционально)
Распределённая р абота
- Множественные воркеры могут работать параллельно
- Redis координирует распределение заданий
- Масштабируется горизонтально
Конфигурация
Конфигурационный файл
# brozzler.yaml
max_concurrent_tabs: 3
max_browsers: 1
warcprox_address: localhost:8000
redis_address: localhost:6379
Настройка воркера
brozzler-worker --config brozzler.yaml
Сравнение с Browsertrix
| Функция | Browsertrix | Brozzler | Победитель |
|---|---|---|---|
| Распределённость | Нет | Да | Brozzler |
| Простота | ✅ | ⚠️ | Browsertrix |
| Масштабируемость | Ограниченная | Высокая | Brozzler |
| Веб-интерфейс | Да (Cloud) | Опционально | Browsertrix |
| WACZ поддержка | Да | Нет | Browsertrix |