SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.3 KB

# summum — Gestion immobilière Summum

  • site: https://location.summumpm.com (portail hébergé Building Stack)
  • méthode: json-api — var units = [...] de /Listing/Listings + pages immeuble /b/ (patron identique au volet BuildingStack d'edifia.py)
  • annonces: 93 (39 immeubles)
  • couverture (sur 93 annonces): prix 100%, adresse 100%, GPS 100%, dispo 100%, ville 100%, type 100%, images 100%, contact 100% — superficie 13% et commodités 13% (rarement saisies à la source)
  • fixture: ok (40 requêtes) · test: ok (2 verts)
  • villes : Montréal (77, dont Lachine), Saint-Jérôme (4), Blainville (3), Granby (3), Longueuil (3), Laval, Saint-Calixte — la cible Laurentides (Saint-Jérôme) + tout le reste du portail

# Champs extraits

  • /Listing/Listings : JSON complet par unité (aucun scraping de mise en page) :
    • ApartmentId → external_id (identifiant Building Stack, STABLE) ;
    • prix exact (Price + PriceFormatted → price_label) ;
    • adresse complète structurée (Address.Full avec code postal) + LAT/LNG ;
    • chambres/salles de bain (details.bedrooms/bathrooms) → typologie dérivée (0 chambre = Studio, n chambres = (n+2)½ — même convention qu'edifia.py) ;
    • superficie (Area pi², seulement quand > 0 à la source : 12/93) ;
    • contact de location (nom, téléphone formaté, courriel → details.contact) ;
    • photo de l'unité (PreviewUrl wfiles.buildingstack.com) ;
    • URL fiche : /b//<unité>.
  • Page immeuble /b/ (1 requête par immeuble via self.detail — clé de cache = hash des unités/prix de l'immeuble, plafond 45/sync) :
    • date de disponibilité PAR UNITÉ (« Disponible dès maintenant! » / « déc. 01, 2026 » → « Libre déc. 01, 2026 », normalisée en ISO par finalize()) ;
    • commodités de l'immeuble (.facilities : buanderie, métro à proximité…) ;
    • photos additionnelles de l'immeuble.
  • ville : Address.City du JSON ; canonicalisation factuelle « Montreal » → « Montréal » (les deux graphies coexistent à la source) ; « Lachine » conservé tel quel (champ ville de la source).

# Champs indisponibles à la source

  • Superficie : Area = 0 pour 81/93 unités (non saisie par le gestionnaire).
  • Commodités : la section facilities n'est remplie que pour ~1/3 des immeubles (12 annonces en héritent).
  • Animaux, meublé, étage : non exposés par le portail.

# Fragilités

  • Chevauchement Grand Montréal assumé (77 annonces à Montréal) : le périmètre de la mission visait Saint-Jérôme, mais le portail est global — chaque annonce porte sa vraie ville, aucun doublon avec un connecteur existant (source distincte).
  • La typologie (n+2)½ est une DÉRIVATION du nombre de chambres (le portail n'a pas de champ typologie) : un vrai 2½ d'une chambre serait affiché 3½ ; convention identique à edifia.py pour rester cohérent dans la base.
  • Si Building Stack renomme PublicListBuildingName, les pages immeuble seront re-visitées (cache invalidé) — sans casser les annonces.

# Échantillon

  • 287081 : 2560 Rachel — Unité 2, Studio, 970 $, 200 pi², Montréal, GPS 45.5376/-73.5627, dispo maintenant, contact Zachary Pilon.
  • 410484 : 1150 Bélanger - Tour Andrea — Unité 402, 4½, 1575 $, libre août 16 2026.
  • Types : Studio ×34 (725–2295 $), 3½ ×28 (790–1450 $), 4½ ×27, 5½ ×4.