SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.5 KB

# ledomaine — Les Habitations Le Domaine (Mercier, Montréal)

  • site: https://www.ledomaine.ca/ (pages /appartement//)
  • méthode: html (micro-site WordPress, une page par typologie)
  • annonces: 5 → 5
  • couverture après (sur 5 annonces): prix 100%, adresse 100%, dispo 0%, superficie 0%, commodités 0%
  • fixture: ok · test: ok (2 passed)

# Champs extraits

  • Par typologie (2½, 3½, 4½, 4½ sous-sol, 5½) : titre h1, type d'unité, prix « À partir de NNN $/mois » (meta description ou corps), description complète du bloc « Description de l'appartement » (inclusions « rien d'inclus », entrée laveuse/sécheuse, planchers bois franc, balcon/pas de balcon, rangement, « Les animaux sont interdits », téléphone), galerie photos + plan (8 à 46 images).
  • Adresse et secteur constants du micro-site (2990, Avenue de Granby, Mercier–Hochelaga-Maisonneuve).
  • Dédup des alias (/appartement-2/ → canonical).
  • details.contact.phone dérivé de la description (514-256-9037).

# Champs indisponibles à la source

  • Disponibilité : jamais publiée (« Pour connaître les disponibilités, veuillez communiquer avec nous ») → availability="" honnête.
  • Superficie : jamais publiée.
  • Unités individuelles : le site n'expose que des typologies « à partir de », pas d'inventaire d'unités.
  • lat/lng : la page « Situer » contient un LatLng(45.400994, -71.882428) qui pointe… vers Sherbrooke (valeur par défaut du thème) — non utilisé.
  • Pas de liste de commodités structurée (tout est en prose dans la description) → amenities=[] ; les détails sont dérivés de la description par normalize.

# Fragilités

  • Prix uniquement dans du texte libre (meta description / corps) via regex « à partir de NNN $ ».
  • La page ne dit pas si une typologie est réellement disponible — les 5 pages existent en permanence.
  • Site à ~5 pages : tout changement de gabarit WP casse les regex ; l'extraction de description a maintenant un chemin structurel (.text-wrapper) + repli textuel.

# Améliorations apportées

  • Extraction de la description rendue structurelle (paragraphes du .text-wrapper sous le h2 « Description de l'appartement ») avec repli sur l'ancien découpage regex — capture désormais garantie de la politique animaux et de « rien d'inclus » même si l'ordre des blocs change.
  • Audit complet de la source (pages typologies, /nos-services/, /situer-le-domaine/, wp-json) : confirmé qu'aucune donnée additionnelle exploitable n'existe (pas d'API, pas de coordonnées valides, pas de disponibilité).

# Échantillon avant/après

Appartement 2 et demi (660 $ « à partir de »)

  • avant : description tronquée par regex texte, details={"appliances":{"washer_dryer_hookup":true},"balcony":true,"contact":{…},"price_from":true}
  • après : description structurelle identique mais robuste ; mêmes champs (la source n'offre rien de plus) — balcony:true reste un faux positif de normalisation (voir ci-dessous)

# Lacunes génériques de normalisation détectées

  • « Pas de balcon » (2½) déclenche quand même balcony=true : la règle balcony n'a aucun motif négatif (pas de balcon|sans balcon|no balcony).
  • « Les animaux sont interdits » n'est pas reconnu par _PETS_NO_RE (le motif exige « animaux interdits » adjacents ; « animaux sont interdits » passe entre les mailles) → pets=None au lieu de "non" sur les 5 annonces.
  • « rien d'inclus » n'est pas exploité : pourrait valoir inclusions{heating:false, electricity:false, hot_water:false}.