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
washerde 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.