bribourg — Bri Bourg (Charlesbourg, Vanier, Beauport)
- site: https://bribourg.com/Logements-a-louer.php (flux RSS DropInBlog + pages d'immeubles)
- méthode: html (RSS DropInBlog + pages d'immeubles PHP statiques)
- annonces: 2 → 2
- couverture après (sur 2 annonces): prix 100%, adresse 100%, dispo 100%, superficie 0%, commodités 100%
- fixture: ok · test: ok (2 passed)
Champs extraits
- Flux RSS DropInBlog (déjà en place) : titre, lien (?p=slug → external_id), adresse (« Adresse : … »), loyer (« Loyer : 860 $ par mois »), disponibilité (« Disponibilité : 1 août 2026 »), caractéristiques (liste
<li>: « Chauffé / éclairé / eau chaude », « Entrée laveuse/sécheuse »…), photos DropInBlog, secteur (parenthèse de l'adresse/du titre). - Page d'immeuble correspondante (appariée par numéro civique + rue, désormais via
self.detail()avec clé = sha1 du contenu RSS) :- photos additionnelles (déjà en place) ;
- code postal (« Code postal : G1M 1T3 ») → ajouté à l'adresse — nouveau ;
- descriptif de l'immeuble (« Immeuble situé près de Place Fleur-de-Lys… balcons… ») → ajouté à la description ; la normalisation en dérive p. ex.
balcony— nouveau ; - services à proximité (autobus, centre commercial, école, garderie, parc…) → ajoutés à la description — nouveau.
- Page principale : liens
tel:/mailto:structurés →details.contact{phone: 418-626-4613, email: bribourg@videotron.ca}— nouveau.
Champs indisponibles à la source
- Superficie : jamais publiée (ni RSS ni pages d'immeubles).
- Animaux, meublé, stationnement, étage : non affichés.
- Année de construction / nombre d'unités : affichés en texte libre non étiqueté sur la page d'immeuble (« 1971 16 UNITÉS ») — non repris pour éviter toute interprétation.
Fragilités
- Le flux RSS dépend du blog id DropInBlog détecté dans la page (repli codé en dur) ; si Bri Bourg change de compte DropInBlog, le repli devient invalide.
- L'appariement annonce → page d'immeuble repose sur numéro civique + mots de la rue dans le nom de fichier PHP ; un renommage de fichier casserait photos/code postal (dégradation douce : l'annonce reste complète côté RSS).
- Les champs de l'annonce sont du texte semi-structuré (« Adresse : … Loyer : … ») parsé par regex — sensible aux variations de rédaction du gestionnaire.
- Seulement ~2 annonces actives : peu de couverture de test pour les variantes de format.
Améliorations apportées
- Code postal ajouté à l'adresse depuis la page d'immeuble (champ étiqueté).
- Description enrichie du descriptif d'immeuble et des services à proximité (dérivation de commodités supplémentaires par la normalisation, ex. balcons).
- Contact du gestionnaire (tel:/mailto:) dans
details.contact. - Visites des pages d'immeubles mises en cache BD via
self.detail()(clé dérivée du contenu RSS de l'annonce).
Échantillon avant/après
3 ½ à louer (Vanier) – Dès aujourd'hui (860 $, 3½, dispo 1 août 2026)
- avant : address=
510, avenue Claude-Martin, Québec (Vanier), details={"inclusions": {"heating": true, "electricity": true, "hot_water": true}} - après : address=
510, avenue Claude-Martin, Québec (Vanier), G1M 1T3, details={"inclusions": {…}, "balcony": true, "contact": {"phone": "418-626-4613", "email": "bribourg@videotron.ca"}}, description + « Immeuble : … balcons, fenêtres et porte-patio rénovés … » + services à proximité
3 ½ à louer (Charlesbourg) – Dès aujourd'hui (860 $, 3½)
- avant : address=
1353, boulevard Jean-Talon Ouest, Québec (Charlesbourg), pas de contact - après : address=
…, G1G 2L5, details={"inclusions": {"heating": true, "hot_water": true}, "appliances": {"washer_dryer_hookup": true}, "contact": {…}}, description enrichie