SPB Git forge

spb/lou-ka

Public

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

232commits 1branches 0releases
172.9 MBsize
maindefault branch
2 days agolast push
HTML 98.9% Python 0.6%
6.0 KB

# Groupe Heafey (Le We 2, Le We 3, Loggia sur le Parc) — connecteur heafey

Fiche générée automatiquement par scripts/gen_connector_docs.py le 2026-09-04 14:12 — ne pas éditer à la main, régénérer.

État : actif · Région : Outaouais · Backend : direct · Annonces actives : 252/272

# Description de la source

connecteur Groupe Heafey (Gatineau, secteur Hull) Le résidentiel du groupe vit sur un micro-site WordPress par projet, comme Immostar (immostar.py) : - Le We 2 et Le We 3 (lewe2.ca) -> sélecteur d'unités « Resimo » - Loggia sur le Parc (loggiasurleparc.com) -> même sélecteur Resimo La page /plans/ de chaque site intègre en iframe l'application Resimo (allinone-corsim-*.prod.resimo.io) dont la configuration publique donne l'URL d'inventaire, le jeton d'intégration et la liste des immeubles ; cet endpoint renvoie un JSON par immeuble : n° d'unité, superficie (pi²), nombre de chambres, statut (available / reserved / sold) et, avec additional_fields, le plan d'étage (pdf_url) et le lien de location. La découverte se fait à chaque sync (aucun jeton codé en dur) : 1 requête /plans/ + 1 requête app + 1 requête inventaire par site. Une annonce = une unité DISPONIBLE. Le paramètre Resimo showPrice est à false sur les trois projets, mais le PRIX PAR UNITÉ est publié par le back-office DashQ : le web_url de chaque unité pointe vers myapartment.rent (SPA DashQ) avec bpi = identifiant public de l'immeuble ; l'API publique de cette SPA (webapi.myapartment.rent /api/rental-application-request/getRentalRequestListing?publicIdentifier= ) renvoie TOUTES les unités offertes : loyer (unitPrice), salles de bain, date de disponibilité (madeReadyDate), adresse civique exacte et code postal (c'est ainsi qu'on apprend l'adresse du We 3 : 82, rue Saint-Rédempteur). 1 requête DashQ par immeuble (3 au total), fusionnée par numéro d'unité. Une unité absente de DashQ reste sans prix — rien n'est inventé. GPS : non publié par la source (l'adresse civique propre alimente le géocodeur maison).

# Accès

  • Type d'accès : API JSON interne du site
  • Endpoint de base : https://lewe2.ca/
  • URLs de départ (constantes du module) : https://lewe2.ca/ · https://loggiasurleparc.com/ · https://[a-z0-9.-]*resimo · https://webapi.myapartment.rent/api/
  • Authentification : aucune — contenu public
  • Pagination : page de liste unique (pas de pagination)
  • Backend anti-bot / rendu : requests direct (session UA LouKaBot, throttling poli)
  • Politesse : 0.6 s entre requêtes, timeout 30 s, User-Agent identifiable LouKaBot/1.0 (+https://www.lou-ka.com/bot)

# Champs récupérés → schéma cible

Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table listings. Complétude mesurée en SQL sur les 252 annonces actives ; exemple tiré d'une ligne réelle de la BD.

Colonne listings Contenu Renseignée (actives) Exemple réel
title Titre de l'annonce 100 % Le We 2 — Unité 0418
address Adresse civique 100 % 45, rue Eddy, Gatineau, QC J8X 2V8
city Ville (normalisée) 100 % Gatineau
sector Secteur / quartier 100 % Hull
unit_type Type d'unité (3½, 4½…) 100 % 4½
price Loyer mensuel ($) 100 % 2 650 $
bedrooms Chambres 100 % 2
bathrooms Salles de bain 100 % 1
area_sqft Superficie (pi²) 100 % 1055
availability_date Date de disponibilité 100 % 2026-10-15
lat GPS (lat/lng) 100 % 45.4264562
description Description 100 % 2 chambre(s) — 1055 pi² — Le We 2
images Photos (JSON) 100 % 11 photo(s) — https://dashqblobstorage.blob.core.windows.net/dq-building-photos/heafey/fl…
amenities Commodités (JSON) 100 % ["5 électroménagers", "Internet", "chauffage", "électricité", "air climatisé central", "e…
details Détails additionnels (JSON) 100 % {"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true…
url URL de l'annonce source 100 % https://lewe2.ca/plans/#unite-0418

# Fréquence & budget

  • Cadence observée (médiane des passages OK, sync_log) : ≈ 3.4 h
  • Dernier passage OK : 2026-09-04 13:44 — 252 trouvées, +0 / ~0 / -0
  • Throttling : 0.6 s entre requêtes (constante de classe request_delay)
  • Cache des pages détail (BD detail_cache) : activé — évite de re-visiter les fiches inchangées

# Volumétrie & complétude

  • Annonces en BD : 272 au total, 252 actives
  • Première ingestion : 2026-08-09 · Dernière observation : 2026-09-04
  • Complétude clé (actives) : GPS 100 % · prix 100 % · photos 100 % · description 100 %
  • Runs journalisés (60 derniers) : 60, dont 0 en erreur

# Erreurs connues & dépannage

Aucune erreur dans les 60 derniers runs journalisés.

Rejouer la source seule : python3 run.py sync heafey · vérifier ensuite sync_log (SELECT * FROM sync_log WHERE source='heafey' ORDER BY ts DESC LIMIT 5;).

# Licence, attribution & conditions

  • Scraping poli d'annonces publiques (données factuelles : prix, adresse, disponibilité) publiées par le gestionnaire sur son propre site.
  • User-Agent identifiable avec page d'information et contact : LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai) ; throttling 0.6 s ; cache détail pour minimiser les requêtes.
  • Chaque annonce affichée sur Lou-Ka pointe vers l'annonce d'origine (colonne url) — la source garde le trafic de conversion.
  • Retrait sur demande : contact@spboucher.ai.

# Historique

  • 2026-08-09 — premières annonces de la source ingérées dans la BD.
  • 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par scripts/gen_connector_docs.py).