Lou·Ka — tous les logements à louer du Québec, un seul endroit.
HTML 98.9%
Python 0.6%
-
Tue, Aug 18, 2026 1
-
Vague 2 : colonnes bedrooms/bathrooms, perf fb_marketplace/logisquebec, connecteurs Kangalou + Rentals.ca, visites virtuelles
…
- Schéma : colonnes bedrooms/bathrooms REAL (additives) dérivées dans finalize() — details explicites > type d'unité (n½ -> n-2, convention QC) > extraction texte ; backfill one-shot : 96,7 % bedrooms / 51 % bathrooms sur le parc actif. - fb_marketplace : recherche et détails Scrapfly EN PARALLÈLE (6 fils, mêmes requêtes, aucun volume perdu), TTL détail 10 -> 30 j, annonces louées filtrées avant enrichissement : 43-47 min -> 7,3 min/cycle. - logisquebec : budget détail 1200 -> 400 (dimensionné TTL 7 j / ~10 passes/j), fiches jamais vues servies en premier, délai 0,7 -> 0,5 s : 19 min -> 7,6 min/cycle, parc complet (6 393 fiches). - Kangalou (nouveau) : découverte en 1 requête via les pins de la carte (/fr/recherche/ajax/search-map/, loués/commerciaux exclus), fiches SSR (adresse, chambres/SDB, GPS, galerie, dispo, superficie) : 7 916 annonces. - Rentals.ca (nouveau) : même GraphQL que Louer.ca mais inventaire ~+15 %, rejoué via Scrapfly ASP sans rendu JS (Cloudflare), détails PAR LOTS de 40 via nodes(ids), villes/volumes plafonnés : 3 452 annonces (les recoupements Louer.ca sont résorbés par la dédup, déjà dans PORTALS). - Visites virtuelles : details.virtual_tour — tours{} Matterport/YouTube du réseau Rentals.ca (louer_ca clé cache v2 + rentals_ca) + détection générique Matterport/iGUIDE/Klapty dans les fiches logisquebec, duproprio, kangalou. 1 107 annonces actives en ont déjà une. - TtlDetailCache : peek()/put() pour la planification de lots parallèles. - sources.json : +kangalou, +rentals_ca (275 sources, 212 connecteurs). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Mon, Aug 17, 2026 1
-
Nouvelles sources + déduplication inter-sources
…
8 connecteurs (208 → 212), testés en live : - logisquebec — portail (~9 800 fiches) : sitemaps + JSON-LD, expiration HTTP 410 - duproprio — location par particuliers (~4 200, 0 % chevauchement) : sitemaps gz + JSON-LD, retrait = 302 - louer_ca — réseau Rentals.ca (~1 700) : API GraphQL interne (JWT), 1 annonce par plan d'étage - roomies — chambres/colocation : JSON-LD Room - groupe_maurice — 37 résidences pour aînés (RPA) : API REST + grilles de prix - bons_locataires — agence Montréal : carte MapListPro + fiches WordPress - omhm — logements abordables ENHARMONIE - fb_marketplace — Scrapfly ASP, pagination par tranches de prix (scroll bloqué hors login) Déduplication inter-sources (louka/dedup.py) : - colonnes dup_of / dup_sources (migration db.py), recalcul idempotent dans ingest.watch() après géocodage - blocage par clé d'adresse (civique + rue normalisée FR/EN + ville), confirmation type + prix ±4 % - contrainte « ≤1 annonce par source par groupe » (évite de fusionner des unités distinctes d'un immeuble) - canonique = source la plus autoritaire (gestionnaire direct > portail > petites annonces) - web.py n'affiche que les annonces canoniques (dup_of IS NULL) ; dup_sources exposé pour le badge « aussi publiée sur » - résultat : 147 groupes, 154 doublons masqués sur 18 536 annonces Utilitaire _detailutil.TtlDetailCache : cache de pages détail avec TTL + budget par sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-
-
Wed, Aug 12, 2026 1
-
Portails & courtiers en location — 10 connecteurs portés d'Immo-Ka (Kijiji, LesPAC, RE/MAX, Sutton, Royal LePage, Via Capitale, Proprio Direct, Ubee, Barnes, M Immobilier)
…
- base.py : backends Scrapfly (scrapfly/get_scrapfly) + post() portés d'Immo-Ka - _detailutil.py : helper partagé d'enrichissement fiche détail (cache BD, budget par sync) adapté au schéma Listing - Kijiji c37 apparts/condos + c36 chambres/coloc (Apollo __NEXT_DATA__, QC l9001) - LesPAC b457 logements + b458 coloc + b460 aînés (searchResponse, ancre Montréal = province entière triée par distance) - RE/MAX Québec : index Meilisearch public shardé par RTA, slugs -a-louer seulement - Sutton : sitemap inscriptions typeInscription=2 (= locations) - Royal LePage : recherche transactionType=LEASE (formulaire caché), 28 villes d'ancrage - Via Capitale : criteresJson AVendre:false via Firecrawl (Cloudflare) - Proprio Direct : API searchListings filter rentOrSale:rent, volet résidentiel - Ubee : API SearchProperties listingType Renter (askPrice = loyer mensuel) - Barnes : Algolia facette type:rental (property_rent) ; M Immobilier : CODE_STATUT=AL - sources.json : 255 → 265 (10 nouvelles sources « Province »/Montréal) - Écartés après vérification live (pas de location résidentielle) : DuProprio, Profusion, Engel & Völkers, KW Prestige/Distinction/Urbain, Expert PM, Sotheby's Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
-