lakle — La Klé (Cité Verte)
- site: https://lakle.ca/phase-1-occupation-immediate/ (+ /contact pour adresses/coordonnées)
- méthode: json-api (sélecteur de plans WP
/wp-json/do-selecteur-plans/v1/unite) + html (cartes phases 2-3) - annonces: 26 → 46
- couverture après (sur 46 annonces): prix 57%, adresse 100%, dispo 100%, superficie 100%, commodités 100%
- fixture: ok · test: ok (2 passed)
Champs extraits
- Sélecteur de plans (tour phase 4, 26 unités) :
<polygon class="disponible">(numéro, étage, type, prix) + API JSON par unité : prix (montant+montant_suffixe« + taxes »), type, superficie habitable structurée →area_sqftexplicite (distincte de la terrasse), superficie terrasse/balcon, style, nb chambres, date libre (a_partir), plan PDF, galerie, promotion.details.floordepuisdata-etage(structuré). - Cartes phases 2 et 3 (nouveau — 20 unités) :
ul.liste-unite-disponible > li: nom d'unité (B16, H, C et Ci…), phase, « 1214pi² - 3 chambres » (type + superficie dérivés par finalize), texte marketing, mention « Disponible en octobre / dès maintenant » → availability, photo du plan, PDF. - Page /contact (nouveau) : marqueurs Google Map structurés par phase → adresse civique avec code postal + lat/lng par phase (phase 4 : Av. Ernest-Gagnon G1S 0E4 ; phase 3 : 475 Ernest-Gagnon ; phase 2 : 1180 Louis-Adolphe Robitaille) — avec repli constant si la page change.
- Commodités du complexe (liste « Toutes les unités incluent » de l'accueil, vérifiée) : électroménagers, électricité, chauffage/climatisation centrale, piscine intérieure, salle d'entraînement, toiles solaires, vélos intérieurs, stationnement intérieur en option, interphone, puce d'accès, caméras.
Champs indisponibles à la source
- Prix des unités phases 2-3 : aucun prix par unité (les tuiles « à partir de 1575$/1945$/2615$ » sont des filtres projet-entiers, pas rattachées à ces unités — non utilisées). → 20/46 sans prix, fidèle à la source.
- Politique animaux / fumeur : jamais mentionnée.
- Meublé : non mentionné.
- Étage des unités phases 2-3 (seulement « en hauteur » en texte libre).
Fragilités
- Le sélecteur de plans est associé à la phase 4 par déduction (calendly « la-kle-phase-4 », visuels phase-4) alors que l'URL dit « phase-1-occupation-immediate » (slug historique) — à revalider si le site restructure.
external_iddes cartes =p<phase>-<slug du nom>(ex.p3-b16) : stable tant que le nom d'unité ne change pas.- La disponibilité
a_partir(« Libre le 8 août 2026 ») semble générée avec la date du jour côté serveur → normalisée « now ». - Les cartes sans mention « Disponible … » reçoivent « Disponible » (la section s'intitule « Découvrez nos unités disponibles »).
Améliorations apportées
- Bug corrigé :
area_sqftprenait la superficie de la terrasse (finalize prend le min des superficies trouvées dans la description : 161 pi² de balcon < 682 pi² habitables). Désormaissuperficie_habitablestructurée de l'API → 100 % correct. - +20 annonces : unités disponibles des phases 2 et 3 (cartes), auparavant totalement ignorées.
- Adresse civique réelle + code postal par phase (avant : « Cité Verte, Québec ») et lat/lng (avant : géocodage sur adresse vague).
details.floorstructuré depuisdata-etage.- Liste des commodités du complexe complétée et vérifiée contre le site (11 items au lieu de 5).
Échantillon avant/après
La Klé — Unité 103 (3½) (1845 $)
- avant : area_sqft=161 (terrasse !), address=
Cité Verte, Québec, lat/lng absents, amenities=5 - après : area_sqft=682, address=
Av. Ernest-Gagnon, Québec, G1S 0E4, lat=46.798431/lng=-71.25187, details.floor=1, amenities=11
La Klé — Unité B16 (Phase 3) (nouvelle annonce)
- avant : absente
- après : unit_type=5½ (3 chambres), area_sqft=1214, availability=
Disponible en octobre en hauteur→ 2026-10-01, address=475 Ernest-Gagnon, Québec, G1S 0E4, lat/lng phase 3, plan PDF + photo
Lacune générique de normalisation détectée
parse_area_sqft()retourne le min de toutes les superficies d'un texte : quand une description contient l'appartement ET son balcon/terrasse (« Superficie 682 pi² | Balcon 161 pi² »), la terrasse gagne. Un indice de contexte (mots balcon/terrasse à proximité → exclure) éviterait ce piège pour les connecteurs qui n'ont pas de champ structuré.