Skip to content
# roussin — Immeubles Roussin
- Index → pages immeuble ; par immeuble : nom (title), adresse civique (regex, bureau administratif exclu), secteur (Sainte-Foy/Lévis/Beauport…), description (og:description), galerie wp-content, lignes de prix « X ½ à partir de NNN$ » → une annonce par type d'unité.
- NOUVEAU — commodités : paires icône (
iconeGym.jpg…) + widget texte Elementor → amenities fidèles (« Gym », « Eau chaude », « Stationnement intérieur », « Wifi inclus », « Animaux acceptés (20lb et moins) », « Complexe sans fumée », « Ascenseur »…). 0 % → 100 %. finalize() en dérive inclusions/parking/pool/gym/ac/pets/smoking.
- NOUVEAU — contact : liens
tel:/mailto: structurés → details.contact (418-651-9443, info@immeublesroussin.com — contact locatif du gestionnaire, identique pour tous les immeubles).
# Champs indisponibles à la source
- Disponibilité (aucune unité datée ni compteur « disponible » sur le site).
- Superficies (aucun pi² publié).
- Prix exacts par unité (seulement « à partir de » par type —
details.price_from=true).
- lat/lng, étage, meublé.
# Fragilités
- Amenities dépendent de la convention Elementor « icône + texte court dans le même container » — vérifiée sur 4 gabarits de pages différents.
- L'adresse vient d'une regex sur le HTML brut (première adresse civique hors « bureau »).
- Lignes de prix parsées sur le texte de page (PRICE_LINE_RE) : sensible aux reformulations.
# Améliorations apportées
- Extraction des commodités Elementor (icône+texte), propagées à chaque annonce de type d'unité de l'immeuble.
details.contact (téléphone + courriel) depuis les liens structurés.
- Fixture (10 requêtes) + tests ok.
# Échantillon avant/après
- AVANT :
L'Aromate — 3½ | 1595 | amenities=[] | details={"price_from": true}
- APRÈS :
L'Aromate — 3½ | 1595 | amenities=["Gym","Eau chaude","Terrasse sur le toit","Stationnement intérieur","Wifi inclus","Piscine",…] | details={inclusions:{hot_water,internet}, ac, pool, gym, parking:{intérieur, inclus}, contact:{phone,email}, price_from}
- APRÈS :
Lallie — Loft | pets="oui" (source : « Animaux acceptés (20lb et moins) » — voir lacune générique : la limite de poids devrait donner "conditions").