Архитектура стабильного сборщика тиражей
Как мы пришли к стабильному сбору
После многочисленных итераций и экспериментов мы остановились на простой и надёжной архитектуре:
- Playwright + ddddocr для автоматического обхода капчи.
- Прямые запросы к API nloto.ru (без парсинга HTML).
- SQLite для хранения тиражей (26 лотерей, > 300 000 записей).
- INSERT OR IGNORE для защиты от дубликатов.
- Отдельный модуль
captcha_solver.py– легко заменяемый и тестируемый.
Почему не PaddleOCR и не Tesseract
Мы пробовали три OCR-движка, но в итоге оставили только ddddocr. Он быстрее и точнее на капчах nloto. Остальные были удалены, чтобы не усложнять код.
Как работает сейчас
- Проверка доступности сайта (
check_site_available). - Загрузка главной страницы и автоматический обход капчи (10 попыток с обновлением).
- Запрос к API для получения списка лотерей и истории тиражей.
- Сохранение в БД с игнорированием дубликатов.
- Фоновый режим через
nohupи cron-сторож для автоматического перезапуска.
Что дальше
- Интеграция Ollama для анализа тиражей (первое звено AI-каскада).
- Добавление stoloto.ru как нового источника данных.
- Построение автономного каскада моделей: анализ → стратегии → корректировка кода.