# werkliv — Werkliv / University Apartments (logement étudiant) - site: https://universityapartments.ca/apartment-listings/?_listings_city_en=montreal (+ fiches /listings/ et /properties/) - méthode: html - annonces: 4 → 4 - couverture après (sur 4 annonces): prix 100%, adresse 100%, dispo 100%, superficie 0%, commodités 100% - fixture: ok · test: ok ## Champs extraits - Cartes liste : typologie (1-BEDROOM -> 3½...), immeuble (Palay, Le Mojave), prix par personne, disponibilité (« Available in September, 2026 » -> 2026-09-01), chips (Walk Distance, Lease, Furnished). - Adresse civique complète depuis la fiche immeuble /properties// (ex. 2025 Peel Street Montréal QC H3A 1T6). - Fiches annonce enrichies (nouveau) : sidebar ACF structuré `dl.acf-data` (Available) et `.rental-term` (Lease terms: 12 months, 8 months) ; section « BUILDING AMENITIES » (gym, salle de cinéma, salle d'étude, buanderie payante, rangement, système de sécurité...) ; ligne électroménagers de la cuisine partagée (fridge, stove, microwave, dishwasher). - details dérivés : appliances{fridge,stove,dishwasher}, gym, laundry, storage, furnished=true. - Photos complètes des fiches (jusqu'à 40). ## Champs indisponibles à la source - Superficie, étage, animaux, lat/lng, prix du bail entier (loyers par chambre en colocation). ## Fragilités - « Wi-Fi ($) » (payant) est volontairement omis des commodités : la normalisation le classerait « internet inclus » (lacune générique notée). - « Bike parking in the basement » relibellé « Espace vélos (sous-sol) » pour ne pas être classé stationnement auto. - Section BUILDING AMENITIES parsée par position (titre h2 puis

à émoji) ; arrêt au disclaimer. - Fiches derrière self.detail() (clé = hash carte liste), plafond max_details (20) de vraies requêtes. ## Améliorations apportées - Enrichissement fiche : bail (12/8 mois), commodités d'immeuble réelles, électroménagers, dispo ACF de secours si la carte n'en a pas. - Cache BD des fiches (avant : 2-4 GET fiches à chaque sync) ; requêtes plafonnées. - details passe de {furnished} à {appliances{fridge,stove,dishwasher}, gym, laundry, storage, furnished}. ## Échantillon avant/après - Avant : `PALAY — 1-BEDROOM (par chambre) | 999$ | 2026-09-01 | amenities: [Logement étudiant, Walk Distance…, Lease: 12 months, Furnished] | details={furnished:true}` - Après : idem + 12 commodités de fiche (gym, buanderie, rangement, électroménagers, bail 12/8 mois…) | details={appliances{fridge,stove,dishwasher,washer_dryer*}, gym, laundry, storage, furnished} ## Lacunes génériques de normalisation notées - (*) Le motif `washer` de la règle washer_dryer matche la sous-chaîne de « dishwasher » : toute mention anglaise d'un lave-vaisselle produit un faux positif laveuse-sécheuse (affecte toutes les sources anglophones). - Aucune règle pour les commodités payantes suffixées « ($) » (ex. « Wi-Fi ($) ») : elles seraient classées incluses.