Files
autoreg-skills-max/skills/ai-provider-autoreg/references/proxyscrape-premium-trial-autoreg.md

5.8 KiB
Raw Blame History

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-поле.

Как найти эндпоинты

  1. В page source — список /_next/static/chunks/pages/*.js
  2. Скачать _app-*.js и sign-up chunk, grep'ать на v4/account, auth/register, turnstile
  3. Найденные роуты (база https://dashboard.proxyscrape.com):
    • POST /v2/v4/account/auth/register — поля email, password, confirm_password, terms_agreement=true, cf_turnstile_token
    • POST /v2/v4/account/auth/login — тоже требует Turnstile-токен
    • POST /v2/v4/account/auth/me — Bearer access_token
    • POST /v2/v4/account/premium/claim-trial — активирует триал БЕЗ верификации почты
    • POST /v2/v4/account/reset-verification-code — шлёт hex-код на email
    • POST /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=1
    • POST /v2/v4/account/{accountId}/datacenter_shared/credentials — username/password для proxy-auth
    • GET /v2/v4/account/{accountId}/datacenter_shared/whitelist?ip[]=label:IP&type=add — добавить свой IP

Content-Type: application/x-www-form-urlencoded — JSON-тело → 400 на register.

Флоу

  1. Email: Gmail +alias (user+XXXX@gmail.com), пароль random. Сохранить в state-JSON.
  2. 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-аттестации).
  3. POST register (form-encoded) → 200 + access_token (Bearer для всего остального).
  4. POST premium/claim-trial → триал активен сразу, верификация почты НЕ блокирует триал.
  5. POST reset-verification-code → письмо; забрать код из IMAP. Код HEX (10 символов [0-9a-f]) — regex \b[0-9a-f]{8,12}\b в теле после «code», не \d{6}.
  6. POST verify-email {verificationCode} → {"success":true}.
  7. POST datacenter_shared/credentials → proxy username/password.
  8. GET whitelist?ip[]=unset:<МОЙ_IP>&type=add — без whitelist auth-прокси отдают 407. Sync ~7-10 минут — тест проксей сразу после add даст 407/timeout, это НЕ фейл.
  9. GET proxy-list → 100 строк. Формат для использования: http://USER:***@IP:3129 (единые credentials на все прокси, не per-proxy).
  10. Проверка: 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 до запуска фарма.