feat(tradein): dedicated Cian mobile proxy — separate egress from Avito #923
No reviewers
Labels
No labels
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
Fable 5 ревью
feedback/max
generative
GG-форсайт
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#923
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/cian-dedicated-proxy"
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?
Зачем
Cian и Avito делили один мобильный IP (
settings.scraper_proxy_url). При параллельных прогонах (avito city-sweep + cian city-sweep) оба конкурировали за единственный egress → взаимные 240s-таймауты и баны (наблюдалось вживую: run 33/35 cian = 0 fetched, run 34 avito timeout, оба на одном IP).Что
config.py:settings.cian_proxy_url(property) —CIAN_PROXY_URLс fallback наscraper_proxy_url(backward-compat). +cian_proxy_rotate_url(CIAN_PROXY_ROTATE_URL, fallback на avito rotate).scraper_proxy_url→cian_proxy_url:cian.py,cian_detail.py,cian_newbuilding.py(×2),cian_valuation.py,cian_session.py(verify).cian_proxy_url.Verified:
settings.scraper_proxy_urlв cian-коде не осталось; ruff passed.Деплой (env — секреты, НЕ в git)
После merge — в прод
.env.runtime:Без них — fallback на общий
SCRAPER_PROXY_URL/AVITO_PROXY_URL(текущее поведение, безопасно).Контекст
Часть работы по Cian ЕКБ-загрузке. Follow-up PR: exhaustive room×price партиционирование (обход SERP-cap ~54 стр) + IP-rotation в cian.py через
cian_proxy_rotate_url.✅ APPROVE — чистый backward-compat config-change, мержу.
cian_proxy_urlproperty =CIAN_PROXY_URL→scraper_proxy_urlfallback. 6 cian-точек переключены; avito/yandex/n1/domclick не тронуты (diff-confirmed).CIAN_PROXY_URL→ fallback на общий proxy = текущее поведение. Безопасный деплой.cian_proxy_urlфоллбэчится наscraper_proxy_url(то же значение) — red-main риска нет.Settingsenv-binding через monkeypatch (валидируетvalidation_alias, не только inline-replica). Секретов в diff нет (env-only).cian_proxy_rotate_urlобъявлен но не wired — осознанно для follow-up (IP-rotation в cian.py), no-op сейчас.Squash-merge + delete branch.