# rivero — Le Rivero (Immeubles Simard, Québec) - site: https://app.realvuu.com/fr/external/immeubles-simard/rivero/plans (embed RealVuu de lerivero.ca/plans/) - méthode: json-api (JSON embarqué dans la page RealVuu) - annonces: 214 → 214 - couverture après (sur 214 annonces): prix 0%, adresse 100%, dispo 100%, superficie 100%, commodités 100% - fixture: ok · test: ok ## Champs extraits - JSON RealVuu par unité : numéro, `rooms`/`roomsDisplayValue`, `roomsBed`, `roomsBath`, `roomsOffice` (espace bureau), `unitSize`, `balconySize`, orientation, images de type + plan d'étage. - **NOUVEAU — structurés à la source** : - `area_sqft` = `unitSize` explicite (mesures IMPERIAL, déjà en pi²) — corrige la contamination par la taille du balcon (voir Lacunes génériques) ; - `lat`/`lng` = `latitude`/`longitude` de l'unité (repli : immeuble) — 100 % ; - `details.floor` = numéro d'étage via le tableau `floors` (floorId → number) ; - adresse complétée : `524 Rue Bourdages, Québec, QC G1M 1A1` (city + postalCode structurés) ; - `unit_type` : repli structuré `roomsBed + 2` quand `rooms` = 0 (81 unités passaient de « » à 3½/4½) — 100 %. ## Champs indisponibles à la source - **Prix** : les 214 unités disponibles affichent toutes 3 600 $ (placeholder RealVuu) — garde-fou conservé, prix non retenu (0 %). `startingAtRentalPrice` = 0 partout. - `futureAvailability` : null partout (phase 2 en prélocation, livraison été 2028 — texte de dispo posé par le connecteur, non datable). - `pets` : `dogsAllowed=false` au niveau étage semble être un défaut RealVuu, pas une politique — non retenu. - `inclusions[]` unité : vides dans le JSON (les 4 commodités affichées viennent du site vitrine lerivero.ca, comportement existant conservé). ## Fragilités - JSON extrait par balayage `"units":[...]` dans le HTML (pas d'API propre) ; si RealVuu passe à un chargement XHR, adapter. - Placeholder prix : le garde-fou repose sur « prix unique pour des types différents ». - 214 annonces pour un seul projet en prélocation : volumineux mais fidèle à la source. ## Améliorations apportées - `area_sqft`, `lat`/`lng`, `details.floor`, adresse enrichie, `unit_type` de repli (`roomsBed`), `roomsOffice` dans la description — tous depuis des champs JSON structurés. - Fixture (1 requête) + tests ok. ## Échantillon avant/après - AVANT : `Unité 704 (4½) | prix NULL | area 401 pi² (min(texte) — contaminé par le balcon) | lat NULL | adresse "524 Rue Bourdages"` - APRÈS : `Unité 704 (4½) | prix NULL (placeholder) | area 1216 pi² (unitSize) | 46.818726, -71.242065 | "524 Rue Bourdages, Québec, QC G1M 1A1" | details.floor=7`