SPB Git

spb/lou-ka Public

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

HTML 99.7%
4.3 KB

# lafrance_mathieu — Lafrance & Mathieu (GILM)

  • site: https://lafrance-mathieu.com/louer-appartement-quebec (+ /logement/)
  • méthode: html (liste + filtres ?boroughs=N, fiches immeubles)
  • annonces: 39 → 39
  • couverture après (sur 39 annonces): prix 100%, adresse 100%, dispo 100%, superficie 0%, commodités 100%
  • fixture: ok (ré-enregistrée) · test: ok (2 passed)

# Champs extraits

  • Carte liste (inchangé) : id, adresse, arrondissement, « 4½ à partir de 1595$ », disponibilité, 3-4 icônes de commodités (alt).
  • Fiche immeuble /logement/ (nouveau, via self.detail() — cache BD, max 150 nouveaux fetchs/sync) :
    • adresse complète avec code postal (bloc « À propos de l'immeuble > Adresse ») ;
    • lat/lng structurés (<script id="building-coordinates">[{"loc": […]}]) — présents sur 24/39 immeubles ;
    • commodités complètes (p.attribute-description) : commodités immeuble + commodités et caractéristiques d'unité (« Chat accepté », « Balcon », « Entrée laveuse-sécheuse », « Entrée lave-vaisselle », « Semi-meublé », « Eau Chaude », « Électricité », « Chauffage », buanderie, conciergerie…) + « Accès et services » (école, autobus, parc…) — 15-16 items vs 3-4 avant ;
    • pets structuré : items « Chat accepté »/« Chien accepté »/« Animaux acceptés » → oui/conditions (une seule espèce → conditions ; 39/39 acceptent le chat) ;
    • unités individuelles : numéro, étage, disponibilité, prix par unité → description (« Unité 5 · 1er étage — disponibilité : novembre 2026 — à partir de 1585,00$ ») + disponibilité de secours ;
    • details.construction_year (« Année de construction », structuré) et nombre total d'unités (description) ;
    • details.contact.phone propre à l'immeuble (panneau « S'informer », différent du numéro corporatif) ;
    • photos S3 (comme avant), description remplacée (avant : chaîne cassée « À propos de l'immeuble » seule).

# Champs indisponibles à la source

  • Superficie : jamais publiée (ni carte ni fiche).
  • lat/lng absents sur 15/39 fiches (script building-coordinates vide chez la source).
  • Meublé par unité : seulement l'item immeuble « Semi-meublé » quand présent (dérivé "semi" par la couche commune).

# Fragilités

  • Le site répond 302 → / si le User-Agent n'est pas complet (l'UA de base.py passe ; un curl avec UA court est redirigé).
  • Les unités sont dupliquées dans la page (bloc inline + modal) : dédup par tuple (numéro, dispo, prix).
  • Le téléphone d'immeuble est du texte libre dans le panneau « S'informer » (regex).
  • Une annonce = un immeuble (schéma d'external_id conservé) : quand plusieurs unités/types coexistent, le prix/type affichés viennent de la carte (le plus bas), le détail par unité est dans la description.
  • Étage en description (« 1er étage », « SS ») : la dérivation details.floor de la couche commune peut retenir l'étage de la première unité listée — approximation inhérente aux annonces multi-unités.

# Améliorations apportées

  • Fiches détail migrées vers self.detail() (avant : les 39 fiches re-téléchargées à chaque sync, sans budget).
  • Adresse enrichie du code postal ; lat/lng structurés ; pets structuré ; année de construction ; téléphone d'immeuble.
  • Commodités : de 3-4 icônes de carte à la liste complète de la fiche (~15 items).
  • Description reconstruite : infos immeuble + inventaire des unités disponibles (avant : littéralement « À propos de l'immeuble »).

# Échantillon avant/après

5900 boul. St-Jacques (Lebourgneuf) (1595 $, 4½, octobre 2026)

  • avant : address=5900 boul. St-Jacques, description=À propos de l'immeuble, amenities=3 icônes, pets=None, details={ac, parking, price_from}
  • après : address=5900 boul. St-Jacques, Québec, Québec, G2C1M6, pets=conditions (chat accepté), details={…, construction_year: 2022, contact:{phone:"418-626-3070"}}, amenities=15 items, description=Immeuble construit en 2022, 12 unités | Unité 5 · 1er étage — disponibilité : novembre 2026 — à partir de 1585,00$ | Unité 11 · 3e étage — …

1573, rue Pierre-Corneille (1250 $, 4½, libre immédiatement)

  • avant : pas de lat/lng, description cassée ; après : lat=46.820519/lng=-71.365499, G2E4W9, construit en 1978, 6 unités, pets=conditions