spb/lou-ka Public
Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 99.7%
1# sibelanger — Société immobilière Bélanger2- site: https://sibelanger.com/appartements-a-louer/ (+ pages détail /appartements-a-louer/<slug>/)3- méthode: html4- annonces: 13 → 12 (1 annonce périmée retirée par le diff)5- couverture après (sur 12 annonces): prix 100%, adresse 100%, dispo 100%, superficie 75%, commodités 100%6- fixture: ok · test: ok78## Champs extraits9- Cartes liste : titre, secteur, prix, disponibilité (« Libre en septembre »), type (« 3 ½ », « Maison de ville »), icônes de caractéristiques (attributs title : Non meublé, Entrée laveuse-sécheuse, Balcon, Chauffé…), data-unit-id (external_id stable), carrousel de photos.10- Pages détail (nouveau) : **adresse civique complète avec code postal** (« 1175, rue de Chamonix, Québec (QC) G1H 6M3 »), **superficie** depuis « Plan de l'unité … pi2 » (texte brut → parse par finalize), **description riche** (contenu WP complet au lieu du og:description), **commodités de l'appartement + commodités de l'immeuble** (Service de maintenance 24/7, Stationnement extérieur/intérieur…), disponibilité de repli, galerie complète.11- Dérivés par finalize() : smoking (« Environnement sans fumée »), parking (« 1 stationnement inclus »), contact (téléphone de l'agente dans la description), furnished (« Non meublé »), price_from.1213## Champs indisponibles à la source14- lat/lng : aucune coordonnée dans le HTML.15- Animaux : politique jamais mentionnée (ni carte, ni fiche).16- Superficie absente sur 3 fiches (pas de plan d'unité publié).1718## Fragilités19- L'adresse affichée sur la fiche « Wilfrid-Pelletier - Unité 401 » est « 3060, Rue Antoine-Du Verdier » (même immeuble/complexe ou coquille du site) : on reprend fidèlement ce que la source publie.20- « Entrée lave-vaisselle » (une entrée, pas l'appareil) est classée `appliances.dishwasher: true` par la normalisation générique — voir lacune ci-dessous.21- Cache détail calé sur titre|prix|dispo de la carte : une modification de description seule ne re-déclenche pas le téléchargement de la fiche.2223## Améliorations apportées24- Pages détail désormais visitées via `self.detail()` (cache BD) avec plafond de vraies requêtes (`max_details=60`) — avant : og:description + images à CHAQUE sync.25- Adresse : slug deviné (« 350, Chemin Ste-Foy ») → adresse civique complète publiée sur la fiche (avec code postal). Reste en repli si la fiche est indisponible.26- Superficie 0 % → 75 % (span .single-unit__plan-surface).27- Commodités enrichies (appartement + immeuble) ; « Services de proximité » (épicerie, parc…) volontairement exclus pour ne pas polluer.28- Description complète nettoyée des invites « Demander une visite ».2930## Échantillon avant/après31- Chamonix - Unité 197 — avant : adresse « 1175, Chamonix » (slug), pas de superficie, description = og:description ; après : « 1175, rue de Chamonix, Québec (QC) G1H 6M3 », 1360 pi², description complète, + smoking false, parking inclus, contact 581-702-2720.32- Samuel de Champlain - 304 — avant : superficie NULL ; après : 938 pi², commodités immeuble ajoutées.33- Wilfrid-Pelletier - Unité 401 — avant : adresse « 962, Wilfrid Pelletier » (dérivée du slug) ; après : adresse publiée par la source (3060, Rue Antoine-Du Verdier, G1W 4X9).3435## Lacune générique de normalisation (à traiter dans normalize.py, non contournée ici)36- « Entrée lave-vaisselle » / « sortie lave-vaisselle » devrait donner `dishwasher_hookup` (comme washer_dryer_hookup) et non `dishwasher: true` — la règle `dishwasher: (r"lave[- ]vaisselle|dishwasher")` matche l'entrée seule.37