Skip to content
# rentalys — Rentalys (Gestion locative, Grand Montréal)
- site: https://location.rentalys.ca/property/ (archives Houzez paginées)
- méthode: html
- annonces: 10 → 10
- couverture après (sur 10 annonces): prix 100%, adresse 100%, dispo 100%, superficie 80%, commodités 100%
- fixture: ok · test: ok
- Archive : titre, adresse Houzez (
, Canada retiré), prix $X,XXX/mois, étiquettes (« Disponible au 1er Juillet » → availability ; autres → amenities), lits/bains/pi² (item-amenities), ville/secteur (mapping arrondissements MTL vs banlieues), vignette.
- Fiche : galerie complète wp-content (sans miniatures/logos), description bilingue (900 car. — inclut téléphone →
details.contact.phone dérivé par finalize()).
- NOUVEAU — superficie structurée : bloc « Caractéristiques clés » Houzez (libellé
.h-area) → area_sqft explicite.
- NOUVEAU — lat/lng structurés : variable JS
houzez_single_property_map (JSON) → lat/lng (validés dans l'enveloppe géographique du Québec). Couverture 100 %.
# Champs indisponibles à la source
pets/furnished structurés (dérivés du texte par finalize() : « entièrement meublé », « pas d'animaux »…).
- Étage, inclusions détaillées en champs dédiés (texte libre de la description seulement).
- Superficie absente de 2 fiches sur 10 (non publiée à la source).
# Fragilités
- Thème Houzez : sélecteurs
.item-listing-wrap, .h-area, houzez_single_property_map — stables mais liés au thème.
- L'unité de la superficie n'est pas affichée à la source (nombre seul, icône règle) : pi² supposés (cohérent avec les valeurs 600–1200 observées).
- Déduplication ville/secteur basée sur des listes statiques d'arrondissements.
# Améliorations apportées
- Fiches déplacées derrière
self.detail(...) (cache BD, clé = hash titre+prix+dispo+étiquettes) + plafond max_details=60 vraies requêtes/sync (_BudgetReached, rien de mis en cache au-delà).
area_sqft structuré depuis .h-area (fiabilise les 8 déjà dérivés du texte).
lat/lng extraits du JSON de la carte Houzez (0 % → 100 %).
- Description passée de 600 à 900 caractères (couvre les « Options » : stationnement 100 $/mois →
details.parking.price dérivé, et le téléphone → contact).
# Échantillon avant/après
- AVANT :
VERDUN – 4 1/2 dans bâtisse récente | 2177 | 4½ | dispo="Disponible au 1er Juillet" | area 790 (dérivée du texte) | lat NULL
- APRÈS :
VERDUN – 4 1/2 dans bâtisse récente | 2177 | 4½ | idem | area 790 (structurée) | lat 45.45176, lng -73.56852 | details.parking={extérieur, 100$}
- APRÈS :
VERDUN – 4 1/2 en demi sous-sol | pets="non" (dérivé description) | lat/lng présents