ru24.pro
Работа
Ноябрь
2024

Программа для поиска слотов на сайте

0

Цель проекта

Разработать программу, которая автоматически находит и бронирует слоты для записи на услуги на испанском сайте. Программа должна поддерживать работу в условиях высокой конкуренции и быть оптимизирована для региона Барселона, где процесс записи самый сложный.


Функциональные требования

  1. Ввод данных клиента:

    • Поля для ввода:
      • Номер ID клиента.
      • ФИО.
      • Страна.
    • Возможность загрузки данных из файла (CSV, Excel) для массовой обработки клиентов.
  2. Выбор услуги:

    • Услуги выбираются из списка, доступного на сайте.
    • Для каждой услуги может быть индивидуальный алгоритм поиска доступных слотов, включая тестовый пример для региона Барселона.
  3. Алгоритм ловли записи:

    • Постоянный мониторинг доступных слотов.
    • Быстрое бронирование первого доступного слота.
    • Адаптивность к изменениям структуры сайта.
  4. Обработка SMS-кода:

    • Автоматическое получение SMS-кода.
    • Ввод SMS-кода в систему для подтверждения бронирования.
  5. Сохранение результата:

    • Финальный бланк подтверждения записи сохраняется в формате PDF.
    • Указание пути сохранения бланков в настройках программы.
  6. Специфика для региона Барселона:

    • Оптимизированный алгоритм для высокой частоты запросов.
    • Поддержка автоматической обработки AJAX-запросов, капчи и скрытых элементов.

Технические требования

  1. Платформа и технологии:

    • Кроссплатформенность (Windows, MacOS, Linux).
    • Предпочтительные технологии:
      • Node.js с Playwright.
      • Python с использованием Selenium или undetected_chromedriver.
    • Возможность обхода анти-бот систем (динамический User-Agent, использование прокси).
  2. Производительность:

    • Многопоточность/асинхронность для увеличения частоты запросов.
    • Быстрая обработка AJAX-запросов и рендеринга страниц.
  3. Интерфейс:

    • Удобный пользовательский интерфейс (UI):
      • Для ручного ввода данных.
      • Для просмотра логов и текущего статуса выполнения операций.
  4. Обработка ошибок:

    • Логирование всех действий программы.
    • Автоматическая повторная попытка записи в случае неудачи.
  5. Капча:

    • Интеграция с сервисами автоматического распознавания капчи (например, 2Captcha, AntiCaptcha).
    • Возможность ручного ввода капчи.
  6. Защита от блокировки:

    • Поддержка прокси-серверов для обхода IP-блокировок.
    • Эмуляция реальных пользовательских действий (движения мыши, задержки).

Дополнения для региона Барселона

  1. Тестовый пример:

    • Предоставляется конкретный пример работы для Барселоны, который необходимо интегрировать в программу.
    • Настройка алгоритма под сложный процесс записи.
  2. Частота запросов:

    • Программа должна отправлять максимально разрешенное количество запросов в секунду без риска блокировки.
  3. Автоматизация подтверждения:

    • Полностью автоматическое получение и ввод SMS-кода.
  4. Стресс-тест:

    • Проверка программы на реальном процессе бронирования в Барселоне.
    • Логирование успешных попыток, скорости выполнения операций и возможных ошибок.

Критерии успешного выполнения

  1. Количество запросов:

    • Максимальная частота запросов с учетом ограничений сайта.
  2. Успешное бронирование:

    • Демонстрация успешной записи на услугу с автоматическим подтверждением через SMS.
  3. Скорость работы:

    • Время от старта до финального подтверждения записи должно быть минимальным.
  4. Гибкость:

    • Легкость адаптации к изменениям сайта.

Этапы разработки

  1. Прототип (2-3 недели):

    • Базовый функционал: ввод данных, поиск слотов, сохранение результата.
  2. Оптимизация (4-6 недель):

    • Добавление многопоточности.
    • Интеграция капчи и прокси.
  3. Финальная проверка:

    • Тестирование на регионе Барселона с учетом высокой конкуренции.

Рекомендации к исполнителям

  1. Предложить технологии и инструменты, которые будут использованы для реализации.
  2. Примерный план работ с этапами и сроками.
  3. Обоснование подхода к обработке антибот-систем.
  4. Готовность к поддержке и обновлению программы после завершения разработки.