spb/lou-ka Public
Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 99.7%
1# app_urbains — Appartements Urbains2- site: https://www.appartementsurbains.ca/projets-residentiels/ (+ micro-sites projets : lecharlie.ca, condosarchipel.ca, quartiercartier.ca, …)3- méthode: html (micro-sites)4- annonces: 17 → 16 (une unité retirée par la source entre les deux syncs)5- couverture après (sur 16 annonces): prix 100%, adresse 100%, dispo 44%, superficie 100%, commodités 100%6- fixture: ok · test: ok (2 passed)78## Champs extraits9- **Menu / page projets** : nom du projet + quartier (Montcalm, Limoilou, Ste-Foy, Loretteville, Lévis).10- **Page projet (micro-site WordPress/Oxygen, suivie via redirection 301)** :11 - tableau « unités disponibles » : n° d'unité, type (3½…), prix, disponibilité (« Maintenant », « 1er juillet »), **superficie** (colonne « Superficie (pi²) », nouvelle extraction → texte brut `« 915 pi² »` dans amenities, finalize() dérive area_sqft) ;12 - adresse civique : en priorité la carte wpgb du projet lui-même (corrige Le Charlie qui héritait de l'adresse du Centre Vidéotron), sinon 1re adresse de la page ;13 - commodités : blocs « avantages » des deux générations de gabarits (`.listing-avantages h4` pour Archipel/Quartier Cartier + `span.ct-span` pour Le Charlie) ;14 - téléphone du projet (lien `tel:` structuré, décodé) → `details.contact.phone` ;15 - description (og:description), photos (wp-content/uploads).1617## Champs indisponibles à la source18- Animaux/inclusions par unité : seulement au niveau projet, en texte libre (« Animaux permis-20lbs ») — dérivés par la normalisation centrale.19- Disponibilité pour L'Archipel : le tableau n'a pas de colonne « Disponibilité » (les unités listées sont implicitement disponibles) — laissé vide, aucune valeur inventée.20- Superficie du balcon, plan PDF, étage : affichés uniquement dans un visualiseur interactif JS (admin-ajax + nonce), non accessibles statiquement.21- Le Zircon / Les Ormes / Quartier Cartier : « Aucune unité disponible » actuellement (0 annonce, normal).2223## Fragilités24- Chaque projet redirige (301) vers son propre micro-site (domaines différents) : la structure des tableaux varie (« Disponibilité … Superficie » vs « Type … Superficie »).25- Sélecteurs Oxygen (`c-full-width flex-row`, `.listing-avantages`) propres au gabarit TactikMedia — cassables à la refonte.26- La page liste imprime des warnings PHP dans le HTML (« Undefined variable $post ») — le parsing des noms de projets doit rester tolérant.27- Le détail par unité (`/unites/?_unite=N`) est un viewer JS avec nonce WP : ne pas essayer de le scraper.28- Le CPT WordPress `unites` est exposé via /wp-json/ mais sans champs ACF (`acf: []`) — inutilisable.2930## Améliorations apportées31- Superficie par unité extraite du tableau (0 % → 100 % de couverture area_sqft).32- Adresse du projet corrigée (carte wpgb du projet prioritaire — Le Charlie passait de « 250 Bd Wilfrid-Hamel » à « 1385 Rue Monseigneur-Plessis »).33- Commodités désormais extraites sur les micro-sites récents (`.listing-avantages h4`) : Archipel et autres passent de 0 à ~12 commodités.34- Téléphone de contact (`tel:`) ajouté dans `details.contact.phone`.3536## Échantillon avant/après37**L'Archipel — unité 120** (1810 $, 4½)38- avant : area_sqft=None, amenities=[], details=`{}`, address=`7070 Bd Guillaume-Couture, Lévis…`39- après : area_sqft=1241, amenities=["Béton pour une insonorisation optimale", "2 ascenseurs", "Chute à déchets", …, "1241 pi²"], details=`{"inclusions": {"heating": true}, "ac": true, "elevator": true, "balcony": true, "pool": true, "gym": true, "contact": {"phone": "418-717-2105"}}`4041**Le Charlie — unité 504** (1630 $, 3½, dispo Maintenant)42- avant : area_sqft=None, address=`250 Bd Wilfrid-Hamel, Québec, QC G1L 5A7` (adresse du Centre Vidéotron !)43- après : area_sqft=915, address=`1385 Rue Monseigneur-Plessis, Québec, QC`, details enrichi de `"contact": {"phone": "418-717-2105"}`44