Обогащение Авито берёт карточки в свежем контексте браузера #3596
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3596
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/avito-detail-fresh-context"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что не так
avito_detail_backfillдержал один контекст браузера на весь прогон (reuse_context=True). Авито закрывает карточки проверкой работой на JS, её кукиpow_challenge/pow_solvedживут около пяти минут (замерено: выданы 23:08, протухли 23:13). Прогон живёт десятки минут — токен протухает, в живом контексте не обновляется, и каждая следующая карточка получает бан-страницу. Защита по доле блокировок затем рвёт прогон какbanned.Симптом на проде: обогащение Авито 8.5% (5 322 из 62 360 активных) против cian 25.7% и yandex 64.0%. За 14 дней: 54 прогона
banned, 36failed, 22done.Замер
Прод, 19.09. Отдельная копия сайдкара (
probe-browser, та же сборка, изолированная), один и тот же прокси, одни и те же 16 карточек на плечо, схема A-B-A:Скорости свежий контекст не стоит — это опровергает довод «4-5 с против 17-52 с», записанный в комментарии кода. В плече B отказы нарастают по ходу: первые три карточки успешны, последние пять подряд забанены — ровно картина протухшего токена, а не бана адреса.
Отдельно: ручная сессия camoufox через тот самый «сожжённый» прод-прокси дала 148 запросов, все 200 (кроме одного 407 на авторизацию прокси), ноль бан-страниц, 28 кук. Адрес не забанен — ломался именно способ хождения.
Что меняется
reuse_context=settings.avito_detail_reuse_contextвместо жёсткогоTrue(avito_detail_backfill.py:~430).if settings.avito_detail_reuse_context and not context_reset_used).AVITO_DETAIL_REUSE_CONTEXT, дефолтfalse— старый режим возвращается переменной окружения, без выката.ДомКлик, Циан и SERP не тронуты — переиспользование контекста там остаётся включённым, для ДомКлика оно нужно по существу (кука QRATOR).
Проверка
13 тестов в
test_3251_avito_warm_context.py+ новомtest_avito_detail_reuse_context_default.pyзелёные. Проверено отдельно, что дефолт настройкиFalse, аAVITO_DETAIL_REUSE_CONTEXT=trueдаётTrue.После мержа
Плановое обогащение сейчас выключено (
scrape_schedules.enabled=falseдляavito_detail_backfill) — включу обратно после выката, чтобы первый настоящий прогон дал чистую проверку.🤖 Generated with Claude Code
https://claude.ai/code/session_01JY6iWDnGDthdvsMWgK1BMG