feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) #443

Merged
lekss361 merged 1 commit from feat/tradein-avito-detail-parser into main 2026-05-23 12:17:15 +00:00

1 commit

Author SHA1 Message Date
lekss361
7a7a72754e feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka)
Stage 2b of AvitoScraper_v2.

- fetch_detail(item_url) — async HTTP via curl_cffi.AsyncSession (chrome120)
- parse_detail_html(html, source_url) — pure selectolax parser (fixture-testable)
- DetailEnrichment dataclass — 30+ fields:
  * Identity (item_id, title, price, publish_date, views)
  * Apartment params (rooms/area/floor/balcony_loggia/room_layout/bathroom/windows/repair/sale_type/mortgage)
  * Location (lat/lon/avito_location_id/metro_stations[]/address_full)
  * House params (house_type/total_floors_house/lifts/concierge/closed_yard/house_catalog_url)
  * Description
  * Domoteka 5 fields (owners_count + owners_at_least + last_owner_change_date + encumbrances_clean + registry_match)
  * Gallery (photo_urls[])
- save_detail_enrichment(db, e) — UPDATE listings SET 25+ cols WHERE source_id, sets detail_enriched_at=NOW()
- pytest test_avito_detail_parse — 10 fixture tests, all passing
2026-05-23 15:04:29 +03:00