lekss361
|
64a7eb6824
|
feat(tradein): conflict_resolution — register Yandex sources in priority dicts
Stage 7 of YandexRealtyScraper v1 (Wave 5). Integrates the 4 Yandex scrapers
(yandex / yandex_detail / yandex_realty_nb / yandex_valuation) into the
cross-source field-priority arbitration.
HOUSE_FIELD_PRIORITY:
- Renamed legacy 'yandex' → 'yandex_realty_nb' for lat/lon (house geo comes
from ЖК landing, not SERP)
- Added yandex_valuation + yandex_realty_nb to year_built, house_type
- Added yandex_realty_nb to house_class, rating_score, reviews_count
- NEW fields:
* text_reviews_count: ['yandex_realty_nb'] (the 353 — Yandex unique)
* corpus_count: ['yandex_realty_nb'] ('три башни' → 3)
* total_area_ha: ['yandex_realty_nb']
* commission_year: ['cian_serp', 'yandex_realty_nb']
* commission_month: ['yandex_realty_nb']
* developer_name: ['cian', 'yandex_realty_nb']
* has_panorama: ['yandex_valuation']
* yandex_total_listings: ['yandex_valuation']
* has_lift: ['cian_bti', 'cian_detail', 'yandex_valuation']
* ceiling_height: ['cian_detail', 'yandex_valuation']
LISTING_FIELD_PRIORITY:
- Added yandex_detail to description, house_type (NLP fallback)
- NEW fields:
* agency_name / agency_founded_year / agency_objects_count: ['yandex_detail']
(OfferCardAuthorInfo — Yandex unique structured agency block)
* views_total_yandex: ['yandex_detail'] (parallel to Cian's views_total)
* publish_date_relative: ['yandex_detail']
* sale_type_text: ['yandex_detail'] (raw RU phrase, vs Cian enum)
Tests: 30 new cases (37 total), all pre-existing tests preserved. Ruff clean.
Resolver engine unchanged (existing list / first_non_null / union / cross_validate
semantics still apply).
|
2026-05-23 16:56:03 +03:00 |
|