Skip to content
# per — Les Immeubles Paul-E. Richard
- site: https://immeublesper.com/logements/ (fiches /logement//)
- méthode: html
- annonces: 2 → 2
- couverture après (sur 2 annonces): prix 100%, adresse 100%, dispo 100%, superficie 0%, commodités 100%
- fixture: ok · test: ok
- Informations générales (paires
ls-label/ls-data) : secteur, adresse, format, prix, disponibilité, nombre de chambres, étage, animaux permis.
- pets (corrigé) : le champ structuré "Animaux permis: Oui/Non" est maintenant mappé explicitement →
pets="non"/"oui"/"conditions" (avant : le texte brut "Animaux permis : Non" était mal interprété en pets="oui" par la normalisation générique).
- Caractéristiques (liste
<ul> après le h2 "Caractéristiques") → amenities ; "3e étage" → floor, "Chauffé"/"Eau chaude" → inclusions, balcon, remise, stationnement dérivés par finalize().
- Numéro d'unité (#32), galerie fancybox pleine taille, prix "895$ / mois".
# Champs indisponibles à la source
- Superficie : jamais affichée.
- Description : les fiches n'ont aucun paragraphe descriptif (vérifié dans
.ls-single).
- lat/lng : non exposés.
- La source ne publie que les unités disponibles (2 en ce moment sur 18 immeubles) — le sitemap Yoast (
logement-sitemap.xml) confirme : 2 fiches publiées, rien de plus à découvrir.
# Fragilités
- Volume très variable (unités retirées dès qu'elles sont louées) ; 0 annonce possible hors saison.
- Le thème WordPress "verteb" est artisanal ; les classes
ls-info/ls-label/ls-data sont le seul ancrage.
- Disponibilité en mots seuls ("AOÛT", "SEPTEMBRE") — bien gérée par parse_availability_date (mois passé → "now").
# Améliorations apportées
- pets explicite depuis le champ structuré (corrige une inversion oui/non).
- Le texte "Animaux permis : X" reste dans amenities pour l'affichage (la valeur explicite a priorité dans details).
# Échantillon avant/après
- Avant :
80 Sapinière Dorion Ouest, #32, 3 1/2 | 895 | AOÛT → now | pets=oui (FAUX) | details={... "pets": "oui" ...}
- Après :
80 Sapinière Dorion Ouest, #32, 3 1/2 | 895 | AOÛT → now | pets=non | details={"inclusions": {"heating": true, "hot_water": true}, "balcony": true, "storage": true, "pets": "non", "parking": {"available": true}, "floor": 3}
# Note de normalisation (générique)
_PETS_YES_RE matche "animaux permis" dans "Animaux permis : Non" (le "Non" suit le mot-clé au lieu de le précéder) — _PETS_NO_RE n'attend que "animaux non permis". Les connecteurs dont la source expose "Animaux permis: Non" doivent mapper explicitement, sinon dérivation erronée.