feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter) #450

Merged
lekss361 merged 1 commit from feat/tradein-cian-serp-refactor into main 2026-05-23 12:52:04 +00:00

1 commit

Author SHA1 Message Date
lekss361
b22ea0da80 feat(tradein): cian.py SERP refactor — state-based extraction (137 fields, no jitter)
Stage 3 of CianScraper v1 plan. Replaces DOM+__NEXT_DATA__ parsing with
cian_state_parser.extract_state(mfe='frontend-serp', key='initialState').
No anchor jitter — precise coords from offer.geo.coordinates.{lat,lng}.
Subdomain: ekb.cian.ru (per Schema sec 13, closed Q4).
curl_cffi anti-bot preserved (chrome120 TLS fingerprint).

Fields mapped: identity, geo, area, building, cadastral (flat+house),
bargainTerms, newbuilding link, seller (phones/is_homeowner/is_pro),
description_minhash (Cian native + SHA1 fallback), metro_stations,
balconies/loggias/bedrooms, listing_segment (vtorichka/novostroyki).
kitchen_area_m2 stored in raw_payload (not in ScrapedLot Stage 2).

Tests: 21 new unit tests in test_cian_serp_scraper.py (all passing).
Full suite: 71/71 passed.
2026-05-23 15:46:40 +03:00