SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
3.8 KB · 40 lines markdown
Rendered Raw Blame History
1# metcap — MetCap Living2- site: https://www.metcap.com/province/quebec?lang=en (villes QC -> /province-search-results -> fiches /apartment/ et /property/)3- méthode: html4- annonces: 8 → 85- couverture après (sur 8 annonces): prix 100%, adresse 100%, dispo 100%, superficie 88%, commodités 100%6- fixture: ok · test: ok78## Champs extraits9- Prix « from $X » (price + price_label « À partir de »), type d'unité (bachelor/1-4 bed), adresse civique complète (H2 de la carte immeuble).10- lat/lng structurés depuis l'attribut `onclick="centerMap(..., {lat, lon})"` de la page liste (nouveau).11- Tableau « Suite Details » de la fiche unité : statut (Available/Waiting List/Rented -> Disponible/Liste d'attente/Loué), superficie structurée (area_sqft), lits/sdb (dans la description).12- Listes structurées de la barre latérale : « Building Amenities » + « Rent Includes » -> amenities brutes ; « Rent Includes » -> details.inclusions{heating, electricity, hot_water…} explicites ; « Pet Friendly » Yes/No -> pets « oui »/« non ».13- Contact du bureau de location (téléphone + courriel) -> details.contact.14- Description anglaise de la fiche (avant le disclaimer), intersection, photos d'unité (data-bg) avec repli sur la galerie de la fiche immeuble.1516## Champs indisponibles à la source17- Date de disponibilité précise (seulement un statut Available/Waiting List).18- Meublé, étage, année de construction. Superficie absente pour certaines unités (ex. Rue Porier 3 Bedroom : colonne Sq. Ft vide à la source).19- « Water » (eau froide) dans Rent Includes n'a pas de clé canonique Lou-Ka — ignoré volontairement.2021## Fragilités22- Villes filtrées par liste blanche _GM_CITIES (REIT pancanadien) : une nouvelle ville QC hors liste serait ignorée.23- Parsing dépendant des classes WordPress (.province-results__item, table.table-listing, h2 de sidebar).24- Prix « from $ » = prix plancher par type d'unité ; plusieurs suites physiques partagent la même annonce.2526## Améliorations apportées27- Fiches unité désormais visitées via self.detail(...) (cache BD, clé = hash de la carte liste) + plafond de 150 vraies requêtes/sync (_CapAtteint) ; galerie immeuble aussi mise en cache (`property:<path>`).28- Extraction structurée : tableau Suite Details (statut, pi², lits/sdb), Building Amenities, Rent Includes (-> inclusions), Pet Friendly (-> pets), contact, photos de l'unité, lat/lng de la liste.29- Availability désormais remplie systématiquement depuis le statut du tableau (avant : regex fragile sur texte aplati, 1/8 vide).30- Description extraite proprement du bloc <h2>Description</h2> (avant : fenêtre regex 40-600 caractères).3132## Échantillon avant/après33- Avant : « Tour du Parc — Montreal Studio (Bachelor) » — 1219 $, Studio, dispo « Disponible », 336 pi² (dérivé du texte), pets NULL, details `{"price_from": true}`, amenities [], pas de lat/lng.34- Après : même annonce — 1219 $, Studio, « Disponible », 336 pi² (structuré du tableau), pets « oui », details `{"inclusions": {"heating": true, "electricity": true}, "elevator": true, "gym": true, "storage": true, "parking": {"available": true}, "contact": {"phone": "438-793-8796", "email": "leasing-1150sherbrooke@metcap.com"}, ...}`, 13 amenities, lat 45.5220, lng -73.5653.3536## Lacunes génériques de normalisation observées37- « On-Site Laundry Facilities » ne matche pas la règle laundry (motifs : buanderie|salle de lavage|laundry room) — « laundry facilities » manquant.38- « Rooftop Terrace » (anglais) ne matche pas la règle balcony (motifs : balcon|terrasse|patio|loggia) — « terrace » manquant.39- « Heat » / « Hydro » seuls (listes d'inclusions anglaises) ne matchent pas heating/electricity — contourné ici par des inclusions structurées car la source les expose dans une liste dédiée « Rent Includes ».40