Обогащение Авито берёт карточки в свежем контексте браузера #3596

Merged
lekss361 merged 1 commit from fix/avito-detail-fresh-context into main 2026-09-19 20:55:50 +00:00

1 commit

Author SHA1 Message Date
bot-backend
65e44c9195 fix(avito): карточки берутся в свежем контексте браузера, а не в общем
All checks were successful
CI Trade-In / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / changes (pull_request) Successful in 13s
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 5m1s
Обогащение держало один контекст браузера на весь прогон
(reuse_context=True). Авито закрывает карточки проверкой работой на JS,
а её куки pow_challenge и pow_solved живут около пяти минут. Прогон
живёт десятки минут, токен протухает и в живом контексте не
обновляется, поэтому после первых карточек каждая следующая получает
бан-страницу, и прогон рвёт защита по доле блокировок.

Замер на проде 19.09, отдельная копия сайдкара, один и тот же прокси,
16 карточек на плечо, схема A-B-A:

  свежий контекст   14/16 и 13/16 успехов,  8.7 и 7.9 с на карточку
  общий контекст     6/16 успехов,          8.4 с на карточку

Времени свежий контекст не стоит, а успешных карточек даёт вдвое
больше. В плече с общим контекстом отказы нарастают по ходу: первые
три успешны, последние пять подряд забанены.

Переиспользование контекста пришло из #3118, где оно нужно ДомКлику,
чтобы не терять куку его защиты. Для ДомКлика это остаётся верным,
на Авито было перенесено по аналогии и замером опровергнуто.

Поведение вынесено в AVITO_DETAIL_REUSE_CONTEXT с дефолтом false,
чтобы вернуть старый режим без выката.
2026-09-19 23:22:43 +03:00