fix(tradein/avito): detail_backfill ходил curl'ом, который не решает PoW-челлендж
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
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 / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m32s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 7s
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 / changes (pull_request) Successful in 9s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m32s
Замер на проде 2026-08-21: Авито за QRATOR отдаёт JavaScript proof-of-work
челлендж (startPow → кука pow_solved → self-reload через window.location).
curl_cffi не исполняет JS и пройти его не может в принципе.
Что это давало в цифрах (counters прогонов avito_detail_backfill):
run 4508: enriched 3 / attempted 46
run 4394: enriched 2 / attempted 47
run 4348: enriched 4 / attempted 53
~6% успеха. Браузерный путь на том же проде — ~74% (17/23 в инлайн-обогащении
свипа, 2/3 в точечной проверке после #3048). То есть задание работало почти
вхолостую, а поля дома, которые чинил #3048, до карточек просто не доходили.
Исходное обоснование AVITO_DETAIL_BACKFILL_USE_CURL=true (browser открывает
десятки коннектов и превышает cap прокси-аккаунта auv) больше не действует:
браузер сериализован BROWSER_CONCURRENCY=1 и ходит через тот же backconnect
SCRAPER_PROXY_URL, что и curl-путь.
Переключение сделано в docker-compose.prod.yml (environment перекрывает
env_file), а не правкой рантайм-env на хосте — чтобы изменение осталось в
репозитории и пережило deploy без дрейфа конфигурации. Дефолт в config.py
оставлен True: другие окружения не трогаем вслепую, но устаревшее обоснование
там помечено.
This commit is contained in:
parent
a67ed2bd07
commit
b61123d7a6
2 changed files with 21 additions and 0 deletions
|
|
@ -964,6 +964,15 @@ class Settings(BaseSettings):
|
|||
# True (дефолт) = curl_cffi через settings.scraper_proxy_url (backconnect mproxy).
|
||||
# False = старое browser-поведение (BrowserFetcher/auv, как scraper_fetch_mode).
|
||||
# ENV: AVITO_DETAIL_BACKFILL_USE_CURL.
|
||||
#
|
||||
# ⚠️ Обоснование выше УСТАРЕЛО для Авито (замер 2026-08-21). Авито за QRATOR
|
||||
# отдаёт JS proof-of-work челлендж, который curl_cffi не решает: прогоны
|
||||
# 4348/4394/4508 — 3-4 обогащённых из 46-53 попыток (~6%) против ~74% на
|
||||
# браузерном пути. Опасение «browser превышает cap прокси-аккаунта auv» снято:
|
||||
# браузер сериализован BROWSER_CONCURRENCY=1 и ходит через тот же backconnect.
|
||||
# Прод переведён на браузер через docker-compose.prod.yml (environment
|
||||
# перекрывает env_file). Дефолт оставлен True, чтобы не менять поведение
|
||||
# других окружений вслепую.
|
||||
avito_detail_backfill_use_curl: bool = Field(
|
||||
default=True, validation_alias="AVITO_DETAIL_BACKFILL_USE_CURL"
|
||||
)
|
||||
|
|
|
|||
|
|
@ -336,6 +336,18 @@ services:
|
|||
USE_KIT_SCHEDULER: "true"
|
||||
USE_PROXY_POOL_CURL: "true"
|
||||
USE_PROXY_POOL_BROWSER: "true"
|
||||
# Транспорт detail_backfill: браузер, НЕ curl (замер 2026-08-21).
|
||||
# Авито за QRATOR отдаёт JavaScript proof-of-work челлендж (startPow →
|
||||
# кука pow_solved → self-reload). curl_cffi его не решает в принципе:
|
||||
# прогоны 4348/4394/4508 дали 3-4 обогащённых из 46-53 попыток (~6%).
|
||||
# Браузерный путь (camoufox + ожидание челленджа, #3045/#3046) на том же
|
||||
# проде даёт ~74% (17/23 в свипе, 2/3 в точечной проверке).
|
||||
# Исходное обоснование use_curl=True (browser открывает десятки коннектов
|
||||
# и превышает cap прокси-аккаунта auv) больше не действует: браузер
|
||||
# сериализован BROWSER_CONCURRENCY=1 и ходит через тот же backconnect
|
||||
# SCRAPER_PROXY_URL, что и curl-путь.
|
||||
# environment: перекрывает env_file — значение из runtime-env игнорируется.
|
||||
AVITO_DETAIL_BACKFILL_USE_CURL: "false"
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue