spb/lou-ka Public
Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 99.7%
1# urban_services — Urban Services (Urban Tenant Solutions)2- site: https://rent.urbanservices.ca/Listing/Listings (vitrine : https://urbanservices.ca)3- méthode: html + JSON embarqué (portail Building Stack)4- annonces: 53 (unités disponibles, 16 immeubles — Gatineau seulement)5- couverture (sur 53 annonces): prix 100%, adresse 100%, dispo 98%, superficie 74%, commodités 70%, images 100%, GPS 100%6- fixture: ok · test: ok78## Champs extraits9- Portail **Building Stack** — même famille que le volet edifialocation.com du connecteur edifia.py, sélecteurs identiques :10 - `/Listing/Listings` embarque `var units = [...]` (une entrée par appartement annoncé : prix structuré + `PriceFormatted`, pi², chambres/sdb, adresse complète avec code postal, **GPS**, contact de l'immeuble (`ListingEmployeesContacts` -> `details.contact` nom/téléphone/courriel), photo d'unité et d'immeuble) ;11 - pages immeuble `/b/<id>` (16 requêtes/sync, garde-fou `max_buildings=40`) : onglets `a.apartment-view-potential` = **inventaire complet** (numéro, prix, pi², chambres, sdb, date de disponibilité : « Disponible dès maintenant! », « oct. 01, 2027 » -> « Libre oct. 01, 2027 ») + commodités `.facilities` (« Ascenseur », « Stationnement intérieur »).12- **La page /b/<id> fait foi pour l'inventaire** : le JSON de la liste est tronqué pour les immeubles à fort inventaire (ex. 19-21 Patrimoine : 8 entrées JSON pour 30 unités affichées sur /b/…). Le connecteur croise les deux : onglets = lignes, JSON = enrichissement (GPS, contact, prix structuré, photo, URL profonde `/b/<id>/<apartmentId>`).13- Filtre provincial : `Address.Province.ProvinceCode == QC` (11 unités d'Ottawa exclues).14- `unit_type` : convention Building Stack (comme edifia) — 0 chambre -> Studio, n chambres -> (n+2)½.15- `external_id` = `<id public immeuble>-<numéro d'unité>` — stable.16- Le JSON Razor encode les apostrophes (`'`) : `html.unescape` sur adresse/ville/nom d'immeuble.1718## Champs indisponibles à la source19- Description : le portail n'a pas de texte descriptif par immeuble/unité (champ synthétique pi²/chambres/sdb seulement).20- Commodités : absentes pour 5/16 immeubles (`.facilities` vide).21- Superficie : « -- » pour 14/53 unités.22- Disponibilité : 1 unité présente dans le JSON mais absente des onglets -> dispo laissée vide (jamais inventée).2324## Fragilités25- Sélecteurs Building Stack (`var units = `, `ul.wpb-tabs-menu a.apartment-view-potential`, `.facilities`) : partagés avec edifia — toute casse touchera les deux (et inversement, un correctif servira aux deux).26- Position des `span` dans les onglets (0=unité, 1=prix, 2=pi², 3=chambres, 4=sdb, 5=dispo) : implicite, comme edifia.27- Les unités « 0 chambre / 0 sdb / -- pi² » (ex. 202-204 St-Rédempteur à 700 $) sont typées Studio par la convention Building Stack — possiblement des chambres.2829## Notes30- 53 unités disponibles (700 $–4 800 $) dans 16 immeubles, toutes à Gatineau (secteurs Hull, Aylmer, Plateau…) ; certaines dispos lointaines (2027-2028) publiées par la source et conservées telles quelles.31- robots.txt de rent.urbanservices.ca : vide (aucune interdiction).32- Premier connecteur « portail Building Stack pur » hors edifia — patron réutilisable (Gestion Summum, etc.).33