# logement_mauricie — Logement Mauricie - site: http://logementmauricie.com (builder type WebSelf, HTML peu sémantique, regroupement de propriétaires +200 logements) - méthode: html plat — 4 pages secteur (Trois-Rivières, Cap-de-la-Madeleine, Shawinigan, Shawinigan-Sud), 4 requêtes/sync, pas de fiche individuelle - annonces: 1 (17 immeubles décrits, mais la quasi-totalité affiche « Actuellement disponible : Complet » ou vide ; seules les vraies vacances sont retenues) - couverture (sur 1 annonce): prix 100%, adresse 100%, ville 100%, type 100%, dispo 100%, description 100%, images 100% — superficie/GPS jamais publiés - fixture: ok (4 requêtes) · test: ok (2 verts) ## Champs extraits - Chaque immeuble = un
contenant un gabarit à champs libellés : « Type / Actuellement disponible / Date / Chauffé éclairé / Commodité / Entrée laveuse et sécheuse / Stationnement / Plus / Combien $ / Contact », suivi d'un paragraphe sur le secteur. - external_id = id GUID du widget (stable dans le builder) ; URL = page secteur + ancre (pas de fiche individuelle). - Filtre de vacance : on ne retient que les widgets dont « Actuellement disponible » a une valeur réelle (≠ vide, ≠ « - », ≠ « Complet ») — c'est la sémantique du site (les immeubles complets restent affichés). - Adresse civique =

du widget (« 3170 rue Louis Pasteur ») ; ville réelle fixée par la page secteur : cap-de-la-madeleine → Trois-Rivières (secteur Cap-de-la-Madeleine), shawinigan-sud → Shawinigan (secteur Shawinigan-Sud) — villes fusionnées en 2002. - unit_type = normalize_unit_type(valeur « Actuellement disponible ») (« 2 1/2 » → 2½) ; price_label = champ « Combien $ » (« $ 695,00 » → 695 via parse_price) ; availability = champ « Date » tel quel (« Mai, juin et juillet »). - description = bloc de champs complet + paragraphe secteur (texte brut, textmine structure chauffé/éclairé, buanderie, non fumeur… au finalize()). - Images du widget (photos d'immeuble ../attachments/Image/…, résolues en absolu ; icônes google-maps/logo exclues). ## Champs indisponibles à la source - Superficie, GPS, nombre d'unités libres par type précis : jamais publiés. Le contact est un propriétaire individuel (nom + téléphone, conservés dans la description). - Le parc annoncé (+200 logements) n'est pas listé unité par unité : 1 « annonce » = 1 immeuble avec vacance. ## Fragilités - Une seule vacance au moment de la construction : le volume variera de 0 à ~17 selon les saisons ; un sync à 0 annonce est plausible et légitime (tout est « Complet »). - HTML de builder : les libellés de champs sont saisis à la main (variantes « Date : », « Date : - », « Stationnements ») — le parseur tolère les deux-points/espaces/pluriels, mais un libellé inédit serait ignoré. - Site en http (pas de https) ; certificat absent — requêtes en clair. - Quand plusieurs types sont libres à la fois (« 1 x 3½ et 1 x 4½ »), normalize_unit_type ne retiendra que le premier type. ## Échantillon - widget-4cf84820-… : 2 1/2 — 3170 rue Louis Pasteur, Trois-Rivières, 695 $, dispo « Mai, juin et juillet », chauffé éclairé oui, semi-meublés et rénovés, Wi-Fi illimité, 1 photo.