fix(tradein): cian fetch_newbuilding через BrowserFetcher (camoufox) — initialState под анти-ботом (#972) #1540

Merged
lekss361 merged 1 commit from fix/cian-newbuilding-browser-fetch into main 2026-06-15 15:44:42 +00:00
Collaborator

Summary

  • fetch_newbuilding в cian_newbuilding.py теперь тянет HTML страницы ЖК через BrowserFetcher (camoufox/tradein-browser) вместо curl_cffi AsyncSession
  • Причина: curl_cffi получает zhk-*.cian.ru страницу без initialState под анти-ботом Cian; tradein-browser верифицирован живым (1.17 MB HTML, initialState присутствует)
  • session= параметр сохранён как опциональный для backward-compat вызывающих (backfill вызывает await fetch_newbuilding(zhk_url) без session — работает без изменений)
  • resolve_cian_zhk_url_via_search (curl_cffi SERP) не тронут

Test plan

  • ruff check — All checks passed
  • ruff-format — применил pre-commit hook
  • 21/21 тестов в tests/test_cian_newbuilding.py прошли (включая 3 новых async-теста с mock на BrowserFetcher.fetch)
  • tests/tasks/test_newbuilding_enrich_backfill.py — pre-existing collection failure (psycopg2 vs psycopg v3 в локальном venv), не связан с нашими изменениями

Refs #972

## Summary - `fetch_newbuilding` в `cian_newbuilding.py` теперь тянет HTML страницы ЖК через `BrowserFetcher` (camoufox/tradein-browser) вместо `curl_cffi AsyncSession` - Причина: curl_cffi получает zhk-*.cian.ru страницу без `initialState` под анти-ботом Cian; tradein-browser верифицирован живым (1.17 MB HTML, initialState присутствует) - `session=` параметр сохранён как опциональный для backward-compat вызывающих (backfill вызывает `await fetch_newbuilding(zhk_url)` без session — работает без изменений) - `resolve_cian_zhk_url_via_search` (curl_cffi SERP) не тронут ## Test plan - [x] `ruff check` — All checks passed - [x] `ruff-format` — применил pre-commit hook - [x] 21/21 тестов в `tests/test_cian_newbuilding.py` прошли (включая 3 новых async-теста с mock на `BrowserFetcher.fetch`) - [x] `tests/tasks/test_newbuilding_enrich_backfill.py` — pre-existing collection failure (psycopg2 vs psycopg v3 в локальном venv), не связан с нашими изменениями Refs #972
bot-backend added 1 commit 2026-06-15 15:20:02 +00:00
fix(tradein): cian fetch_newbuilding через BrowserFetcher (camoufox) — initialState под анти-ботом (#972)
All checks were successful
CI / changes (push) Successful in 7s
CI / backend-tests (push) Has been skipped
CI / frontend-tests (push) Has been skipped
CI / openapi-codegen-check (push) Has been skipped
CI / changes (pull_request) Successful in 6s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
480fbba3ca
curl_cffi получает zhk-*.cian.ru без initialState; tradein-browser (camoufox) тянет
страницу с 1.17MB initialState. Заменяем транспорт только для page-fetch;
session= param сохранён для backward-compat вызывающих. resolve_cian_zhk_url_via_search
остаётся на curl_cffi SERP. Тесты: 21 passed.
lekss361 merged commit b3e7a9f9fa into main 2026-06-15 15:44:42 +00:00
lekss361 deleted branch fix/cian-newbuilding-browser-fetch 2026-06-15 15:44:43 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#1540
No description provided.