SPB Git

spb/lou-ka Public

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

HTML 99.7%
3.2 KB

# headway — La Corporation Headway

  • site: https://www.headwayltee.com (4 pages : /logements-a-louer/appartement-quebec, /ste-foy, /logements-a-louer/appartement-charlesbourg, /logements-a-louer/levis)
  • méthode: html
  • annonces: 7 → 7
  • couverture après (sur 7 annonces): prix 0%, adresse 100%, dispo 100%, superficie 0%, commodités 100%
  • fixture: ok · test: ok

# Champs extraits

  • title, address (bureau de location du complexe), sector, city
  • amenities par complexe (« Services disponibles » de chaque section, plus de bloc partagé)
  • description : paragraphe du complexe + « Composition de l'immeuble : … » + « À moins de 5 minutes à pied : … » (commerces à proximité)
  • details.contact.phone : téléphone du bureau de location de CHAQUE complexe (champ libellé « Numéro de téléphone : » sur la page)
  • unit_type quand la composition ne compte qu'un seul type ; images (wixstatic pleine résolution, filtrées par alt)
  • inclusions/parking/pool/laundry/storage/elevator dérivés par finalize() depuis les amenities

# Champs indisponibles à la source

  • prix : jamais affiché (location par téléphone uniquement)
  • disponibilité réelle : aucune liste d'unités disponibles (texte générique « Sur demande »)
  • superficie, pets, meublé, lat/lng : absents du site
  • une annonce = un complexe immobilier, pas une unité (site vitrine Wix sans inventaire)

# Fragilités

  • Parsing positionnel de segments de texte Wix (>texte<) : un re-design du site casserait l'extraction ; le test de fixture le détectera
  • L'association section→complexe repose sur l'ordre des titres dans la page (dernière occurrence exacte du nom)
  • Curé-Pelletier partage l'adresse et le téléphone du bureau de Thibault (c'est ce que la source affiche)

# Améliorations apportées

  • Filtre des segments CSS/JS inlinés par Wix ({/}) : la description de Place Prévert était du JavaScript brut, et un sélecteur CSS #comp-… {fill:…} polluait les amenities
  • Amenities par complexe (bornées à la section du complexe) au lieu du premier bloc de la page ; Thibault et Curé-Pelletier passaient de 0 amenity (le break À moins de matchait une phrase d'intro) à 7
  • Complexe Renaissance : récupère l'item « l'inclusion du chauffage, de l'électricité et de l'eau chaude » (avant tronqué par la limite de 60 caractères) et ne capte plus le titre « Accès facile » comme amenity
  • Nouveau : details.contact.phone par complexe (structuré à la source, libellé dédié)
  • Nouveau : liste des commerces « À moins de 5 minutes à pied » ajoutée à la description
  • Description bornée à la section du complexe (ne déborde plus sur le complexe suivant)

# Échantillon avant/après

  • Place Prévert AVANT : description=if (typeof Promise === 'undefined' || … (JS), amenities avec #comp-ljwpi06b svg [data-color="1"] {fill: #525661;}, details sans contact
  • Place Prévert APRÈS : description=Composition de l'immeuble : 1½, 2½, 3½, 4½. À moins de 5 minutes à pied : Arrêts d'autobus, Banque/caisse, École primaire…, 9 amenities propres, details.contact.phone=418-527-9873
  • Thibault AVANT : amenities=[] · APRÈS : 7 amenities (« Chauffé, éclairé et eau chaude fournie », …), inclusions{heating,electricity,hot_water}=true, phone 418-833-4333