SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.6 KB

# gestion_montreal — Gestion Montréal

  • site: https://gestion-montreal.com/fr/inscriptions (GeoJSON embarqué) + pages détail /fr/inscriptions/
  • méthode: json-api (GeoJSON window.properties_geojson) + pages détail html en cache
  • annonces: 23 → 23 (43 features à la source ; loués / non résidentiels / hors CMM exclus)
  • couverture après (sur 23 annonces): prix 100%, adresse 100%, dispo 83%, superficie 4%, commodités 96%
  • fixture: ok · test: ok

# Champs extraits

  • GeoJSON (déjà en place) : id, slug, prix + libellé, adresse, ville, titre/description FR, classification -> type d'unité, chambres, disponibilité ISO, photos, lat/lng, drapeaux « Loué »/sold_rented.
  • NOUVEAU — pages détail via self.detail(...) (cache BD, clé = hash de [updated_at, major_updated_at, prix, dispo, titre], plafond 150 vraies requêtes/sync) : sections structurées « Équipements / Caractéristiques Intérieures/Extérieures / Services / Animaux / Transport » -> commodités fidèles (« Eau chaude », « Chauffage », « Électricité », « Réfrigérateur », « Non-fumeur », « Internet », « Aucun animal autorisé », « Cour privée »…). Le pipeline en dérive inclusions{}, appliances{}, smoking, pets, balcony…
  • NOUVEAU — details.contact.phone depuis le lien tel: de la fiche (514-500-7900).
  • NOUVEAU — salles de bain du GeoJSON -> commodité « N salle(s) de bain ».
  • NOUVEAU — area_sqft explicite depuis les champs structurés area/area_formatted (« 800 pc ») — 1 seule annonce renseignée à la source.
  • NOUVEAU — correction mojibake résiduelle : « MontréAl » (recapitalisation post-encodage) -> « Montréal » dans adresses/titres.

# Champs indisponibles à la source

  • Superficie : 42/43 features ont area: null (et les fiches détail ne l'affichent pas non plus).
  • Étage, stationnement (aucune mention structurée), meublé n'existe que via le mot du titre/classification.
  • sublocality toujours vide -> secteur déduit du titre/description (liste de quartiers connus).

# Fragilités

  • Le site coupe la connexion sur les User-Agents « bot » : UA navigateur nu obligatoire (déjà en place).
  • GeoJSON extrait par regex window.properties_geojson + raw_decode.
  • Encodage source corrompu (UTF-8 lu en latin-1 puis re-capitalisé) : réparé heuristiquement (_fix_mojibake), de nouveaux motifs peuvent apparaître.
  • Les fiches détail sont du HTML Bootstrap sans classes sémantiques : le sélecteur div.card-body ul li ul li small est structurel.

# Améliorations apportées

  • Commodités structurées des fiches détail (96% des annonces, 4% avant) -> details riches (inclusions chauffage/électricité/eau chaude/internet, électroménagers, non-fumeur, animaux).
  • pets renseigné quand la section Animaux existe (3 annonces).
  • Contact téléphonique structuré, salles de bain, superficie structurée quand présente, mojibake d'adresses corrigé.
  • Cache BD des pages détail : re-fetch seulement si l'annonce change (clé de contenu), plafonné à 150 requêtes/sync.

# Échantillon avant/après

  • AVANT : Studio semi-meublé à louer – Centre-ville de Montréal | 950 | Studio | details={"inclusions": {"internet": true}, "laundry": true, "furnished": false} | adresse « … MontréAl » possibles
  • APRÈS : Studio semi-meublé à louer – Centre-ville de Montréal | 950 | Studio | details={"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true}, "appliances": {"fridge": true}, "laundry": true, "smoking": false, "furnished": "semi", "contact": {"phone": "514-500-7900"}} | 1024 Rue Sherbrooke Est, Montréal