# brio — Les Immeubles Brio (Le Brio, Val-Bélair) - site: https://immeublesbrio.com/appartements-a-louer-val-belair/ (+ page d'accueil) - méthode: html - annonces: 3 → 3 - couverture après (sur 3 annonces): prix 100%, adresse 100%, dispo 100%, superficie 100%, commodités 100% - fixture: ok · test: ok ## Champs extraits - title, unit_type, availability (« Disponible ») : hotspots Divi de la page appartements (`.hotspot-info` / `.hotspot-title`) - description (« Superficie: X pi2 ») : `` du `.hotspot-content` → area_sqft dérivée par finalize() - amenities : `
  • ` de la carte unité (chambres, walk-in, salle de lavage…) + services de l'immeuble depuis les blurbs Divi de la page d'accueil (Wifi optionnel, chute à déchets, lave-auto, stationnement ext./int., ascenseur, espaces détente, caméra 24/7) — NOUVEAU - price / price_label : « 3½/4½/5½ à partir de X$ » sur la page d'accueil (prix par typologie, pas par unité) - address : adresse civique réelle « 1105, rue des Rigoles, Québec, QC G3K 0M7 » (page Contactez-nous, constante vérifiée) — remplace « boulevard Pie-XI, Val-Bélair » — NOUVEAU - details.contact : téléphone (en-tête) + courriel (lien `mailto:` de l'en-tête, page d'accueil) — NOUVEAU - images : plan de l'unité (vignette + plan pleine grandeur) + galerie de photos des pièces ## Champs indisponibles à la source - Prix exact par unité (seulement « à partir de » par typologie) - Date précise de disponibilité (seulement statut Disponible/Loué) - Animaux, meublé, inclusions détaillées (chauffage/électricité/eau chaude), étage n'est pas indiqué explicitement (mais déductible du numéro d'appartement) ## Fragilités - Thème Divi : sélecteurs `.hotspot-info`, `.et_pb_blurb .et_pb_module_header` — cassent si le thème change - Le statut est dans le texte du titre (« Disponible - Appartement N: X ½ ») avec des espaces/tirets incohérents (« Loué- », « Disponible- ») — la regex tolère déjà ces variantes - Prix par typologie : si la page d'accueil change de formulation « à partir de », les prix disparaissent - Lacune générique de normalisation (constatée ici) : « Wifi (optionnel) » est classé `inclusions.internet=true` — le mot « optionnel/en option » n'est pas traité comme négatif par extract_details ; de même « Stationnement extérieur et intérieur » ne retient que `type: intérieur` ## Améliorations apportées - Adresse civique réelle (1105, rue des Rigoles, G3K 0M7) au lieu de la mention approximative du boulevard Pie-XI - Ajout des services de l'immeuble (blurbs de la page d'accueil) dans amenities → dérive elevator, parking, storage… - Ajout de details.contact {phone, email} extraits de l'en-tête du site (mailto: structuré) - Aucune modification des external_id (appartement-NNN stables) ## Échantillon avant/après **Appartement 109 (5½)** — avant : `1850.0 | 5½ | Disponible | now | 1309.0 | pets=∅ | {"laundry": true, "storage": true, "price_from": true} | boulevard Pie-XI, Val-Bélair` après : `1850.0 | 5½ | Disponible | now | 1309.0 | pets=∅ | {"inclusions": {"internet": true}, "elevator": true, "laundry": true, "storage": true, "parking": {"available": true, "type": "intérieur"}, "price_from": true, "contact": {"email": "jerome.bern@hotmail.com", "phone": "418-928-7688"}} | 1105, rue des Rigoles, Québec, QC G3K 0M7` **Appartement 408 (3½)** — avant : `1500.0 | 3½ | Disponible | now | 830.0 | pets=∅ | {"laundry": true, "storage": true, "price_from": true} | boulevard Pie-XI, Val-Bélair` après : `1500.0 | 3½ | Disponible | now | 830.0 | pets=∅ | {"inclusions": {"internet": true}, "elevator": true, "laundry": true, "storage": true, "parking": {"available": true, "type": "intérieur"}, "price_from": true, "contact": {…}} | 1105, rue des Rigoles, Québec, QC G3K 0M7`