SPB Git

spb/lou-ka Public

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

HTML 99.7%
4.0 KB

# beaudoin — Société Beaudoin immobilier

# Champs extraits

  • API REST /wp-json/wp/v2/properties (déjà en place) : id, titre, lien, prix (fave_property_price + postfix), adresse géocodée (fave_property_map_address), lat/lng, type d'unité (taxonomie property_type), disponibilité (taxonomie property_status), ville/secteur (taxonomie property_city), description (content), galerie (fave_property_images → /media).
  • Nouveaux champs de la même API :
    • additional_features (PHP sérialisé, paires titre/valeur) → amenities : « Eau chaude incluse », « Cuisinière incluse », « Réfrigérateur inclus », « Lave-vaisselle inclus », « Air climatisé inclus », « Espace de rangement inclus », « Chiens et chats acceptés », « Buanderie sur place » — la normalisation centrale en dérive inclusions/appliances/ac/storage/pets ;
    • fave_property_size (+ préfixe « Pieds carrés ») → area_sqft structuré (67 % des annonces l'ont à la source) ;
    • fave_property_bedrooms / fave_property_bathrooms → amenities « N chambres », « N salle(s) de bain ».

# Champs indisponibles à la source

  • Superficie absente sur 4/12 propriétés (champ vide chez Houzez).
  • Meublé, fumeur, stationnement (type/prix) : non renseignés.
  • Contact agent : les posts houzez_agent n'ont pas de route REST (rest_no_route) — seuls les courriels présents dans la description sont récupérés par la normalisation.
  • Taxonomie property_feature : vide sur toutes les propriétés actuelles (le gestionnaire utilise plutôt additional_features).

# Fragilités

  • additional_features est du PHP sérialisé parsé par regex : des guillemets échappés dans un libellé pourraient fausser le découpage (le parseur tolère \").
  • La disponibilité vient d'une taxonomie de type « 08 - Disponible pour août » : le préfixe numérique est retiré, la normalisation centrale parse le reste.
  • L'API est sous /index.php/wp-json/... (permaliens non réécrits) — si le site active la réécriture, l'URL changera.
  • Filtre Grand Montréal par liste blanche de villes : à maintenir si le gestionnaire ajoute des secteurs.
  • Lacune générique de normalisation constatée : « Chiens et chats acceptés » est classé pets="conditions" (via le motif « chats acceptés » de _PETS_COND_RE) alors que « oui » serait plus juste — à corriger dans normalize.py, pas localement.

# Améliorations apportées

  • Extraction des « caractéristiques additionnelles » Houzez (inclusions, électroménagers, climatisation, animaux, buanderie) : commodités passent de 0 % à 100 %.
  • Superficie structurée (fave_property_size) : 0 % → 67 % (le reste est vide à la source).
  • Chambres / salles de bain ajoutées aux commodités affichables.

# Échantillon avant/après

Grand 5 1/2 au Bois de Champbellé – 525 Saint-Charles O (2235 $, 5½, dispo maintenant)

  • avant : area_sqft=None, amenities=[], details={"pool": true, "storage": true}
  • après : area_sqft=1250, amenities=["Eau chaude incluse", "Cuisinière incluse", "Réfrigérateur inclus", "Lave-vaisselle inclus", "Air climatisé inclus", "Espace de rangement inclus", "3 chambres", "2 salles de bain"], details={"inclusions": {"hot_water": true}, "appliances": {"fridge": true, "stove": true, "dishwasher": true}, "ac": true, "pool": true, "storage": true}

5 1/2 Penthouse au Carignan – 475 Saint-Charles O (3015 $, 5½)

  • avant : area_sqft=None, amenities=[], details={"balcony": true, "pool": true}
  • après : area_sqft=1710, amenities=8 items, details={"inclusions": {"hot_water": true}, "appliances": {"fridge": true, "stove": true, "dishwasher": true}, "ac": true, "balcony": true, "pool": true, "storage": true}