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
0 lines
Python
0 lines
Python