SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
4.9 KB · 65 lines markdown
Rendered Raw Blame History
1# contraste — Contraste Immobilier2- site: https://contrasteimmobilier.ca (accueil → pages immeubles /appartements/<slug>/)3- méthode: html4- annonces: 231 → 2315- couverture après (sur 231 annonces): prix 85%, adresse 100%, dispo 100%, superficie 0%, commodités 100%6- fixture: ok · test: ok78## Champs extraits9- title, unit_type, price/price_label, availability, images : attributs `data-*` des cartes10  `div.building-stack-unit` (plugin « api-building-stack ») sur la page immeuble.11- address : titre Elementor complet (« 4855 rue de L'Escarpement, Québec, Québec, G3K0N8 »),12  avec repli sur l'adresse courte du hero des pages « projet » (« 2784 ave Sasseville » pour13  Ellipse / Émergence II, qui n'affichent pas de ville). sector dérivé de l'adresse ; city via14  infer_city + carte d'accueil.15- amenities : NOUVEAU — liste CARACTÉRISTIQUES de l'immeuble (répéteur JetEngine16  `.jet-listing-dynamic-repeater__item span`) : inclusions, animaux, stationnement,17  électroménagers… + type de bâtiment `data-housing-type` (« Maison de ville ») quand présent.18- details.contact : NOUVEAU — courriel/téléphone « Pour prendre rendez-vous » exposés dans les19  titres Elementor de la page immeuble (structuré, pas déduit du texte).20- description : meta og:description (texte complet du projet).21- area_sqft : lu depuis `data-size` mais uniquement si plausible (80–20 000) — chez Contraste22  l'attribut vaut toujours « 0 », donc None aujourd'hui ; l'extraction s'activera d'elle-même23  si le gestionnaire remplit le champ.2425## Champs indisponibles à la source26- Superficie : `data-size="0"` partout, aucune mention en pi² dans les pages.27- Prix des immeubles Focus I/II : `data-price="0"` (la carte n'affiche aucun prix) —28  34 unités restent volontairement sans prix (avant, elles portaient un faux « 0$/mois »).29- Étage, meublé, lat/lng : non exposés.30- animaux : seulement en texte libre (« Chats autorisés, certaines conditions s'appliquent »).3132## Fragilités33- Dépend du plugin WordPress « api-building-stack » (attributs data-pid/data-name/data-rooms/34  data-price) : un changement de thème casserait le parsing.35- La liste des immeubles vient des cartes de la page d'accueil (`a[href*="/appartements/"]`).36- Filtre géographique par ville de la carte d'accueil (Beaupré exclue) — si la carte omet la37  ville, l'immeuble passe avec défaut « Québec ».38- LACUNES GÉNÉRIQUES de normalisation constatées ici (non contournées localement) :39  1. « Non chauffé et éclairé » → inclusions.heating=true (faux positif : le motif positif40     `chauffe ` matche « chauffé et » ; « non chauffé » n'est pas un motif négatif reconnu —41     « Non chauffé, non éclairé » passe par chance à cause de la virgule).42  2. « Chats autorisés (…sous conditions) » n'est reconnu par aucun motif pets → pets reste43     None alors que la source l'affiche (devrait donner « conditions »).44  3. « Électroménagers selon disponibilités ($) » / « sur demande ($) » → appliances.fridge=true45     (les électroménagers ne sont pas inclus, ils sont en option payante).4647## Améliorations apportées48- Extraction des commodités d'immeuble (CARACTÉRISTIQUES) → amenities pour chaque unité49  (avant : amenities toujours vide, 231/231).50- Adresse de repli pour les pages « projet » (Ellipse, Émergence II) → 100 annonces qui51  n'avaient aucune adresse en ont maintenant une.52- `data-price="0"` traité comme « prix non affiché » (avant : price_label « 0$/mois » inventé).53- details.contact (email + téléphone location) quand la page l'affiche.54- `data-housing-type` ajouté aux amenities ; `data-size` branché (inactif tant que la source55  le laisse à 0).5657## Échantillon avant/après58Agora Phase 2 — unité 20659- avant : 1519.0 | 4½ | Bientôt disponible (01 décembre 2026) | 2026-12-01 | area=None | pets=None | details={"floor": 2} | 4855 rue de L'Escarpement, Québec, Québec, G3K0N8 | amenities=[]60- après : 1519.0 | 4½ | Bientôt disponible (01 décembre 2026) | 2026-12-01 | area=None | pets=None | details={"inclusions":{"heating":true,"internet":true},"appliances":{"fridge":true,"washer_dryer_hookup":true},"ac":true,"parking":{"available":true,"type":"extérieur"},"floor":2,…} | même adresse | amenities=[Non chauffé et éclairé, Entrée laveuse-sécheuse, Internet inclus, Air climatisé, Chats autorisés *sous conditions, Électroménagers sur demande*($), Stationnement extérieur ($)]6162ELLIPSE — unité 10163- avant : prix ok | 4½ | Disponible | now | address="" | details={}64- après : prix ok | 4½ | Disponible | now | address="2784 ave Sasseville" | details={"inclusions":{"heating":true,"electricity":true,"hot_water":true,"internet":true},"appliances":{"fridge":true,"stove":true},"ac":true,"gym":true,"parking":{"available":true,"type":"intérieur"},"contact":{"email":"location@contrasteimmobilier.ca","phone":"418-520-4412"}}65