gendesign/tradein-mvp/backend
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
..
app feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) 2026-05-23 15:04:29 +03:00
data/sql feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache (#440) 2026-05-23 11:41:44 +00:00
tests feat(tradein): avito_detail.py — detail page parser (30+ fields incl. domoteka) 2026-05-23 15:04:29 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
pyproject.toml feat(tradein): мониторинг ошибок через GlitchTip (#396) 2026-05-22 11:18:26 +05:00