diff --git a/tradein-mvp/browser/server.py b/tradein-mvp/browser/server.py index c268ec7c..2b62d186 100644 --- a/tradein-mvp/browser/server.py +++ b/tradein-mvp/browser/server.py @@ -18,7 +18,8 @@ WS-сервер) несовместим с современными версия BROWSER_RECYCLE_PAGES — страниц в одном сеансе браузера до перезапуска (default: 15) BROWSER_NAV_TIMEOUT_MS — таймаут page.goto в мс (default: 60000) BROWSER_WAIT_MS — ожидание после DOMContentLoaded в мс (default: 2500) - SCRAPER_PROXY_URL — прокси URL формата ``http://user:pass@host:port`` (опционально) + AVITO_PROXY_URL — прокси ``http://user:pass@host:port`` (mobileproxy, #623); + SCRAPER_PROXY_URL — generic-fallback. Без него — soft-block. Эндпоинт /fetch доступен из Docker-сети как ``http://tradein-browser:3000/fetch``. """ @@ -39,7 +40,13 @@ BROWSER_PORT: int = int(os.environ.get("BROWSER_PORT", "3000")) BROWSER_RECYCLE_PAGES: int = int(os.environ.get("BROWSER_RECYCLE_PAGES", "15")) BROWSER_NAV_TIMEOUT_MS: int = int(os.environ.get("BROWSER_NAV_TIMEOUT_MS", "60000")) BROWSER_WAIT_MS: int = int(os.environ.get("BROWSER_WAIT_MS", "2500")) -SCRAPER_PROXY_URL: str | None = os.environ.get("SCRAPER_PROXY_URL") +# Прокси: основной источник — AVITO_PROXY_URL (mobileproxy, #623, лежит в +# backend/.env.runtime, тот же что у curl_cffi-avito). SCRAPER_PROXY_URL — +# опциональный generic-fallback на будущее (cian/yandex). Без прокси camoufox +# фетчит с датацентр-IP → avito отдаёт soft-block заглушку. +SCRAPER_PROXY_URL: str | None = os.environ.get("AVITO_PROXY_URL") or os.environ.get( + "SCRAPER_PROXY_URL" +) def _parse_proxy(proxy_url: str | None) -> dict[str, str] | None: