SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
6.1 KB

# edifia — Edifia Groupe Immobilier (multi-plateformes)

# Projets couverts

  • 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).
  • 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.
  • 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é).
  • 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/ pour les dates de libération et les commodités de l'immeuble ; photos du micro-site.
  • Le portail BuildingStack sert aussi de filet pour les unités Cardinal Sud absentes du micro-site (ex. l'unité 309).

# Exclusions (anti-doublons / hors périmètre)

  • HUMĀ phases 1-2 (Huma 1/Huma 2 sur edifialocation) : connecteur dédié huma.py — filtrées par nom d'immeuble.
  • Le Stellar, Chicoutimi (Saguenay) : hors région — filtré par ville (seuls Québec/Lévis passent).
  • Riva Ouest (Lavaltrie, Lanaudière — pas Lévis) : en construction (automne 2025), aucune unité affichée nulle part.
  • Solis : condos en vente, rien à louer.

# Champs extraits

  • 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 ».
  • 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.
  • area_sqft : superficie habitable explicite partout ; balcon dans la description.
  • amenities : par projet (20 Vital, 15 Capella, 6-8 Cardinal via .facilities BuildingStack).
  • images : plan de l'unité en tête (Capella/Cardinal Sud), photos uploads du micro-site, PreviewUrl BuildingStack.
  • lat/lng : par unité (Livya), marqueurs map_points (Cardinal Sud), Address (BuildingStack).
  • details.contact : agente de location (nom, tél, courriel) pour les unités BuildingStack.

# Champs indisponibles à la source

  • 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é.
  • 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).
  • GPS Capella : aucun marqueur exploitable sur la page.

# Fragilités

  • 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).
  • 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.
  • 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.
  • La correspondance micro-site ↔ portail pour Cardinal Sud repose sur le nom d'immeuble exact (« Cardinal sud ») + numéro d'unité.
  • Capella est une RPA : les prix (1 809 $–3 417 $) incluent des services de résidence ; le premier item des amenities le signale.

# Échantillon

  • vital-910 : Le Vital — Unité 910 | Studio | 1021 $ | Disponible — occupation immédiate | 364 pi² | GPS 46.7947/-71.1622 | 20 amenities
  • capella-1113 : Capella (résidence pour aînés) — Unité 1113 | Studio | 1809 $ | 517 pi² | plan PNG + 12 photos | 15 amenities
  • 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 + clim
  • cardinal-nord-111 : Le Cardinal Nord — Unité 111 | 4½ | 1702 $ (« Contactez-nous ») | Libre oct. 01, 2026 → 2026-10-01 | 1072 pi² | contact agente de location