Skip to content
# sentinelle — La Sentinelle (Groupe Brochu, Lévis)
- site: https://lasentinellelevis.com/projet/
- méthode: html
- annonces: 10 → 10
- couverture après (sur 10 annonces): prix 100%, adresse 100%, dispo 100%, superficie 100%, commodités 100%
- fixture: ok · test: ok
- NOUVEAU — tableau structuré de /projet/ (
tr[data-url*='/unite-']) : numéro d'unité, étage, superficie (pi²), type (« 4½+ »), prix (« 1695$ »), statut (Disponible/Loué/Réservé). Le statut filtre AVANT toute requête : les fiches des unités louées ne sont plus téléchargées.
- Champs désormais structurés à la source :
price + price_label (colonne prix), area_sqft (colonne superficie), details.floor (colonne étage), unit_type (colonne type ; « + » → « Avec espace bureau » en description).
- Fiche d'unité (via
self.detail(...), clé = ligne du tableau) : « Disponible à partir de : … » (availability datée), commodités depuis la vraie liste à puces ul.uk-list-disc (au lieu d'une liste de candidats codée en dur), photos/plans wp-content.
details.contact.phone (lien tel: du pied de page — bureau de location de l'immeuble), code postal G6V 0C1 ajouté à l'adresse.
# Champs indisponibles à la source
- Animaux, meublé, lat/lng (rien de publié).
- Courriel (obfusqué par Cloudflare : « [email protected] »).
- Inclusions chauffage/électricité (seule « Eau chaude fournie » est affichée).
# Fragilités
- Le tableau contient une colonne commentée (
<!-- <td>1</td> -->) : les cellules sont reconnues par motif (statut/prix/étage/type/pi²), pas par position — robuste à une réactivation de colonne.
- Repli conservé : si le tableau disparaît, balayage des liens
/projet/etage-N/unite-NNN/ comme avant (avec les mêmes extractions fiche).
- « Ascenceur » (coquille de la source) n'est pas reconnu par le normaliseur d'ascenseur — voir lacunes génériques.
# Améliorations apportées
- Parsing du tableau structuré (prix/superficie/étage/type/statut explicites, plus dérivés du texte).
- Fiches derrière
self.detail(...) (cache BD) + plafond max_details=60 (_BudgetReached) ; unités non disponibles filtrées sans requête.
- Commodités extraites structurellement (
ul.uk-list-disc) — n'importe quelle nouvelle commodité de la source sera reprise.
details.floor, details.contact.phone, code postal.
- Fixture (11 requêtes) + tests ok.
# Échantillon avant/après
- AVANT :
Unité 104 (4½) | 1695 | dispo "Disponible à partir de : Maintenant" | area 1241 (regex texte) | details={hot_water, ac, storage, parking}
- APRÈS :
Unité 104 (4½) | 1695 (structuré) | idem | area 1241 (structuré) | details={hot_water, ac, storage, parking:{intérieur, inclus}, floor:1, contact.phone:418-741-3737}