# cogir — Cogir Immobilier (cogir.net) - site: https://www.cogir.net/gestion-immeubles-residentiels.html (+ ~100 fiches immeuble) - méthode: html (rendu serveur, liste + fiches immeuble) - annonces: 270 → 283 (une par modèle offert ; +modèles autrefois écrasés par collision d'uid, +penthouses ; −modèles « Pas disponible »/« Liste d'attente ») - couverture après (sur 283 annonces): prix 97%, adresse 100%, dispo 97%, superficie 0% (non publiée), commodités 56% (beaucoup d'immeubles sans section Services), contact 94% - fixture: ok · test: ok (104 requêtes rejouées) ## Champs extraits - Liste : liens des immeubles par ville (slugs `immeuble-residentiel-/-…`), filtrés Québec/Lévis + Grand Montréal - Fiche immeuble : nom (h1), adresse (`p.adresse`, désormais dédupliquée : « …, Québec, QC, Québec, Québec G1M 0E6 » → sans doublons), description (+ NOUVEAU section « Promotion » en tête quand présente), services de l'immeuble (ul), photos DATA/PHOTO - Tableau `#tableModele` (NOUVEAU parsing par classes de colonnes colType/colModele/colPrix au lieu d'un balayage positionnel) : type, nom du modèle (« 1 chambre + bureau », intégré au titre), prix « à partir de » - availability : NOUVEAU — « Disponible » pour les modèles offerts (tableau « Modèles disponibles ») ; les modèles marqués « Pas disponible » ou « Liste d'attente » sont EXCLUS (avant : listés avec prix comme s'ils étaient offerts) - details.contact : NOUVEAU — téléphone et courriel de l'immeuble (liens tel:/mailto: de « Personne(s) à contacter », en excluant le pied de page corporatif info@cogir.net / 1-866 ; les mailto « %20… » sont décodés) - Penthouses : NOUVEAU — lignes « Penthouse » du tableau désormais admises ## Champs indisponibles à la source - Superficies (aucun pi² sur les fiches), dates précises de disponibilité (juste offert / pas disponible / liste d'attente) - Animaux, meublé, étage ; inventaire unité par unité (une annonce = un modèle) - GPS (la carte est chargée en JS sans coordonnées lisibles dans le HTML) ## Fragilités - CORRIGÉ mais à surveiller : deux modèles du même type (ex. « 3 1/2 » et « 3 1/2 + den ») produisaient le même external_id → une annonce en écrasait une autre (288 trouvées / 270 stockées). Le premier modèle garde l'uid historique `{id}-{type}` ; les suivants reçoivent `{id}-{type}-{slug modèle}`. Si l'ORDRE des lignes du tableau change chez Cogir, l'uid de base peut « glisser » d'un modèle à l'autre (prix mis à jour, pas de doublon) - ~100 fiches immeuble re-crawlées à chaque sync (~90 s à 0,6 s/req). Le cache `self.detail()` est INAPPLICABLE proprement : la page liste ne porte ni prix ni modèles (seulement nom/adresse/photo), donc aucune clé de contenu ne peut détecter un changement de prix — un cache figerait les loyers. Pas de visites additionnelles ajoutées par cette passe - Sélecteurs dépendants du gabarit maison (`p.adresse`, `#tableModele`, h2 littéraux « Description », « Services dans l'immeuble », « Promotion ») - Certains immeubles mettent « À partir de » dans la colonne Modèle (géré) ; colonnes parfois vides - L'exclusion aînés/étudiantes repose sur une regex sur le nom/description — un changement de vocabulaire (« résidence services ») passerait au travers ## Améliorations apportées - Exclusion des modèles « Pas disponible » / « Liste d'attente » (annonces fantômes avant) - availability = « Disponible » sur les modèles offerts (avant : 100 % des annonces sans disponibilité) - Fin des collisions d'uid : 13 modèles ré-apparus (dont « + den », 2e modèles) + penthouses admis - Titre enrichi du nom de modèle ; prix du BON modèle sur l'uid historique (avant : le dernier modèle du tableau écrasait le premier) - Adresse dédupliquée ; promotion en tête de description ; contact structuré par immeuble (94 % des annonces) - 2026-08-08 — Expansion provinciale (lot 0) : slugs Outaouais ajoutés à `_GM_SLUGS` (`gatineau`, `hull`, `aylmer` → ville « Gatineau », secteur Hull/Aylmer le cas échéant). +7 annonces Gatineau : Le Vibe (6 modèles 3½–5½, 1 544 $–2 750 $) et Bloome Appartements (fiche immeuble, tableau de modèles vide actuellement). Les slugs `ottawa` restent exclus (Ontario). 283 → 290 annonces. Fixture réenregistrée, 2 tests verts. ## Échantillon avant/après **L'Aventura Condos Locatifs — 3½** (uid cogir:2677-3) — avant : `1789.0 | 3½ | (dispo vide) | ∅ | area=∅ | pets=∅ | {"ac": true, "balcony": true, "pool": true, "gym": true, "parking": {…}, "price_from": true} | 1769 Rue Careau, Québec, QC, Québec, Québec G1M 0E6` (titre sans modèle ; le prix affiché était celui du « 3 1/2 + den » qui écrasait le « 3 1/2 ») après : `1496.0 | 3½ | Disponible | now | area=∅ | pets=∅ | {…, "contact": {"phone": "418-254-2588", "email": "infolaventura@cogir.net"}} | 1769 Rue Careau, Québec, QC, Québec G1M 0E6` — titre « — 3½ (1 chambre) » ; le « + den » est maintenant sa propre annonce (cogir:2677-3-1-chambre-bureau, 1789 $) **L'Aventura — 5½** — avant : listé à 2659 $ alors que la fiche indique « Pas disponible » après : retiré (désactivé après le délai de grâce)