spb/lou-ka Public
Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 99.7%
1# edifia — Edifia Groupe Immobilier (multi-plateformes)2- site: edifiaimmobilier.com (« Trouvez un logement » → edifialocation.com/BuildingStack) + micro-sites levitalappartements.com (Livya), capellalevis.com (sysc), appartementscardinal.com (sysc)3- méthode: multi-sources (JSON embarqué : flux RSC Next.js Livya, `units = [[...]]` sysc, `var units = [...]` BuildingStack + pages /b/<id>)4- annonces: 184 (Le Vital 49, Capella 125, Cardinal Sud 7, Cardinal Nord 3)5- couverture (sur 184 annonces): prix 95%, adresse 100%, dispo 100%, superficie 100%, commodités 98%, photos 100%, GPS 32%6- fixture: ok (9 requêtes) · test: ok78## Projets couverts9- **Le Vital** (230 unités, Lévis, secteur Desjardins/quartier Umano, 6078 boul. Étienne-Dallaire) : la page « Plans et prix » embarque un module Livya (app.livya.com). Le HTML du module (Next.js App Router) contient le JSON complet des 230 unités dans les chunks `self.__next_f.push` → 33 unités AVAILABLE + 16 avec `futureAvailability` datée = 49 annonces avec prix exact (`rentalPrice`), superficie, balcon, étage, chambres/SDB, GPS et adresse par unité. Amenities réelles de /espaces-communs-et-services/ (blocs Bricks `.icon-box .brxe-heading`, 20 items).10- **Capella** (résidence pour aînés autonomes et semi-autonomes, 198 unités, 1500 rue Weyman, Lévis) : sélecteur d'étages « sysc » — JSON `units = [[...]]` par étage dans la page /logements-et-prix/ : 125 unités Available avec prix mensuel par unité, type (lettre), superficies logement/balcon, plan PNG de l'unité. Typologie = index dans [Studio, 3½, 4½] (constante du plugin sysc). Inclusions (câble, téléphonie, électricité, eau chaude, clim…) extraites de la grille d'icônes.11- **Le Cardinal Sud** (95 unités, 1125 rue des Rigoles, Val-Bélair, Québec) : même plateforme sysc sur appartementscardinal.com/cardinal-sud/ — 6 unités Available avec date de libération en toutes lettres, typologie « 4etdemiB » → 4½, inclusions (eau chaude + climatisation), plan de vente PNG, GPS via `var map_points`. Prix souvent absent du micro-site → complété par le portail BuildingStack (correspondance immeuble+numéro d'unité).12- **Le Cardinal Nord** (132 unités, 1080 boul. Pie-XI Sud, Val-Bélair) : aucun sélecteur actif sur le micro-site → unités du portail edifialocation.com (BuildingStack) : `var units` de /Listing/Listings (prix, pi², chambres, SDB, GPS, contact de l'agente de location) + page /b/<id> pour les dates de libération et les commodités de l'immeuble ; photos du micro-site.13- Le portail BuildingStack sert aussi de filet pour les unités Cardinal Sud absentes du micro-site (ex. l'unité 309).1415## Exclusions (anti-doublons / hors périmètre)16- **HUMĀ phases 1-2** (Huma 1/Huma 2 sur edifialocation) : connecteur dédié huma.py — filtrées par nom d'immeuble.17- **Le Stellar, Chicoutimi** (Saguenay) : hors région — filtré par ville (seuls Québec/Lévis passent).18- **Riva Ouest** (Lavaltrie, Lanaudière — pas Lévis) : en construction (automne 2025), aucune unité affichée nulle part.19- **Solis** : condos en vente, rien à louer.2021## Champs extraits22- price : Livya `rentalPrice` (Le Vital), sysc `price` (Capella/Cardinal Sud), BuildingStack `Apartment.Price` (Cardinal Nord + restes). NB : le portail affiche « Contactez-nous » (PriceDisclosure=4) mais son JSON public contient le prix — conservé avec price_label=« Contactez-nous ».23- availability : « Disponible — occupation immédiate » / « Libre le 2026-12-01 » (Livya futureAvailability.startsOn), « Libre 1 octobre 2026 » (sysc available_date), « Libre oct. 01, 2026 » (table BuildingStack) — toutes parsées par la normalisation.24- area_sqft : superficie habitable explicite partout ; balcon dans la description.25- amenities : par projet (20 Vital, 15 Capella, 6-8 Cardinal via .facilities BuildingStack).26- images : plan de l'unité en tête (Capella/Cardinal Sud), photos uploads du micro-site, PreviewUrl BuildingStack.27- lat/lng : par unité (Livya), marqueurs map_points (Cardinal Sud), Address (BuildingStack).28- details.contact : agente de location (nom, tél, courriel) pour les unités BuildingStack.2930## Champs indisponibles à la source31- 9 unités sans prix : 5 Le Vital à disponibilité future (rentalPrice=0 dans le JSON) et 4 Cardinal Sud micro-site sans équivalent portail — price=None, rien d'inventé.32- pets : non structuré pour Vital/Capella (Capella affiche une politique « animal de moins de 12 lbs » en texte libre ; les Cardinals ont « Petits animaux autorisés »/« Grands chiens autorisés » dans les amenities → dérivés par normalize).33- GPS Capella : aucun marqueur exploitable sur la page.3435## Fragilités36- 4 plateformes différentes : un re-design d'un micro-site casse son parseur (couvert par la fixture ; chaque projet est isolé dans un try/except).37- Le flux RSC Livya n'est pas une API contractuelle : on repère `"units":[` dans le blob décodé (les libellés i18n contiennent aussi "units" → le marqueur inclut le crochet). L'id d'entité Livya est lu dynamiquement dans la page WP (data-entity), pas codé en dur.38- Le prix BuildingStack est présent dans le JSON mais masqué à l'affichage (« Contactez-nous ») — si Edifia le retire du payload, ces prix passeront à None.39- La correspondance micro-site ↔ portail pour Cardinal Sud repose sur le nom d'immeuble exact (« Cardinal sud ») + numéro d'unité.40- Capella est une RPA : les prix (1 809 $–3 417 $) incluent des services de résidence ; le premier item des amenities le signale.4142## Échantillon43- `vital-910` : Le Vital — Unité 910 | Studio | 1021 $ | Disponible — occupation immédiate | 364 pi² | GPS 46.7947/-71.1622 | 20 amenities44- `capella-1113` : Capella (résidence pour aînés) — Unité 1113 | Studio | 1809 $ | 517 pi² | plan PNG + 12 photos | 15 amenities45- `cardinal-sud-601` : Le Cardinal Sud — Unité 601 | 4½ | prix non affiché (None) | Libre 1 octobre 2026 → 2026-10-01 | 1067 pi² | inclusions eau chaude + clim46- `cardinal-nord-111` : Le Cardinal Nord — Unité 111 | 4½ | 1702 $ (« Contactez-nous ») | Libre oct. 01, 2026 → 2026-10-01 | 1072 pi² | contact agente de location47