SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.6 KB

# devimco — Devimco Appartements

# Champs extraits

  • Unités : API Planpoint (floors[] → units[]) — name, price, availability, deliveryDate, bedrooms, bathrooms, orientation, images/layoutGallery, inclusions.
  • unit_type : NOUVEAU — champ structuré type de l'API (« 3.5 » → 3½), avec repli sur le nb de chambres (+2). Corrige les unités où bedrooms est approximatif.
  • area_sqft : NOUVEAU — champ structuré squareFeet posé directement (avant : seulement « 570 pi² » dans amenities, parsé centralement).
  • furnished : NOUVEAU — booléen explicite furnished de l'API (true/false, jamais deviné).
  • details : NOUVEAU — mapping des jetons structurés de inclusions (« internet, electricity, heating, stove, refrigerator, dishwasher, washer, dryer… ») vers inclusions{}/appliances{}/balcony/ac. Corrige notamment refrigerator → fridge que la normalisation centrale ne reconnaissait pas.
  • address : projet Planpoint, avec NOUVEAU repli sur l'adresse affichée par la page Devimco (lien Google Maps ?query=…) — répare Maestria Tour B et Hexagone 2 (78 annonces sans adresse → « 1245 Rue de Bleury, Montréal », « 101, Rue Murray, Montréal »).
  • lat/lng du projet ; étage + orientation dans description (« Étage 3 — Wellington ») ; bathrooms et « Meublé » dans amenities.

# Champs indisponibles à la source

  • Animaux : aucune mention par unité dans l'API ni sur les pages.
  • Secteur fin par unité (on utilise le secteur de la page projet : Griffintown, Centre-ville, Quartier DIX30, Vieux-Longueuil).
  • Adresse par tour pour les phases groupées (l'API laisse address vide sur certaines phases ; on utilise l'adresse de la page projet, commune au complexe).

# Fragilités

  • API Planpoint non documentée (POST {namespace, hostName} / {namespace}) : un changement de plateforme de Devimco casserait tout.
  • Détection des iframes par regex sur l'URL app.planpoint.io (projet vs groupe /g/).
  • Les unités « Unavailable », « Reserved » ou unitPriceTBD sont exclues (voulu).
  • ~500 unités par sync : tout vient de ~9 pages + ~10 POST JSON, pas de page détail.

# Améliorations apportées

  • 78 adresses manquantes réparées (lien Maps de la page projet en repli).
  • unit_type depuis le champ type exact de l'API.
  • area_sqft et furnished posés comme champs structurés explicites.
  • details dérivés des jetons d'inclusions de l'API (fridge/washer_dryer/ac/balcony… y compris refrigerator que les règles centrales ratent).

# Échantillon avant/après

Alexander Phase 1 Appartements — unité 312

  • avant : 2090.0 | 3½ | Disponible : 2026-08-06 | now | 763 (dérivé du texte) | pets=None | furnished=None | details={"inclusions":{"heating":true,"electricity":true,"internet":true},"appliances":{"stove":true,"dishwasher":true,"washer_dryer":true},"balcony":true,"floor":3} | 2255 René-Lévesque Blvd W, Montreal
  • après : 2090.0 | 3½ | idem | now | 763 (squareFeet API) | furnished=false (explicite) | details={…idem…, "appliances":{…,"fridge":true},"furnished":false} | même adresse

Maestria Tour B Appartements — unité 506

  • avant : prix ok | 3½ | Disponible | now | 568 | address="" (API vide)
  • après : prix ok | 3½ | Disponible | now | 568 | address="1245 Rue de Bleury, Montréal" (lien Maps de la page projet)