Skip to content
# 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
- 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