Разработать программу, которая автоматически находит и бронирует слоты для записи на услуги на испанском сайте. Программа должна поддерживать работу в условиях высокой конкуренции и быть оптимизирована для региона Барселона, где процесс записи самый сложный.
Функциональные требования
Ввод данных клиента:
Поля для ввода:
Номер 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 недель):
Добавление многопоточности.
Интеграция капчи и прокси.
Финальная проверка:
Тестирование на регионе Барселона с учетом высокой конкуренции.
Рекомендации к исполнителям
Предложить технологии и инструменты, которые будут использованы для реализации.
Примерный план работ с этапами и сроками.
Обоснование подхода к обработке антибот-систем.
Готовность к поддержке и обновлению программы после завершения разработки.