Program (Python + Playwright or Node.js + Puppeteer) for Windows
Required program (Python / Node.js) for Windows - Runs manually and:
Visits the website: https://threeplus.three.co.uk
Uses my already logged-in Chrome profile (without authorization) or username - password.
In each account:
Goes to the section with codes
Copies 1 numeric code
Saves it in CSV
Processes the first 20 accounts from the CSV file, then automatically terminates.
EVERYTHING!
📂 The same — in other words:
I have a CSV file with 30–50... accounts.
(I paid and legally registered on the site — completed SMS verification).
The program should process the first 20 accounts sequentially upon launch and turn off.
❗ Requirements:
❌ Do not use Selenium, WebDriver, ZennoPoster, headless browsers, etc.
❌ Do not use proxies / VPNs
✅ Use real Chrome profiles
✅ Mimic human behavior (small delays, genuine clicks)
✅ Fully local solution (no hosting or cloud)
💸 Expect affordable implementation
(including — because the site changes several times a month — I will regularly contact you with payment for minor adjustments)
💬 Please specify in your application:
Which language and library you plan to use (Python/Playwright, Node.js/Puppeteer, etc.)
How your program will work
🎯 Goal
Create a desktop program or script (in Python or Node.js) that automatically opens real Chrome profiles, logs into 20 Three+ accounts, extracts the code (number) from the page after login, and adds it to the same CSV table.
⚙️ Functionality
The program is launched manually on Windows (without background services or auto-start).
Processes the first 20 accounts per launch (number set in config).
Works through real Chrome with local profiles (
user-data-dir+profile-directory).Does not use headless modes, Selenium, or HTTP requests.
Simulates human actions: opening browser, navigation, clicks, pauses.
Skips accounts from which the code has already been obtained — determined via data in the same CSV.
🔄 Workflow Algorithm
Opens Chrome with the appropriate profile, already logged into Three+.
Goes to the Cineworld section, clicks the Get Reward button.
Getting the code:
a) The code appears in a popup — reads and saves it.
b) In rare cases, a link “Go to your codes” appears — then the program navigates there and retrieves the code.
In any case, after clicking “Get Reward” the code always goes to the My Codes section, so the program should read it from there.
Saves the code in the corresponding column in the same CSV file next to the login.
Closes the browser, but does not log out.
Processes the next accounts (up to 20), skipping already processed.
Ends the operation.
Next time the program is launched, it continues from the next unprocessed entries.
⚙️ Configuration (settings.json or .ini)
Path to Chrome (
chrome.exe)List of profiles (names or paths)
Rewards URL (changes weekly)
Delays between actions: 2–3 minutes (random)
Path to CSV file
🗺️ Site features
Rewards URL changes every Monday (should be configurable in settings)
Site built on Flutter Web (canvas), HSTS active, no Captcha
🛠️ Technologies
Python + Playwright or Node.js + Puppeteer
Use of real Chrome profiles
Pauses:
random + time.sleep()Configuration via JSON or INI
📝 Waiting for output
.exefile for WindowsFull source code with comments
README file with instructions
Example configuration file
🚨 Important
🧍♂️ All actions must imitate manual user work.
The program should operate as “human-like” as possible (with pauses, genuine User-Agent, and without sudden simultaneous requests), to avoid blocks or SMS verification requests.
✅ Manual site operation is stable — I can easily get codes from 40-60 accounts in 10 minutes.
The program may not perform login — instead, it uses already logged-in profiles.
All behavior must be as “human” as possible: open browser, delays, real clicks, avoid simultaneous requests.
IP remains unchanged, proxies are not used.
🔹 Python + Playwright or Node.js + Puppeteer — are truly the right choices because:
They allow launching real Chrome with profiles, without headless mode and unnecessary emulation.
They work reliably even with Flutter Web sites (like Three+).
🔹 No authorization — login is done via existing profiles, so risk of SMS confirmation is minimal (with proper user simulation).
🔹 Code collection via page.evaluate() — effective and natural, especially when navigating through My Codes.
🔹 Delays, clicks, user behavior — crucial: mimic manual work (each profile opens separately, acts with pauses) — key to avoiding blocks.
🔹 CSV logic — correct: reading, checking, updating — all within one file, no extra databases.
🔹 No headless, Selenium, or proxies — exactly what is needed for safe automation in such a sensitive environment.
✅ If everything is implemented as described — the program will fully meet the requirements and work most reliably as manual interaction.
1. General Requirements
The program must be launched manually, work locally on Windows.
Use a real Chrome browser, launch it with existing user profiles.
Ensure maximum imitation of human behavior (delays, clicks, navigation).
The use of headless modes, Selenium/WebDriver, API requests, proxies, multi-threaded simultaneous launches is prohibited.
Record results into a CSV file in the appropriate columns.
The program processes up to 20 accounts per run.
2. Input Parameters (file settings.json)
json{
"chrome_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"profiles": [
{
"user_data_dir": "C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data",
"profile_dir": "Profile 1"
},
...
],
"rewards_url": "https://threeplus.three.co.uk/rewards",
"csv_path": "C:\\path\\to\\accounts.csv",
"delay_range_seconds": [90, 240]
}
chrome_path – full path to
chrome.exe.profiles – array of objects with two parameters:
user_data_dir(Chrome root directory) andprofile_dir(profile folder).rewards_url – current URL of the rewards page.
csv_path – full path to the CSV file with accounts.
delay_range_seconds – array of two numbers specifying the minimum and maximum random delay between actions (in seconds).
3. CSV File Format
The file contains at least the following columns:
account— unique account identifier (email, login, or other).code— column for recording the received code (initially empty).
4. Program Logic
Loading Configuration
The program reads
settings.json.Checks for Chrome at the path
chrome_path.Loads the list of profiles.
Loading CSV
Reads the CSV file.
Identifies accounts with an empty
codefield (unprocessed).
Processing Accounts
For each unprocessed account (up to 20 per run), performs:
a. Launches Chrome viasubprocesswith parameters:ini
--user-data-dir<user_data_dir>
--profile-directory<profile_dir>
--remote-debugging-port=9222
b. Connects to the browser via CDP (Playwright/Puppeteer).
c. Navigates torewards_url.
d. Waits for the page to fully load.
e. Clicks the Get Reward button.
f. If a modal window with a code appears — reads the code (textually or via OCR if needed).
g. If there is a Go to My Codes link — navigates there and reads the code.
h. Records the code in the correspondingcodecolumn of the CSV file.
i. Closes the browser without exiting the profile (browser must be fully closed).
j. Waits for a random delay withindelay_range_secondsbefore proceeding to the next account.
Termination
After processing up to 20 accounts, saves the updated CSV.
Ends the work.
5. Important Restrictions
| Action | Reason for Restriction |
|---|---|
| Using Selenium/WebDriver | Easily detectable and leads to SMS confirmations |
| Launching Chrome in headless mode | Detected via navigator.webdriver and other signals |
| Making HTTP or API requests to three.co.uk | The site uses Flutter Web and canvas rendering, regular requests do not work |
| Running more than 1 browser simultaneously | Leads to account blocking as bots |
| Delays less than 5 seconds | Do not mimic real human behavior, raise suspicion |
| Changing IP or using proxies | Violates IP-profile consistency, causes re-authorization |
6. Recommended Technologies
| Component | Recommendations |
|---|---|
| Language | Python 3.10+ or Node.js v18+ |
| Tool | Playwright (Python) or Puppeteer (Node.js) |
| Automation | launchPersistentContext (Playwright) for a real profile |
| Action Simulation | Clicking buttons, scrolling, random delays |
| Data Storage | pandas (Python) or csv-parser (Node.js) for working with CSV |
7. Additional Requirements
Logging actions for diagnostics (saving to a separate log file).
Error handling: proper termination on failures, ability to restart from the point of stop.
Concise and clear command-line interface (e.g., informing about the current account, processing status).
1. Загальні вимоги
Програма повинна запускатись вручну, працювати локально на Windows.
Використовувати реальний браузер Chrome, запускати його з існуючими користувацькими профілями.
Забезпечити максимальну імітацію поведінки людини (затримки, кліки, навігація).
Заборонено використання headless режимів, Selenium/WebDriver, API-запитів, проксі, багатопотокового одночасного запуску.
Результати записувати в CSV-файл у відповідні колонки.
Програма обробляє до 20 акаунтів за один запуск.
2. Вхідні параметри (файл settings.json)
json{
"chrome_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"profiles": [
{
"user_data_dir": "C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data",
"profile_dir": "Profile 1"
},
...
],
"rewards_url": "https://threeplus.three.co.uk/rewards",
"csv_path": "C:\\path\\to\\accounts.csv",
"delay_range_seconds": [90, 240]
}
chrome_path – повний шлях до
chrome.exe.profiles – масив об'єктів з двома параметрами:
user_data_dir(коренева директорія Chrome) іprofile_dir(папка профілю).rewards_url – актуальна URL сторінки з винагородами.
csv_path – повний шлях до CSV файлу з акаунтами.
delay_range_seconds – масив з двох чисел, що задають мінімальну та максимальну випадкову затримку між діями (в секундах).
3. Формат CSV файлу
Файл містить мінімум такі колонки:
account— унікальний ідентифікатор акаунта (email, login або інше).code— колонка для запису отриманого коду (спочатку порожня).
4. Логіка роботи програми
Завантаження конфігурації
Програма читає
settings.json.Перевіряє наявність Chrome за шляхом
chrome_path.Завантажує список профілів.
Завантаження CSV
Читає CSV-файл.
Визначає акаунти з порожнім полем
code(необроблені).
Обробка акаунтів
Для кожного необробленого акаунта (до 20 на один запуск) виконує:
a. Запускає Chrome черезsubprocessіз параметрами:ini
--user-data-dir=<user_data_dir>
--profile-directory=<profile_dir>
--remote-debugging-port=9222
b. Підключається до браузера через CDP (Playwright/Puppeteer).
c. Переходить на сторінкуrewards_url.
d. Чекає повного завантаження сторінки.
e. Натискає кнопку Get Reward.
f. Якщо з'являється модальне вікно з кодом — зчитує код (текстовим способом або OCR, якщо треба).
g. Якщо є посилання Go to My Codes — переходить туди та зчитує код.
h. Записує код у відповідну колонкуcodeCSV-файлу.
i. Закриває браузер, не виходячи з профілю (браузер повинен бути повністю закритий).
j. Чекає випадкову затримку в межахdelay_range_secondsперед наступним акаунтом.
Завершення роботи
Після обробки до 20 акаунтів зберігає оновлений CSV.
Завершує роботу.
5. Важливі заборони
| Дія | Причина заборони |
|---|---|
| Використання Selenium/WebDriver | Легко виявляється і призводить до SMS-підтверджень |
| Запуск Chrome у headless режимі | Детектується через navigator.webdriver та інші сигнали |
| Здійснення HTTP або API запитів до three.co.uk | Сайт використовує Flutter Web і рендеринг canvas, звичайні запити не працюють |
| Одночасний запуск >1 браузера | Приводить до блокування акаунтів як боти |
| Затримки менше 5 секунд | Не відповідають поведінці реальної людини, викликають підозри |
| Зміна IP або використання проксі | Порушує відповідність IP і профілю, викликає повторну авторизацію |
6. Рекомендовані технології
| Компонент | Рекомендації |
|---|---|
| Мова | Python 3.10+ або Node.js v18+ |
| Інструмент | Playwright (Python) або Puppeteer (Node.js) |
| Автоматизація | launchPersistentContext (Playwright) для реального профілю |
| Симуляція дій | Натискання кнопок, скрол, випадкові затримки |
| Збереження даних | pandas (Python) або csv-parser (Node.js) для роботи з CSV |
7. Додаткові вимоги
Логування дій для діагностики (збереження в окремий лог-файл).
Обробка помилок: коректне завершення роботи при збоях, можливість повторного запуску з місця зупинки.
Лаконічний і зрозумілий інтерфейс командного рядка (наприклад, інформування про поточний акаунт, статус обробки).
This is the final updated version of the technical task text, already considering all corrections, including a single method for obtaining the code via "My Codes", without OCR and modal windows:
🎯 Goal
Create a desktop application (in Python or Node.js) that automatically opens real Chrome profiles, logs into 20 Three+ accounts, clicks Get Reward, navigates to My Codes, extracts the code in the form of TH3DC\d{9,} and adds it to the corresponding row in CSV.
⚙️ Functionality
Runs manually on Windows (without auto-start or services).
Works through real Chrome with local profiles (
user-data-dir+profile-directory).Does not use headless mode, Selenium, HTTP requests, or proxies.
Simulates human actions: launching the browser, clicking, navigating, pauses.
Handles up to 20 accounts per run (specified in config).
Skips accounts that already have a code in CSV.
🔄 Working Algorithm
Step 1: Load Configuration
Reads
settings.json(Chrome path, profile list, CSV path, delays).Reads CSV, identifies accounts without a code.
Step 2: Process Each Profile
Launches Chrome with specified profile:
iniCopyEdit--user-data-dir=<user_data_dir>
--profile-directory=<profile_dir>
--remote-debugging-port=9222Connects via CDP (Playwright or Puppeteer).
Opens
rewards_url.Waits for the page to fully load.
Clicks the
Get Rewardbutton (actual click, not.click()): a real click (using Playwright/Puppeteer with mouse.move + mouse.down + mouse.up, without .click()).Waits 3–5 seconds.
Step 3: Read Code from My Codes
Navigate to
https://threeplus.three.co.uk/my-rewards
(or clickGo to my codesif it appeared after Get Reward).Searches for the last code in the format
TH3DC\d{9,}in the DOM (via innerText / textContent).Saves to CSV in the format:
CopyEditProfile_01,TH3DC103897998490
Closes the browser (but does not log out).
Waits for a random delay (20–40 seconds).
Repeats for up to 20 accounts.
🧠 Exact Method of Reading the Code (Clear Algorithm)
OCR, screenshots, and modal windows are not used.
The code is always read from the My Codes page — after clicking "Get Reward"
Code appearance:
TH3DC103897998490(pattern:TH3DC\d{9,}).Reading: via DOM (
innerText,textContent,evaluate()).
⚙️ Configuration (settings.json)
jsonCopyEdit{
"chrome_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"profiles": [
{
"user_data_dir": "C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data",
"profile_dir": "Profile 1"
}
// ...
],
"rewards_url": "https://threeplus.three.co.uk/rewards",
"csv_path": "C:\\path\\to\\accounts.csv",
"delay_range_seconds": [90, 240]
}📄 CSV Format
csvCopyEditaccount,code
profile_01,
profile_02,
account— profile identifiercode— field where the obtained code will be written
🚫 Prohibited
| Action | Reason |
|---|---|
| Selenium/WebDriver | Easily detected, causes SMS |
| Headless mode | Detected by the site |
| HTTP/API requests | Flutter Web, Canvas rendering |
| Multithreaded processing | Raises suspicion/blocking |
| Proxy or IP change | Triggers re-authorization |
| Delays < 5 seconds | Unusual behavior |
📦 Expected Output Files
.exefor Windows (1 file).Full source code with comments.
README.mdwith instructions.Example
settings.json.
🛠️ Recommended Technologies
| Component | Tool |
|---|---|
| Language | Python 3.10+ or Node.js 18+ |
| Automation | Playwright or Puppeteer |
| Working with CSV | pandas (Python) or csv-parser |
| Action simulation | Clicks, pauses, scrolls, real profiles |
Ось фінальний оновлений текст технічного завдання, вже з урахуванням всіх правок, включаючи єдиний спосіб отримання коду через "My Codes", без OCR і модальних вікон:
🎯 Мета
Створити десктопну програму (на Python або Node.js), яка автоматично відкриває реальні Chrome-профілі, заходить у 20 облікових записів Three+, натискає Get Reward, переходить у My Codes, витягує код у вигляді TH3DC\d{9,} та додає його у відповідний рядок CSV.
⚙️ Функціональність
Запускається вручну на Windows (без автозапуску або служб).
Працює через реальний Chrome із локальними профілями (
user-data-dir+profile-directory).Не використовує headless-режим, Selenium, HTTP-запити або проксі.
Імітує людські дії: запуск браузера, натискання, переходи, паузи.
Обробляє до 20 акаунтів за запуск (вказується в конфігу).
Пропускає акаунти, де вже є код у CSV.
🔄 Алгоритм роботи
Крок 1: Завантаження конфігурації
Зчитує
settings.json(chrome path, список профілів, CSV шлях, затримки).Зчитує CSV, визначає акаунти без коду.
Крок 2: Обробка кожного профілю
Запускає Chrome із вказаним профілем:
iniCopyEdit--user-data-dir=<user_data_dir>
--profile-directory=<profile_dir>
--remote-debugging-port=9222Підключається через CDP (Playwright або Puppeteer).
Відкриває
rewards_url.Чекає повного завантаження сторінки.
Натискає кнопку
Get Reward(дійсним кліком, не.click()): дійсний клік (через Playwright/Puppeteer з mouse.move + mouse.down + mouse.up, без .click()).Чекає 3–5 секунд.
Крок 3: Зчитування коду з My Codes
Переходить на сторінку
https://threeplus.three.co.uk/my-rewards
(або натискаєGo to my codes, якщо вона зʼявилася після Get Reward).Шукає останній код у форматі
TH3DC\d{9,}у DOM (через innerText / textContent).Зберігає у CSV у вигляді:
CopyEditProfile_01,TH3DC103897998490
Закриває браузер (але не виходить з акаунта).
Чекає випадкову затримку (20–40 секунд).
Повторює до 20 акаунтів.
🧠 Як саме зчитується код (чіткий алгоритм)
OCR, скриншот та модальні вікна не використовуються.
Код завжди зчитується зі сторінки My Codes - після натискання "Get Reward"
Вигляд коду:
TH3DC103897998490(шаблон:TH3DC\d{9,}).Читання: через DOM (
innerText,textContent,evaluate()).
⚙️ Конфігурація (settings.json)
jsonCopyEdit{
"chrome_path": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"profiles": [
{
"user_data_dir": "C:\\Users\\User\\AppData\\Local\\Google\\Chrome\\User Data",
"profile_dir": "Profile 1"
}
// ...
],
"rewards_url": "https://threeplus.three.co.uk/rewards",
"csv_path": "C:\\path\\to\\accounts.csv",
"delay_range_seconds": [90, 240]
}📄 Формат CSV
csvCopyEditaccount,code
profile_01,
profile_02,
account— ідентифікатор профілюcode— поле, куди буде вписаний отриманий код
🚫 Заборонено
| Дія | Причина |
|---|---|
| Selenium/WebDriver | Легко детектується, викликає SMS |
| Headless режим | Детектується сайтом |
| HTTP/API запити | Flutter Web, Canvas rendering |
| Багатопотокова обробка | Викликає підозру/блокування |
| Проксі або зміна IP | Викликає ре авторизацію |
| Затримки < 5 секунд | Нетипова поведінка |
📦 Очікувані файли на виході
.exeдля Windows (1 файл).Повний вихідний код з коментарями.
README.mdз інструкцією.Приклад
settings.json.
🛠️ Рекомендовані технології
| Компонент | Інструмент |
|---|---|
| Мова | Python 3.10+ або Node.js 18+ |
| Автоматизація | Playwright або Puppeteer |
| Робота з CSV | pandas (Python) або csv-parser |
| Симуляція дій | Кліки, паузи, скрол, реальні профілі |
Applications 1
Client's review of cooperation with Oleksandr Leonov
Program (Python + Playwright or Node.js + Puppeteer) for WindowsOleksandr — a true genius in his field!
I am impressed with his work! Oleksandr solved a problem that more than ten other specialists could not. He did it quickly, perfectly, and without unnecessary questions. Everything was done with maximum precision and attention to detail.
Always in touch, clearly understands the task, and most importantly — he not only offers solutions but also proposed options that are much better than I could have imagined! It’s simply incredible! I was amazed by his ability to find solutions that exceeded all my expectations.
Oleksandr doesn’t just do the work — he creates effective strategies that improve not only the technical side of the project but also the end-user experience. His attentiveness to every detail and ability to quickly adapt to new conditions are truly impressive.
Working with Oleksandr is a real pleasure! His professionalism, friendliness, and willingness to help at any time create an atmosphere of mutual trust. If you need a talented, reliable, and responsible specialist, I confidently recommend Oleksandr!
Thanks again for the impeccable work and extremely productive collaboration! I will definitely contact you again!
Freelancer's review of cooperation with Igor D.
Program (Python + Playwright or Node.js + Puppeteer) for WindowsWorking was comfortable and productive. The technical task was clear, and unclear moments were easily clarified during the process. The client is always in touch, responds quickly, and provides feedback. The impression of cooperation is positive. I recommend.
-
5 days150 USD
512 3 0 5 days150 USDHello! I am ready to develop a high-quality bot for automatic parsing. The technical specifications are very clear, so there are no questions. I will use Python + Playwright to develop the script. I have been familiar with these technologies for over 3 years and have developed very diverse solutions throughout my career. For example, using asynchronous Playwright, I set up product parsing by query from Aliexpress. I look forward to working with you!
-
Winning proposal3 days34 USD
528 7 0 Winning proposal3 days34 USDHello! I have experience creating similar solutions on Node.js + Puppeteer with support for real Chrome profiles. I will implement according to all requirements.
-
7 days50 USD
456 7 0 7 days50 USDGood day! I have been coding in Python for a long time, specifically with the Playwright library. I already have a bunch of parsers implemented and would be happy to help you with this task.
The idea is interesting. I have actually done similar projects with "live" interaction before. Feel free to message me privately; I would like to receive the necessary input data, clarify some questions, and then start working.
-
2 days35 USD
1014 6 0 2 days35 USDHello, I will do it on Node.js + Puppeteer. I have made similar programs for spam sites and account farming. I know what to pay attention to so that the services do not detect the script
-
16 days400 USD
1825 52 0 16 days400 USDGood day. I write programs for automating various processes in Python. I also mainly use Playwright. I am 99 percent sure I can implement the project. I just need to conduct tests before starting - and for the tests, one of the profiles will be needed.
-
Вже був цей проект...
-
Ви ж все розписали в описі до проекту. Навіщо вам спеціаліст 😁
-
блокуємо цей проект
-
Current freelance projects in the category Javascript and Typescript
Full-stack development — Amazon PPC Dashboard (Stage 1)Need a full-stack developer with experience working with Amazon API to implement Stage 1 of the internal PPC dashboard. The project is real, the data is live, everything is ready to start. Frontend prototype (5 pages, React + TypeScript): WHAT IS ALREADY READY — Frontend… Javascript and Typescript, Web Programming ∙ 7 hours 8 minutes back ∙ 12 proposals |
Development of a photo book and photo frame constructor websiteProject Goal A modern website needs to be developed for ordering photo books, photo frames, and other personalized photo products. The main task of the project is to provide the client with the ability to independently create a ready-made layout of the product directly on the… Javascript and Typescript, Web Programming ∙ 1 day 23 hours back ∙ 88 proposals |
Full-stack developmentNeed a full-stack developer who is free for work and not looking to get rich immediately from this project. This is my test site: readyhome.ge the prototype of which I want to create (not referring to design). In the footer, there is Russian language, fill out the questionnaire… Javascript and Typescript, Web Programming ∙ 2 days 11 hours back ∙ 79 proposals |
Team for a custom marketplace of funeral services.We are looking for a team to launch and develop a custom national marketplace for funeral services. Right away: we are not looking for solo freelancers, juniors, or "website builders." We need a strong product team at the middle+/senior level with real cases in… Javascript and Typescript, Web Programming ∙ 2 days 17 hours back ∙ 25 proposals |
Improvement of the existing Next.js/Supabase project: offers, CRM, analytics, AI chatThere is an active project WatchGenius — a luxury watch analytics platform with a catalog of models, price analytics, external offers, application forms, and an AI chat. The project has already been partially developed. We need not a website from scratch, but an experienced… Javascript and Typescript, Web Programming ∙ 4 days 19 hours back ∙ 54 proposals |