Перейти к основному содержимому

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

Архитектура

Компоненты

  1. Brozzler Worker: Выполняет фактический кроулинг
  2. Redis: Координирует воркеры и хранит очередь заданий
  3. 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

ФункцияBrowsertrixBrozzlerПобедитель
РаспределённостьНетДаBrozzler
Простота⚠️Browsertrix
МасштабируемостьОграниченнаяВысокаяBrozzler
Веб-интерфейсДа (Cloud)ОпциональноBrowsertrix
WACZ поддержкаДаНетBrowsertrix

Когда использовать Brozzler

  • Большие проекты, требующие распределённой архивации
  • Множественные воркеры на разных машинах
  • Нужна координация через Redis
  • Масштабирование горизонтально

Когда использовать Browsertrix

  • Простые проекты
  • Нужен WACZ формат
  • Веб-интерфейс из коробки
  • Простота использования

Best practices

Настройка воркеров

# Запуск нескольких воркеров
brozzler-worker --max-browsers=2 --max-concurrent-tabs=5

Мониторинг

Используйте Redis CLI для мониторинга:

redis-cli
> KEYS *
> LLEN brozzler:queue

Ограничения

  • Установите разумные лимиты на воркеры
  • Мониторьте использование памяти
  • Настройте таймауты для браузеров

Интеграция с Warcprox

Brozzler может работать с Warcprox для создания WARC файлов:

# Запуск Warcprox
warcprox --address=0.0.0.0 --port=8000

# Настройка Brozzler для использования Warcprox
brozzler-worker --warcprox-address=localhost:8000

Ресурсы

Связанные материалы