# 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 `
  • ` : « 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