SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.2 KB · 38 lines markdown
Rendered Raw Blame History
1# oklouer — OK Louer (appartements meublés temporaires, Québec)2- site: https://www.oklouer.com/logements/<secteur> (haute-ville, centre-ville, limoilou, charlesbourg-beauport) + fiches d'unités3- méthode: html4- annonces: 41 → 415- couverture après (sur 41 annonces): prix 100%, adresse 100%, dispo 0%, superficie 0%, commodités 100%6- fixture: ok · test: ok78## Champs extraits9- Adresse : `h3.unit-address` de la fiche (repli : `h3` de la carte de secteur) — plus robuste que l'ancienne regex sur le texte brut.10- Prix : `div.price` de la fiche ("À partir de 75$/jour ou 1100$/mois") — prix mensuel extrait, `price_label` original conservé.11- Type d'unité : `li.nb-pieces` du `ul.icon-list` (repli : slug de l'URL).12- **lat/lng (nouveau)** : attributs `data-lat`/`data-lng` des cartes `div.unit` des pages de secteurs — 41/41 géolocalisées.13- **Commodités (nouveau)** : icônes structurées `ul.icon-list` — nombre de lits (`ico-bed`), chambres (`ico-bedroom`), salles de bain (`ico-bathroom`), "Animaux permis" (`ico-paws`, tooltip), "Avec air climatisé sur demande" (`ico-clim`, tooltip) + "Meublé". → pets="oui" dérivé sur 23/41, ac dérivé, furnished=true.14- Images : galerie `/uploads/m/` (inchangé).1516## Champs indisponibles à la source17- Disponibilité : jamais affichée (locations temporaires, disponibilité au téléphone).18- Superficie : jamais affichée.19- Description d'unité : la fiche ne contient qu'un texte boilerplate sur le quartier (identique pour toutes les unités du secteur) — non repris pour éviter de polluer les annonces.2021## Fragilités22- Le prix mensuel dépend du motif "…$/mois" dans `div.price` ; si le site n'affichait qu'un prix/jour (<100 $), price resterait None (comportement voulu, pas d'invention).23- Les tooltips `title` des icônes sont en français et pourraient changer de libellé.24- 41 fiches visitées à chaque sync (~28 s) — nécessaire car le prix n'apparaît que sur la fiche ; pas de signal de changement exploitable sur les cartes pour un cache `self.detail`.2526## Améliorations apportées27- Découverte par cartes structurées `div.logements div.unit` (au lieu d'une regex sur tous les hrefs) : adresse, lat/lng, icônes récupérés dès la liste.28- Ajout lat/lng (100%), commodités par icônes (lits/chambres/sdb/animaux/clim), pets dérivé "oui" quand `ico-paws` présent.29- `price_label` nettoyé (astérisque retiré, extrait de `div.price` plutôt que du texte complet de la page).30- Adresse extraite de `h3.unit-address` (fini la regex fragile avec préfixe "2 1/2 dans Limoilou").3132## Échantillon avant/après33- Avant : `2½ — 305 Rue Caron… | 1350 | 2½ | dispo="" | area=None | pets=None | details={"furnished": true, "price_from": true} | amenities=["Meublé"] | lat=None`34- Après : `2½ — 305 Rue Caron… | 1350 | 2½ | dispo="" | area=None | details={"ac": true, "furnished": true, "price_from": true} | amenities=["1 lit","1 salle de bain","Avec air climatisé sur demande","Meublé"] | lat=46.8142, lng=-71.2294` ; unités avec `ico-paws` → pets="oui" (23/41).3536## Note de normalisation (générique)37- "Avec air climatisé **sur demande**" met `ac=true` via la règle `climatis``_NEUTRAL_RE` ne neutralise "sur demande" que pour les électroménagers, pas pour la climatisation.38