SPB Git forge

spb/immo-ka

Public

Immo-Ka — agrégateur des propriétés à vendre au Québec (73 connecteurs, ~40 000 annonces, React+FastAPI)

112commits 1branches 0releases
125.4 MBsize
maindefault branch
13 days agolast push
Python 47.5% HTML 27.9% TypeScript 15.5% CSS 7.2% JavaScript 2%
4.3 KB

# eXp Agence immobilière (Québec) (exp_ag_qc)

Généré le 2026-08-28 22:22 par scripts/gen_connector_docs.py — fichier produit automatiquement, ne pas éditer à la main.

# Registre (data/sources.json)

Site officiel eXp QC (expquebec.com, WordPress + MW Properties). API cliente marketingwebsites.ca bloquée (whitelist IP) MAIS inventaire complet en SSR sur /fr/properties/?pages=N (9/page, param 'pages', stop après 3 pages vides). Carte: data-href mls={Centris}, data-price ($US), data-address, data-pic. Fiche détail /fr/properties/mls/{Centris}/ server-rendered et riche: galerie complète pleine résolution (ancres data-lightbox), remarque+addendum, inclusions/exclusions, icônes (CAC/SDB/superficie MC|PC/année), tables BÂTIMENT/ÉVALUATION/DÉPENSES/CARACTÉRISTIQUES, pièces, GPS exact (embed Street View), courtier+tél. Enrich plafonné IMMOKA_EXP_DETAIL_LIMIT (400/cycle) + cache BD; repli ville via map-property.php (IMMOKA_EXP_CITY_LIMIT). source_id ag = dédup Centris.

# Mécanique (introspection du code)

  • Module : immoka/connectors/exp_quebec.py — classe ExpQuebecConnector
  • Délai entre requêtes : 0.4 s ; cache détail BD : oui
  • Budgets env (enrichissement détail plafonné/exécution) : IMMOKA_EXP_DETAIL_LIMIT (défaut 400), IMMOKA_EXP_CITY_LIMIT (défaut 1200)

En-tête du module :

Immo-Ka — Agrégateur de maisons à vendre (province de Québec) Auteur : Simon-Pierre Boucher — contact@spboucher.ai connectors/exp_quebec.py : eXp Realty Québec (expquebec.com) — toute la province. L'API cliente realestate.marketingwebsites.ca/api.php est verrouillée par whitelist IP (impasse, même via proxy). MAIS le serveur WordPress (autorisé sur l'API) rend l'inventaire COMPLET côté serveur sur /fr/properties/?pages={N} (9 fiches/page, param « pages » uniquement). Chaque carte porte data-href /fr/properties/mls/{MLS}, data-price ($US), data-address (rue) et data-pic (property-images/{MLS}/). Le n° MLS = n° Centris. FICHE DÉTAIL /fr/properties/mls/{MLS}/ : server-rendered elle aussi (requêtes directes, aucun anti-bot) et TRÈS riche — galerie complète en pleine résolution (~1728px, ancres data-lightbox="gallery-item"), remarque du courtier + addendum, inclusions/exclusions, icônes (chambres/sdb/ superficie MC|PC/année), tables th/td par section (BÂTIMENT, ÉVALUATION, DÉPENSES, CARACTÉRISTIQUES, DÉTAILS DE PIÈCE), GPS exact dans l'embed Street View, courtier inscripteur (photo alt + tel: du bloc latéral). Enrichissement via _detailutil.enrich (cache BD + plafond IMMOKA_EXP_DETAIL_LIMIT, ~400/cycle). La VILLE vient de la fiche détail (en-tête h2) ; repli sur l'endpoint SSR /wp-content/themes/canvas/load/map-property.php?mls={MLS}&lang=fr pour les fiches au-delà du budget détail (cache « city » déjà peuplé). ⚠ PLAFOND : le SSR reflète le limit=1000 de l'API sous-jacente → au plus ~1000 fiches (pages 1..~114, crawl vérifié). C'est l'inventaire pratique complet ; si eXp QC dépasse un jour 1000 inscriptions, segmenter par région (params MW_region / MW_q du formulaire), chaque segment ayant son propre cap. source_id « exp_ag_qc » : infixe ag = dédup Centris (db.refresh_dedup) — les fiches co-listées avec une bannière couverte sont masquées.

# Volumétrie & complétude (BD live)

Indicateur Valeur
Annonces en base (toutes) 1 163
Actives 1 008
Visibles (après dédup) 892
Masquées par la dédup 116
GPS (lat/lng) 99.9 %
Photos 100.0 %
Prix 99.8 %
CAC (chambres) 90.7 %
SDB (salles de bains) 89.2 %
Année de construction 89.9 % (dont rôle : 2.2 %)
Taxes / évaluation municipale 100.0 %
Estimation Vrai-Prix (rôle) 99.0 %

# Synchronisation

  • Dernier sync : 2026-08-28 22:17 — trouvé 1 000, +8 / ~10 / -0 — OK
  • Erreurs récentes : 0 sur les 10 derniers syncs

Voir aussi les mécanismes transverses (budgets détail, dédup Centris+adresse, jointure rôle vraiprix.db).