From 4ec3b79704f13c4ceb6cb1bc2cc52086ceab4c40 Mon Sep 17 00:00:00 2001 From: bot-backend Date: Fri, 21 Aug 2026 17:06:13 +0300 Subject: [PATCH] =?UTF-8?q?fix(tradein/scraper-kit):=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=BD=D1=8F=D1=82=D1=8C=20=D0=BF=D0=BE=D0=BB=20curl-cffi=20?= =?UTF-8?q?=D0=B4=D0=BE=200.15.0=20=E2=80=94=20chrome146=20=D0=B2=200.7.0?= =?UTF-8?q?=20=D0=BD=D0=B5=20=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D1=83=D0=B5=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit DEFAULT_IMPERSONATE переведён на chrome146, но оба pyproject продолжали объявлять `curl-cffi>=0.7.0`. В 0.7.0 такого профиля нет: установка по нижней границе — и curl_cffi роняет КАЖДЫЙ запрос скраппера на невалидном impersonate, причём одинаково для avito, cian и yandex. На проде стоит 0.15.0 (проверено в контейнере tradein-scraper: профили chrome99 … chrome146 плюс алиас chrome), поэтому текущий деплой бы не пострадал — но любая пересборка окружения с резолвом к нижней границе воспроизвела бы отказ, и диагностировался бы он как «скрапперы легли», а не как несогласованная зависимость. Refs #3034 --- tradein-mvp/backend/pyproject.toml | 5 ++++- tradein-mvp/packages/scraper-kit/pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/tradein-mvp/backend/pyproject.toml b/tradein-mvp/backend/pyproject.toml index 580e251a..8116d3fc 100644 --- a/tradein-mvp/backend/pyproject.toml +++ b/tradein-mvp/backend/pyproject.toml @@ -20,7 +20,10 @@ dependencies = [ "lxml>=5.0.0", # стриминговый iterparse для многогигабайтных ГАР XML (#143) "segno>=1.6.0", # QR-код для PDF shareable URL "matplotlib>=3.9.0", # price-range chart (SVG) для PDF отчёта Trade-In - "curl-cffi>=0.7.0", # impersonate= для Cian/Avito (TLS fingerprint) + "curl-cffi>=0.15.0", # impersonate= для Cian/Avito (TLS fingerprint). + # Пол 0.15.0, а не 0.7.0: DEFAULT_IMPERSONATE=chrome146, а этот + # профиль появился позже 0.7.0 — установка по нижней границе + # роняла бы КАЖДЫЙ запрос скраппера на невалидном impersonate. "python-multipart>=0.0.9", # FastAPI UploadFile — загрузка фото квартиры (#394) "sentry-sdk>=2.0.0", # мониторинг ошибок → GlitchTip (#396) "redis>=5.0.0", # async hot cache для /api/v1/search (Phase 3.2) diff --git a/tradein-mvp/packages/scraper-kit/pyproject.toml b/tradein-mvp/packages/scraper-kit/pyproject.toml index 494e89d8..dc82b236 100644 --- a/tradein-mvp/packages/scraper-kit/pyproject.toml +++ b/tradein-mvp/packages/scraper-kit/pyproject.toml @@ -10,7 +10,7 @@ dependencies = [ "httpx[socks]>=0.27.0", "tenacity>=9.0.0", "selectolax>=0.3.0", - "curl-cffi>=0.7.0", + "curl-cffi>=0.15.0", # пол задан профилем chrome146 из DEFAULT_IMPERSONATE, см. providers/_base.py ] [build-system]