2.7 KiB
2.7 KiB
ready_grok_reg — DrissionPage Grok Registration Tool
Рабочая директория: C:\Users\User\Desktop\авторег проект\ready_grok_reg\
Why this works when Playwright fails
accounts.x.ai uses Cloudflare Turnstile with CDP-browser detection. Playwright, Playwright-stealth, rebrowser-playwright, and nodriver all fail because Cloudflare checks MouseEvent.screenX/screenY — CDP sends (0,0) for every mouse event, which is a hard bot signal.
The turnstilePatch/ Chrome extension (MV3, document_start, MAIN world) patches MouseEvent.prototype.screenX and screenY to random values before any page script runs. DrissionPage supports Chrome extensions, Playwright doesn't.
Key files
| File | Purpose |
|---|---|
DrissionPage_example.py |
Main script (1401 lines) — full registration flow |
email_register_t_online.py |
t-online.de IMAP module (reads working_mails.txt) |
email_register.py |
DuckMail module (fallback, requires config.json) |
config.json |
Config (browser_proxy, run.count, API settings) |
turnstilePatch/manifest.json |
MV3 manifest, document_start, MAIN world |
turnstilePatch/script.js |
Patches MouseEvent.screenX/screenY to random values |
Registration flow
start_browser()— DrissionPage Chromium with Turnstile extension + browser_proxy from config.jsonopen_signup_page()— navigate tohttps://accounts.x.ai/sign-up?redirect=grok-comclick_email_signup_button()— JS-based button finder (multi-language)fill_email_and_submit()— gets email fromemail_register_t_online.py, fills via native value setter + React eventsfill_code_and_submit()— polls IMAP for OTP, fills OTP input (single-field or multi-box)fill_profile_form()— fills name + password, clicks through- Extract SSO token → write to
sso/sso_<timestamp>.txt
Config
{
"run": {"count": 3},
"browser_proxy": "http://bpuser-XXX:[REDACTED-EMAIL]:[REDACTED]",
"proxy": "",
"duckmail_api_base": "https://api.duckmail.sbs",
"duckmail_bearer": "",
"api": {"endpoint": "", "token": "", "append": true}
}
Dependencies
DrissionPage==[REDACTED-IP]curl_cffi>=0.7.0- Python 3.10+ (not in hermes venv — use system Python)
Pitfalls
- Cloudflare blocks datacenter proxies — use residential bpproxy only
- t-online.de IMAP —
email_register_t_online.pyreads fromC:\Users\User\Downloads\Telegram Desktop\working_mails.txt(17,893 emails) - config.json must exist — create from
config.example.jsonif missing - DrissionPage version — [REDACTED-IP]b14 works, exact version not critical
- Do NOT use Playwright for Grok — it will always hit Cloudflare. Use this tool.