SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.5 KB

# loftsmtl — Lofts MTL (Rentsync/LiftSystem)

  • site: https://www.loftsmtl.com (API api.theliftsystem.com/v2/search, client_id 773)
  • méthode: json-api (inventaire immeubles) + html (pages immeubles : unités + commodités)
  • annonces: 7 → 7
  • couverture après (sur 7 annonces): prix 100%, adresse 100%, dispo 100%, superficie 86%, commodités 100%
  • fixture: ok · test: ok (2 passed)

# Champs extraits

  • API LiftSystem (par immeuble) : nom, adresse + code postal (nouveau), ville/quartier, lat/lng structurés (nouveau), pet_friendly booléen → pets "oui"/"non" (nouveau), téléphone du gestionnaire → details.contact.phone (nouveau), description overview (FR+EN), permalink.
  • Page immeuble (par unité, div.suite) : type, numéro, prix ($/mo), pi² → area_sqft structuré (nouveau ; cellule .suite-sqft, avant : texte d'amenity parsé par finalize), salles de bain, disponibilité (« Immediate Occupancy »…), photos, id stable suite-NNNNNN.
  • Section « Amenities » de la page immeuble (nouveau) : Suite Amenities (Balconies, Concrete floors, Dishwasher, Dryer/Washer in suite, Fridge, Stove…) + Building Amenities (lockers, No Smoking allowed, secured entry, Permit Parking…) → dérivations riches : appliances{fridge,stove,dishwasher,washer_dryer}, storage, balcony/elevator, smoking=false, parking.

# Champs indisponibles à la source

  • Superficie absente sur 1 unité sur 7 (cellule sqft à 0 chez la source).
  • Inclusions (chauffage/électricité/eau chaude) : jamais énoncées.
  • Étage : non publié.
  • Meublé : seulement suggéré dans le building_header texte (« Furnished loft in the Plateau ») — trop ambigu pour être affirmé par unité, non utilisé.
  • parking{indoor,outdoor,additional} de l'API : null sur les 4 immeubles.

# Fragilités

  • Jeton auth_token public de l'API embarqué dans le site : peut tourner.
  • Le permalink API pointe parfois /apartments/ alors que la page vit sous /residential/ (repli déjà en place).
  • Labels d'amenities en anglais : la dérivation canonique dépend des motifs EN de normalize (dishwasher/washer/no smoking OK ; « secured entry », « Concrete floors » restent non mappés — affichés tels quels).
  • 4 immeubles seulement ; le filtre _CITY_MAP doit suivre si Lofts MTL ajoute des villes.

# Améliorations apportées

  • lat/lng, code postal, pets (booléen structuré), téléphone de contact — tous depuis l'API.
  • area_sqft structuré depuis la cellule .suite-sqft (garde-fou ≥80).
  • Commodités passées de 2 items techniques (« 1 salle(s) de bain », « 614 pi² ») à ~18 items réels par unité → details passe de {} à {appliances{…}, balcony/elevator, storage, smoking:false, parking, contact, pets}.

# Échantillon avant/après

Lofts du Main — unité 200 (1295 $, Studio, Immediate Occupancy, 614 pi²)

  • avant : pets=None, details={}, amenities=["1 salle(s) de bain","614 pi²"], lat/lng absents, address=3827 Boulevard Saint-Laurent
  • après : pets=oui, details={"appliances":{"fridge":true,"stove":true,"dishwasher":true,"washer_dryer":true},"balcony":true,"storage":true,"smoking":false,"parking":{"available":true},"contact":{"phone":"514-806-7673"},"pets":"oui"}, lat=45.5157/lng=-73.5762, address=3827 Boulevard Saint-Laurent, H2W 1X9

Lofts Parc Avenue — unité 302 (2020 $, 3½, 1117 pi²)

  • avant : details={} ; après : appliances complets, elevator=true, storage=true, smoking=false, pets=oui, lat/lng, code postal H2V 4H1