Цель проекта
Разработать программу, которая автоматически находит и бронирует слоты для записи на услуги на испанском сайте. Программа должна поддерживать работу в условиях высокой конкуренции и быть оптимизирована для региона Барселона, где процесс записи самый сложный.
Функциональные требования
- Ввод данных клиента:
- Поля для ввода:
- Номер ID клиента.
- ФИО.
- Страна.
- Возможность загрузки данных из файла (CSV, Excel) для массовой обработки клиентов.
- Выбор услуги:
- Услуги выбираются из списка, доступного на сайте.
- Для каждой услуги может быть индивидуальный алгоритм поиска доступных слотов, включая тестовый пример для региона Барселона.
- Алгоритм ловли записи:
- Постоянный мониторинг доступных слотов.
- Быстрое бронирование первого доступного слота.
- Адаптивность к изменениям структуры сайта.
- Обработка SMS-кода:
- Автоматическое получение SMS-кода.
- Ввод SMS-кода в систему для подтверждения бронирования.
- Сохранение результата:
- Финальный бланк подтверждения записи сохраняется в формате PDF.
- Указание пути сохранения бланков в настройках программы.
- Специфика для региона Барселона:
- Оптимизированный алгоритм для высокой частоты запросов.
- Поддержка автоматической обработки AJAX-запросов, капчи и скрытых элементов.
Технические требования
- Платформа и технологии:
- Кроссплатформенность (Windows, MacOS, Linux).
- Предпочтительные технологии:
- Node.js с Playwright.
- Python с использованием Selenium или undetected_chromedriver.
- Возможность обхода анти-бот систем (динамический User-Agent, использование прокси).
- Производительность:
- Многопоточность/асинхронность для увеличения частоты запросов.
- Быстрая обработка AJAX-запросов и рендеринга страниц.
- Интерфейс:
- Удобный пользовательский интерфейс (UI):
- Для ручного ввода данных.
- Для просмотра логов и текущего статуса выполнения операций.
- Обработка ошибок:
- Логирование всех действий программы.
- Автоматическая повторная попытка записи в случае неудачи.
- Капча:
- Интеграция с сервисами автоматического распознавания капчи (например, 2Captcha, AntiCaptcha).
- Возможность ручного ввода капчи.
- Защита от блокировки:
- Поддержка прокси-серверов для обхода IP-блокировок.
- Эмуляция реальных пользовательских действий (движения мыши, задержки).
Дополнения для региона Барселона
- Тестовый пример:
- Предоставляется конкретный пример работы для Барселоны, который необходимо интегрировать в программу.
- Настройка алгоритма под сложный процесс записи.
- Частота запросов:
- Программа должна отправлять максимально разрешенное количество запросов в секунду без риска блокировки.
- Автоматизация подтверждения:
- Полностью автоматическое получение и ввод SMS-кода.
- Стресс-тест:
- Проверка программы на реальном процессе бронирования в Барселоне.
- Логирование успешных попыток, скорости выполнения операций и возможных ошибок.
Критерии успешного выполнения
- Количество запросов:
- Максимальная частота запросов с учетом ограничений сайта.
- Успешное бронирование:
- Демонстрация успешной записи на услугу с автоматическим подтверждением через SMS.
- Скорость работы:
- Время от старта до финального подтверждения записи должно быть минимальным.
- Гибкость:
- Легкость адаптации к изменениям сайта.
Этапы разработки
- Прототип (2-3 недели):
- Базовый функционал: ввод данных, поиск слотов, сохранение результата.
- Оптимизация (4-6 недель):
- Добавление многопоточности.
- Интеграция капчи и прокси.
- Финальная проверка:
- Тестирование на регионе Барселона с учетом высокой конкуренции.
Рекомендации к исполнителям
- Предложить технологии и инструменты, которые будут использованы для реализации.
- Примерный план работ с этапами и сроками.
- Обоснование подхода к обработке антибот-систем.
- Готовность к поддержке и обновлению программы после завершения разработки.