5.8 KiB
ProxyScrape Premium Free Trial — $0 авторег + рабочие прокси
Live-пруф 2026-10-07: акк зареган, триал активен (100 datacenter-прокси, 10 GB, 7 дней, status valid), 8/8 прокси отдают трафик через user:pass auth. Весь флоу $0 (фри-капча sidecar :8877), скрипт E2E: scratch/ps_e2e.py.
Ключевой вывод: НЕ воевать с формой — API напрямую
Sign-up на dashboard.proxyscrape.com/v2/sign-up — Next.js SPA (MUI). Все браузерные пути инжекта out-of-band Turnstile-токена провалились:
- set value на hidden input + dispatch input/change → кнопка не разблокировалась/сабмит не отправлял fetch
- React fiber
onSuccessCallback(token)→ найден (depth ~4-6), вызван, но network-запроса тоже не появилось
Рабочий путь: извлечь API-эндпоинты из Next.js chunk'ов и POST'ить напрямую с токеном как form-поле.
Как найти эндпоинты
- В page source — список
/_next/static/chunks/pages/*.js - Скачать
_app-*.jsи sign-up chunk, grep'ать наv4/account,auth/register,turnstile - Найденные роуты (база
https://dashboard.proxyscrape.com):POST /v2/v4/account/auth/register— поляemail,password,confirm_password,terms_agreement=true,cf_turnstile_tokenPOST /v2/v4/account/auth/login— тоже требует Turnstile-токенPOST /v2/v4/account/auth/me— Bearer access_tokenPOST /v2/v4/account/premium/claim-trial— активирует триал БЕЗ верификации почтыPOST /v2/v4/account/reset-verification-code— шлёт hex-код на emailPOST /v2/v4/account/verify-email— полеverificationCode(HEX, напр.a0ae05f6dd— НЕ\d{6}!)GET /v2/v4/account/{accountId}/datacenter_shared/proxy-list?format=json&type=displayproxies&protocol=http&start=0&length=100&draw=1POST /v2/v4/account/{accountId}/datacenter_shared/credentials— username/password для proxy-authGET /v2/v4/account/{accountId}/datacenter_shared/whitelist?ip[]=label:IP&type=add— добавить свой IP
Content-Type: application/x-www-form-urlencoded — JSON-тело → 400 на register.
Флоу
- Email: Gmail +alias (
user+XXXX@gmail.com), пароль random. Сохранить в state-JSON. - Turnstile sitekey sign-up страницы:
0x4AAAAAAAFWUVCKyusT9T8r(снимается из JS-бандла). Решить фри-сайдкаром:POST http://127.0.0.1:8877/solve {type:"turnstile", sitekey, url, real_page:false, timeout_s:120}→ ~11-36с, токен ~752 chars. Здесь real_page НЕ обязателен (обычная проверка токена сервером, без WorkOS-аттестации). POST register(form-encoded) → 200 +access_token(Bearer для всего остального).POST premium/claim-trial→ триал активен сразу, верификация почты НЕ блокирует триал.POST reset-verification-code→ письмо; забрать код из IMAP. Код HEX (10 символов [0-9a-f]) — regex\b[0-9a-f]{8,12}\bв теле после «code», не\d{6}.POST verify-email {verificationCode}→{"success":true}.POST datacenter_shared/credentials→ proxy username/password.GET whitelist?ip[]=unset:<МОЙ_IP>&type=add— без whitelist auth-прокси отдают 407. Sync ~7-10 минут — тест проксей сразу после add даст 407/timeout, это НЕ фейл.GET proxy-list→ 100 строк. Формат для использования:http://USER:***@IP:3129(единые credentials на все прокси, не per-proxy).- Проверка:
urllib ProxyHandler({'http':p,'https':p})→api.ipify.org→ exit IP = IP прокси.
Гео пула (пример): US 52, DE 12, FR 9, BR 8, GB 7, CA 5, IT 3, ES 2, TH 2.
Free API без регистрации (для постов/быстрых задач)
https://api.proxyscrape.com/v4/free-proxy-list/get?request=display_proxies&country=all&protocol=all&timeout=10000 → HTTP 200, ~2000 строк ip:port, без auth. Качество низкое, но $0 и мгновенно.
Pitfalls
curl https://proxyscrape.com/...→ пустой ответ/exit 23 (SPA + geo/CDN): контент страницы читать через browser-рендер, а API — через chunks.- Login-эндпоинт тоже требует свежий Turnstile-токен — для повторного входа решать капчу зановая, или хранить access_token из регистрации (он долгоживущий; localStorage-ключ панели —
accessToken). - При смене домашнего IP — re-add whitelist (единственный ручной шаг при массовке).
- Скрипт-шаблон:
C:/Users/User/AppData/Local/hermes/cache/scratch/ps_reg2.py(solve+register),ps_e2e.py(полный цикл),ps_verify.py(IMAP-код + verify),ps_farm.py N(батч N акков →ps_accounts.jsonl: solve+register+claim+verify+whitelist+creds+proxy-list на акк). - Перед батчем —
curl http://127.0.0.1:8877/health: сайдкар после рестарта биндится на дефолтный порт 3000 безPORT=8877, и весь батч фейлится пачкойConnectionRefusedError 10061. ЛечитсяPORT=8877 python server.py+ health-check до запуска фарма.