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.6 KB

# Realtor.ca (MLS Québec) (realtor_ag_ca)

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)

API interne api2.realtor.ca/Listing.svc/PropertySearch_Post (POST form). Protégée DataDome/Incapsula : accès direct = 403, mais REJOUABLE via Scrapfly ASP SANS render_js (vérifié 2026-08-18) → JSON riche : MLS, GPS, prix, CAC/SDB, superficie, photos, courtier+agence. 200 fiches/page, plafond serveur 600/recherche → sharding par 14 boîtes lat/lng QC, tri plus récentes d'abord (Sort=6-D). Budget borné IMMOKA_REALTOR_MAX (défaut 2 000 fiches/sync ≈ 10 appels Scrapfly — les ~10 shards les plus denses ; augmenter pour couvrir les régions éloignées ; 0 = désactivé). external_id = n° MLS Centris + infixe ag → la dédup masque tout recoupement avec les connecteurs directs ; seules les fiches des bannières non couvertes restent visibles. Fenêtre glissante : les fiches anciennes sortent du budget au fil des syncs (miss_count → inactif).

# Mécanique (introspection du code)

  • Module : immoka/connectors/realtor_ca.py — classe RealtorCaConnector
  • Délai entre requêtes : 0.2 s ; cache détail BD : oui
  • Budgets env (enrichissement détail plafonné/exécution) : IMMOKA_REALTOR_MAX (défaut 2000), IMMOKA_REALTOR_DETAIL_LIMIT (défaut 100)

En-tête du module :

Immo-Ka — Agrégateur de maisons à vendre (province de Québec) Auteur : Simon-Pierre Boucher — contact@spboucher.ai connectors/realtor_ca.py : Realtor.ca (couverture MLS pan-bannières, QC) API interne https://api2.realtor.ca/Listing.svc/PropertySearch_Post (POST form). Protégée (DataDome/Incapsula) : l'accès direct renvoie 403, mais l'API se REJOUE via Scrapfly ASP SANS render_js (1 crédit-appel ASP, pas de navigateur) → JSON complet : n° MLS, GPS, prix, CAC/SDB, superficie, photos, courtier + agence. Vérifié 2026-08-18 : 200 fiches/page, plafond serveur 600 fiches (MaxRecords) par recherche → SHARDING par boîtes lat/lng couvrant le Québec, tri « plus récentes d'abord » (Sort=6-D). BUDGET BORNÉ : IMMOKA_REALTOR_MAX fiches max par sync (défaut 2 000, soit ~10 appels Scrapfly), réparties en balayant la page 1 de chaque shard puis les pages 2-3 si le budget le permet. Les fiches plus anciennes sortent de la fenêtre au fil des syncs (miss_count → active=0) : le connecteur vaut surtout pour les inscriptions récentes des bannières non couvertes. Mettre IMMOKA_REALTOR_MAX=0 pour désactiver le connecteur. source_id « realtor_ag_ca » : l'infixe ag + external_id = n° MLS Centris activent la dédup existante — toute fiche déjà couverte par un connecteur direct (RE/MAX, Royal LePage, Sutton…) est masquée, seules les fiches UNIQUES (petites bannières sans connecteur) restent visibles. ENRICHISSEMENT DÉTAIL (2026-08-18) : la réponse PropertySearch_Post ne contient qu'UNE photo et un PublicRemarks VIDE (vérifié) — la galerie complète, la description et les caractéristiques Building/Land viennent de l'API Listing.svc/PropertyDetails (GET, mêmes protections → Scrapfly ASP sans render_js, 1 crédit-appel), rejouée avec CultureId=2 (français) via ReferenceNumber= + PropertyID=. Cache BD detail_cache (_detailutil.enrich) : chaque fiche n'est détaillée qu'UNE fois ; budget IMMOKA_REALTOR_DETAIL_LIMIT appels/cycle (défaut 100, override ponctuel IMMOKA_DETAIL_LIMIT) → rattrapage progressif du stock, nouveautés ensuite.

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

Indicateur Valeur
Annonces en base (toutes) 7 658
Actives 2 511
Visibles (après dédup) 397
Masquées par la dédup 2 114
GPS (lat/lng) 99.7 %
Photos 100.0 %
Prix 100.0 %
CAC (chambres) 77.8 %
SDB (salles de bains) 77.8 %
Année de construction 76.8 % (dont rôle : 39.7 %)
Taxes / évaluation municipale 0.0 %
Estimation Vrai-Prix (rôle) 96.5 %

# Synchronisation

  • Dernier sync : 2026-08-28 17:27 — trouvé 2 148, +181 / ~31 / -104 — 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).