# promenade_des_forts — Promenade des Forts (Groupe immobilier Brochu) - site: https://www.promenadedesforts.com (/projets/phase-1/ et /projets/phase-2/ → pages d'étages → fiches d'unités) - méthode: html (WordPress rendu serveur ; statut par classe `disponible`/`loue` sur les liens du plan SVG de chaque étage) - annonces: 2 (2 phases x 6 étages ; le taux d'occupation est élevé — les unités louées sont exclues à la source) - couverture (sur 2 annonces): prix 100%, adresse 100%, dispo 100%, superficie 100%, commodités 100%, images 100% (GPS non publié) - fixture: ok (16 requêtes) · test: ok ## Champs extraits - Fiche d'unité : numéro et étage (URL + en-têtes), modèle (« Phase 2 - Modèle 9 »), grandeur (« 4 ½ », « 4 ½ Bureau » → 4½), superficie totale (« 960 pi² » → area_sqft), **prix avec date** (« disponible 1er septembre 2026 à 1485 $ » → price 1485 + availability_date 2026-09-01 via finalize), spécifications (stationnement intérieur inclus, ascenseur, eau chaude fournie, air climatisé, îlot central…) → inclusions/ac/elevator/parking dérivés. - availability : le libellé de prix complet quand il contient la date (« disponible 1er juillet 2026 à 1945 $ »), sinon le statut de la fiche — la date passée devient correctement « now ». - address : « 6275 et 6375, Boulevard Étienne-Dallaire, Levis » (pied de page, présent sur chaque fiche). - details.contact : téléphone (581-748-6123) + courriel (info@promenadedesforts.com) des liens tel:/mailto:. - images : plan de l'unité (colonne de droite de la fiche) ; fiche PDF du modèle dans la description. - external_id : `phase-N-unite-NNN` (slug d'URL de la source, stable). - Double garde-fou : une unité marquée « disponible » sur le plan d'étage mais « Loué » sur sa fiche est rejetée (span.disponible exigé sur la fiche). ## Champs indisponibles à la source - lat/lng : non publiés (le géocodeur prend le relais sur l'adresse civique). - Animaux, meublé : non publiés. - Répartition 6275 vs 6375 par phase : le site n'associe pas un numéro civique à chaque phase — l'adresse double du pied de page est conservée telle quelle. ## Fragilités - ⚠️ Le site renvoie 403 sans User-Agent navigateur — le UA par défaut de BaseConnector (Chrome/126 + LouKaBot) passe. - Le statut repose sur les classes `disponible`/`loue` des `` du plan SVG : un changement de gabarit WordPress casserait la détection. - ~15 requêtes par sync (2 pages de phases + 12 étages + fiches des unités libres) ; pas de cache détail — avec si peu d'unités libres, les fiches sont revisitées à chaque sync pour capter les changements de prix/date. - Les étages sont découverts dynamiquement depuis les pages de phases (plafond max_floor_pages=20) : une phase 3 future serait couverte si elle suit le même schéma d'URL. ## Échantillon - Phase 1 — unité 607 (5½, étage 6) : « disponible 1er juillet 2026 à 1945 $ » → 1945 $, date passée → now, 1233 pi². - Phase 2 — unité 101 (4½, étage 1) : « disponible 1er septembre 2026 à 1485 $ » → 1485 $, 2026-09-01, 960 pi², modèle 9, 5 spécifications, plan JPG + PDF.