# quartier_oree — Quartier Orée (Sainte-Marie, Chaudière-Appalaches) - site: https://quartieroree.com/plans-et-prix/ - méthode: html rendu côté serveur (WordPress + FacetWP) + commodités/photos de l'accueil - annonces: 31 unités disponibles (sur 279 unités des 4 immeubles Orée-A à Orée-D) - couverture (sur 31 annonces): prix 100 %, superficie 100 %, type d'unité 100 %, dispo 100 %, **adresse 100 %**, commodités 100 %, images 100 % - fixture: ok (2 requêtes) · test: ok (2 verts) ## Champs extraits - La page `/plans-et-prix/` **ne contient que les unités disponibles** : les facettes FacetWP (`disponibilite`, `loyer`, `batiment`) ne servent qu'au filtrage côté client et leurs compteurs le confirment (14 + 12 + 2 + 1 + 1 + 1 = 31 = nombre de cartes). Le HTML serveur suffit — **aucun appel à `/wp-json/facetwp/v1/refresh` n'est nécessaire** (choix volontaire : moins de requêtes, pas de nonce à gérer). - Carte `.unite` : « Unité 101 · 1 555$/mois · 1 152 pi² · 2 chambres · Orée-B · Immédiate » + lien « Plan de l'unité » (PDF). - Le lien « Demande d'info » (`a.nav-info`) porte les attributs **structurés** `unite="Unité 101"` et `batiment="Orée-B"` : ils fournissent le n° d'unité et l'immeuble sans dépendre du texte → `external_id` = `oree-b-101` (stable, unique malgré les n° d'unité répétés d'un immeuble à l'autre). - **Adresse civique par immeuble** publiée sur la même page (`div.infos.OREE-A…D`) : 481 / 485 / 489 / 493 Route Chassé, Ste-Marie-de-Beauce, Québec G6E 0P9…0R7 (mention « Canada » retirée) → chaque annonce reçoit l'adresse de son immeuble. - Disponibilité : « Immédiate », « Juillet 2026 », « Novembre 2026 »… → date ISO par la normalisation commune. - Type d'unité : « 2 chambres » → 4½, « 3 chambres » → 5½ (le site vend aussi Studio et 3½, absents de l'inventaire disponible aujourd'hui). - Commodités du projet (accueil, `.box-icone`) : 17 items — internet illimité, eau chaude fournie, piscine extérieure chauffée, gym, salle commune, bornes pour véhicules électriques, ascenseur, stationnement intérieur chauffé avec lave-auto, climatisation, insonorisation… → textmine en tire `inclusions{hot_water, internet}`, `ac`, `elevator`, `balcony`, `pool`, `gym`, `parking{intérieur}`. - `details.plan_pdf` = plan de l'unité ; photos réelles du projet depuis l'accueil. ## Champs indisponibles à la source - Secteur/quartier : Sainte-Marie n'a pas de découpage publié → `sector` vide. - Étage : le n° d'unité l'encode (101 = 1er étage) mais la source ne l'affiche pas comme champ → non asserté. - lat/lng, animaux, meublé : non publiés. - Ville : la source écrit « Ste-Marie-de-Beauce » dans l'adresse ; la ville canonique **Sainte-Marie** est utilisée pour `city` (même convention que le connecteur girescom), l'adresse restant celle publiée. ## Fragilités - **Cloudflare** : 403 pour un UA non-navigateur ; le UA de base.py (Chrome + LouKaBot) passe. `robots.txt` autorise `/plans-et-prix/` (seuls `/unite/*` et `/batiment/*` sont interdits, et le connecteur ne les visite pas). Signal de contenu « search=yes, ai-train=no, use=reference » : usage agrégateur avec lien retour, conforme. - Parsing dépendant du gabarit du thème (`.unite`, `.infos`, `a.nav-info`) : la fixture (2 requêtes) sert de sentinelle. - Les courriels de contact sont obfusqués par Cloudflare (`/cdn-cgi/l/email-protection`) : volontairement non décodés, aucun contact publié dans `details`. - 2 requêtes par sync seulement (page des plans + accueil) : coût négligeable. ## Échantillon - `quartier_oree:oree-b-101 | Quartier Orée B — Unité 101 | 485 Route Chassé, Ste-Marie-de-Beauce, Québec G6E 0R2 | Sainte-Marie | 4½ | 1 555$/mois | Immédiate → now | 1 152 pi² | 17 commodités | plan PDF` - `quartier_oree:oree-d-110 | Quartier Orée D — Unité 110 | 493 Route Chassé | 4½ | 1 605$/mois | Juillet 2026 | 1 198 pi²` - `quartier_oree:oree-b-207 | Quartier Orée B — Unité 207 | 5½ | 1 690$/mois`