# mercini — Groupe Mercini (Gestion Faleschini Mercier) - site: https://groupemercini.com/appartements/ - méthode: html - annonces: 35 - couverture (sur 35 annonces): prix 100%, adresse 100% (avec code postal), dispo 100%, superficie 0%, commodités 100%, description 100%, images 100% - fixture: ok · test: ok ## Champs extraits - Liste `/appartements/` paginée (WordPress + thème WpResidence, 12 cartes/page, 3 pages actuellement, garde-fou 10 pages). Par carte : titre complet (alt de l'image — le h4 est tronqué), catégorie (`action_tag_wrapper` : « 4½ », « Studio ou 2½ », « Chambre », « Maison de ville »… → `details.category`), statut (`ribbon-inside` : « Disponible pour visite », « Bientôt disponible », « Nouveau » → `details.status` ; « Loué » = exclu), prix (« 1380 $ par mois »), chambres/salles de bain (→ amenities), carrousel d'images. - Titre structuré par l'agence : « 4-1/2 | Secteur : Duberger | Disponible : Juillet 2026 » → `sector`, `availability` (« Disponible : … » ou « Livraison … » pour les projets neufs), `unit_type` (« 4-1/2 » → 4½). - Fiche détail (via `self.detail` + cache BD, budget 60 vraies requêtes/sync) : - adresse civique complète avec code postal (`.property_categs`, texte hors liens : « 3135 Rue Dubé, Québec, QC G1M 2N2 ») ; - taxonomies (liens property_city/property_area) → secteur (Duberger, Limoilou, Sainte-Foy…) et ville (Québec/Lévis) ; - description riche (1500 c.) : bullets ▪️ (charges, internet, meublé, entrées laveuse-sécheuse, stationnement, animaux, fumeur) — l'Unicode décoratif (𝐏𝐫𝐢𝐱, 𝘙𝘦́𝘧) est normalisé NFKC pour que la couche extract_details fonctionne (inclusions négatives « NON Chauffé/NON Éclairé » bien détectées) ; - n° de référence de l'annonce (REF…) → `details.reference` ; - overview (« 2 Chambres », « 1.5 Salles de bain ») + caractéristiques (« Entrée indépendante », « Stationnement extérieur ») fusionnées aux amenities ; - galerie complète : carrousel `#owl-demo` (background-image), suffixe -1170x660 retiré → pleine taille. - `external_id` = slug WordPress `estate_property` (ex. `2575-2`) — stable. ## Champs indisponibles à la source - Superficie : jamais publiée. - lat/lng : le thème expose `general_latitude` mais la valeur est erronée (latitude négative -46.8, identique sur toutes les fiches = coordonnées du siège avec coquille de signe) — ignorée, le géocodeur Lou-Ka prend le relais sur l'adresse (qui est excellente : code postal partout). - `pets`/`furnished` structurés : dérivés de la description par la normalisation commune quand mentionnés (« 2 chats maximum » → conditions, « Non meublé » → false). ## Fragilités - Sélecteurs WpResidence (`.property_listing`, `.property_categs`, `#owl-demo`, `.overview_element`) — sensibles à un changement de thème. - Le titre-annonce (« … | Secteur : … | Disponible : … ») est une convention rédactionnelle de l'agence : si elle change, secteur et disponibilité retomberaient sur les taxonomies et le ribbon. - Les cartes de la liste tronquent le titre : l'alt de l'image sert de titre complet — si l'agence cesse de renseigner les alt, prévoir un repli sur le h1 de la fiche. ## Notes - 35 annonces actives (595 $ chambre – 1 895 $ maison de ville) réparties : Limoilou 18, Sainte-Foy 6, Duberger 3, Vanier 2, Saint-Sacrement 2, Beauport/Montcalm/Saint-Sauveur/Sillery 1. Aucune annonce Lévis au moment de l'écriture (la détection Lévis via property_area est en place). - « Juillet 2026 » (déjà passé au moment de la sync) → `availability_date` = now, comportement standard de la normalisation.