Commit Graph
12 Commits
Author SHA1 Message Date
protokeyandClaude Opus 5.5 0e10fb671d fix: reCAPTCHA — закрытие окна с картинками и вызов callback (#10)
- Окно с картинками закрывается кликом в угол подложки: в её центре лежит
  само окно и перехватывает клик (Locator.click падал по таймауту 60 с).
- form_submit выполняется в основном мире страницы (isolated_context=False):
  префикс "mw:" patchright не поддерживает, в изолированном мире
  ___grecaptcha_cfg не виден — "Recaptcha callback function not found".
- Воркер: LOG_LEVEL выставляется корневому логгеру явно — dramatiq настраивает
  логирование раньше, и basicConfig ничего не делал. make dev — LOG_LEVEL=DEBUG.
- test_main.http: запрос на zennolab с проверкой результата по #main.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 01:17:06 +04:00
protokeyandClaude Opus 5.5 4d90dc4a21 fix: reCAPTCHA — окно с картинками определяется по положению (#10)
- Маркер интерактивного челленджа: iframe bframe, контейнер которого не стоит
  за экраном (top: -10000px); click_and_race ждёт видимости, а не появления в DOM.
- Маркер наличия капчи берётся из исходного HTML (api.js / enterprise.js,
  .g-recaptcha, iframe чекбокса), проверка мгновенная, без ожидания iframe.
- SolverReCaptcha ждёт detect_locator в DOM, а не видимости (script невидим).
- test_main.http: секреты вынесены в http-client.private.env.json, запрос
  на стенд zennolab, исправлены XPath с @class.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 00:30:29 +04:00
protokeyandClaude Opus 5.5 437ea27be7 fix: слоты, безопасность, единый формат ответа и валидация
- слоты браузеров: asyncio.Semaphore, размер из BROWSER_SLOTS, при нехватке — 503 + Retry-After;
  устранена утечка счётчика при отказе (#12, #49)
- session_id принимается только как UUID, путь профиля проверяется (#5)
- секреты клиента в логах маскируются, полный дамп — только на DEBUG (#6)
- ответ: status всегда "ok"/"err", поле code (no_slots / request_failed / challenge_failed /
  action_failed), response_model (#7)
- непройденный антибот → challenge_failed, действия не выполняются (#8)
- таймауты провайдеров в мс вынесены в константы; detect переживает навигацию посреди
  проверки; пауза между неудачными solve вместо холостого цикла (#9)
- обязательные поля действий и формат прокси проверяются схемой → 422 до запуска браузера (#13)
- прокси необязателен (#15)
- user_agent сохраняется в профиле сессии и реально передаётся в браузер (#16)
- duration_ms у действий и у запроса (#18), опция screenshot (#19)
- общий конфиг логирования (LOG_LEVEL), print → логгер, CloudflareProvider,
  удалён cached_persistent, GET /health (#22)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 14:52:12 +04:00
protokey 8f7645b2b9 feature!: перенимаем реализацию прохождения cf_turnstile у scrapling
https://github.com/D4Vinci/Scrapling

BREAKING_CHANGES: клик отрабатывает, но прохода не случается
2026-09-23 11:21:18 +04:00
protokey f1ed6edc7a feature!: добавлен обход claudflare
не кликает!
2026-09-22 18:56:50 +04:00
protokey b339d43d53 chore: кеширование для методов решения капчи 2026-09-21 19:35:43 +04:00
protokey 1cfd9bafef chore: настроен обход антибот защиты 2026-09-21 19:33:49 +04:00
protokey 4cc068a616 fix: добавление обхода для recaptcha 2026-09-18 19:15:44 +04:00
protokey ce68d2727c chore: добавлена возможность передавать локатор для выбора элемента сигнализирующего о странице антибот защиты 2026-09-18 16:21:07 +04:00
protokey d6bb88ead2 docs: updated 2026-09-18 14:30:58 +04:00
protokey 1d2fdeae70 feature!: добавлен механизм обхода антибот защиты 2026-09-17 15:49:12 +04:00
protokey f5871710ab chore: добавлена поддержка решения капчи hcaptcha на формах 2026-09-11 22:42:34 +04:00