🎯 Мета
Создать десктопную программу или скрипт (на Python или Node.js), который автоматически открывает реальные Chrome-профили, входит в 20 аккаунтов Three+, извлекает код (число) со страницы после входа и добавляет его в ту же CSV-таблицу.
⚙️ Функциональность
Программа запускается вручную на Windows (без фоновых служб или автозапуска).
Обрабатывает первые 20 аккаунтов за запуск (количество задается в конфиге).
Работает через реальный Chrome с локальными профилями (user-data-dir + profile-directory).
Не использует headless-режимы, Selenium или HTTP-запросы.
Имитирует действия человека: открытие браузера, навигация, клики, паузы.
Пропускает аккаунты, у которых код уже получен — определяется по данным в той же CSV.
🔄 Алгоритм работы
Открывает Chrome с соответствующим профилем, который уже залогинен в Three+.
Переходит в раздел Cineworld, нажимает кнопку Get Reward.
Получение кода:
a) Код появляется в всплывающем окне — считывается и сохраняется.
b) В отдельных случаях в окне появляется ссылка “Go to yours codes” — тогда программа переходит туда и берет код.
В любом случае, после нажатия "Get Reward" код всегда идет в раздел My Codes, логично, чтобы программа считывала его оттуда.
Сохраняет код в соответствующую колонку в том же CSV-файле рядом с логином.
Закрывает браузер, но не выходит из аккаунта.
Обрабатывает следующие аккаунты (до 20), пропуская уже обработанные.
Завершает работу.
При следующем запуске программа продолжает с следующих необработанных записей.
⚙️ Конфигурация (settings.json или .ini)
Путь к Chrome (chrome.exe)
Список профилей (имена или пути)
URL Rewards (меняется каждую неделю)
Задержки между действиями: 2–3 минуты (случайные)
Путь к CSV-файлу
🗺️ Особенности сайта
Домен: https://threeplus.three.co.uk
URL Rewards меняется каждую понедельник (нужно сделать, чтобы задавался в настройках)
Сайт построен на Flutter Web (canvas), HSTS активен, капчи отсутствуют
🛠️ Технологии
Python + Playwright или Node.js + Puppeteer
Использование реальных Chrome-профилей
Паузы: random + time.sleep()
Конфигурация через JSON или INI
📝 Ожидаемый релиз
.exe файл для Windows
Полный исходный код с комментариями
README-файл с инструкцией
Пример конфигурационного файла
🚨 Важное
🧍♂️ Все действия должны имитировать ручную работу пользователя.
Программа должна работать максимально «по-человечески» (с паузами, настоящими User-Agent и без резких одновременных запросов), чтобы избежать блокировок или запросов на SMS-подтверждение.
✅ Вручную сайт работает стабильно — за 10 минут я могу без проблем получить коды с 40 аккаунтов.
✅ Программа должна повторять именно такую скорость (не быстрее, не медленнее), чтобы не вызывать подозрений.
Программа не выполняет вход — использует только уже залогиненные профили.
Вся деятельность должна быть максимально «человеческой»: открытый браузер, задержки, реальные клики, избегание одновременных запросов.
Скорость обработки = ~20 аккаунтов за 4-8 минут (не быстрее!)
IP не меняется, прокси не используется.
Программа не должна вызывать SMS-подтверждение.
🔹 Python + Playwright или Node.js + Puppeteer — это действительно правильный выбор, поскольку:
Они позволяют запускать реальный Chrome с профилями, без headless и без лишних эмуляций.
Работают стабильно даже с сайтами на Flutter Web (как в случае с Three+).
🔹 Нет авторизации — вход осуществляется через существующие профили, поэтому минимальный риск получения SMS подтверждения (при правильной симуляции пользователя).
🔹 Сбор кода через page.evaluate() — эффективно и естественно, особенно при навигации через My Codes.
🔹 Задержки, клики, поведение пользователя — важный элемент: имитация ручной работы (каждый профиль открывается отдельно, действует с паузами) — это ключ к избеганию блокировок.
🔹 CSV-логика — правильная: чтение, проверка, обновление — все в пределах одного файла, без лишних баз данных.
🔹 Никакого headless, Selenium или прокси — это именно то, что нужно для безопасной автоматизации в такой чувствительной среде.
✅ Если все реализовано именно так — программа будет на 100% соответствовать требованиям, и работать максимально надежно, как ручное взаимодействие.