fb_marketplace : acteur Apify maison ka-fb-marketplace (33 villes, tout le Québec)
Remplace la chaîne Scrapfly par un acteur Apify maison (curl_cffi sans rendu JS, proxy Oxylabs résidentiel CA via proxyUrlTemplate) : recherche 116 URLs (10 grandes villes × 7 tranches de prix + 23 régions par ID Marketplace), fiches détail (GPS, description, statut) et galerie complète via le MediaViewer préchargé. Filtre hors-Québec à deux niveaux : state du reverse_geocode dès la recherche + filet bbox GPS côté connecteur (FB glisse des suggestions d'autres provinces dans le flux public). Coût ~100× moindre. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
227 changed files +2,615 −2,173
added
actors/ka-fb-marketplace/.actor/Dockerfile
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: Dockerfile (ka-fb-marketplace) | |
| 4 | +# Desc: Acteur Apify KA — Dockerfile | |
| 5 | +# ============================================================================== | |
| 6 | +FROM apify/actor-python:3.12 | |
| 7 | +COPY requirements.txt ./ | |
| 8 | +RUN pip install --no-cache-dir -r requirements.txt | |
| 9 | +COPY . ./ | |
| 10 | +CMD ["python3", "-m", "src"] | |
added
actors/ka-fb-marketplace/.actor/actor.json
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +{ | |
| 2 | + "actorSpecification": 1, | |
| 3 | + "name": "ka-fb-marketplace", | |
| 4 | + "title": "KA Facebook Marketplace — locations QC", | |
| 5 | + "description": "Logements à louer (propertyrentals) sur Facebook Marketplace, Québec. Scraping public déconnecté sans rendu JS : recherche + fiches détail (GPS, description, statut, galerie via MediaViewer préchargé) depuis le JSON du HTML brut. Proxy résidentiel CA obligatoire.", | |
| 6 | + "version": "0.1", | |
| 7 | + "buildTag": "latest", | |
| 8 | + "input": "./input_schema.json", | |
| 9 | + "dockerfile": "./Dockerfile" | |
| 10 | +} | |
added
actors/ka-fb-marketplace/.actor/input_schema.json
+74 −0
@@ -0,0 +1,74 @@ | ||
| 1 | +{ | |
| 2 | + "title": "KA Facebook Marketplace input", | |
| 3 | + "type": "object", | |
| 4 | + "schemaVersion": 1, | |
| 5 | + "properties": { | |
| 6 | + "searchUrls": { | |
| 7 | + "title": "URLs de recherche", | |
| 8 | + "type": "array", | |
| 9 | + "editor": "stringList", | |
| 10 | + "description": "URLs de recherche Marketplace (ville × tranche de prix). Vide = couverture Québec par défaut (33 villes intégrées).", | |
| 11 | + "prefill": [] | |
| 12 | + }, | |
| 13 | + "getDetails": { | |
| 14 | + "title": "Visiter les fiches détail", | |
| 15 | + "type": "boolean", | |
| 16 | + "default": true, | |
| 17 | + "description": "Visite /marketplace/item/<id> pour GPS, ville, description, statut et galerie complète." | |
| 18 | + }, | |
| 19 | + "maxDetails": { | |
| 20 | + "title": "Budget fiches détail", | |
| 21 | + "type": "integer", | |
| 22 | + "default": 200, | |
| 23 | + "minimum": 0, | |
| 24 | + "description": "Nombre maximal de fiches détail visitées par run." | |
| 25 | + }, | |
| 26 | + "skipDetailIds": { | |
| 27 | + "title": "IDs à NE PAS détailler", | |
| 28 | + "type": "array", | |
| 29 | + "editor": "stringList", | |
| 30 | + "description": "IDs d'annonces dont la fiche détail est déjà connue de l'appelant (cache) : la recherche les liste quand même, mais aucune requête détail.", | |
| 31 | + "prefill": [] | |
| 32 | + }, | |
| 33 | + "extraDetailIds": { | |
| 34 | + "title": "IDs détail additionnels (rattrapage)", | |
| 35 | + "type": "array", | |
| 36 | + "editor": "stringList", | |
| 37 | + "description": "Fiches à visiter MÊME si absentes des résultats de recherche (rattrapage d'annonces actives pauvres).", | |
| 38 | + "prefill": [] | |
| 39 | + }, | |
| 40 | + "requestDelay": { | |
| 41 | + "title": "Délai entre requêtes (s)", | |
| 42 | + "type": "integer", | |
| 43 | + "default": 1, | |
| 44 | + "minimum": 0, | |
| 45 | + "description": "Pause minimale entre deux requêtes sortantes, en secondes." | |
| 46 | + }, | |
| 47 | + "concurrency": { | |
| 48 | + "title": "Requêtes simultanées", | |
| 49 | + "type": "integer", | |
| 50 | + "default": 8, | |
| 51 | + "minimum": 1, | |
| 52 | + "maximum": 16, | |
| 53 | + "description": "Nombre de requêtes menées en parallèle." | |
| 54 | + }, | |
| 55 | + "proxyUrlTemplate": { | |
| 56 | + "title": "Proxy externe (gabarit d'URL)", | |
| 57 | + "type": "string", | |
| 58 | + "editor": "textfield", | |
| 59 | + "isSecret": true, | |
| 60 | + "description": "Optionnel : URL de proxy externe avec placeholder {session} (ex. Oxylabs résidentiel http://user-cc-CA-sessid-{session}:pass@pr.oxylabs.io:7777). Si présent, remplace le proxy Apify — utile pour consommer un abonnement résidentiel existant." | |
| 61 | + }, | |
| 62 | + "proxyConfiguration": { | |
| 63 | + "title": "Proxy Apify", | |
| 64 | + "type": "object", | |
| 65 | + "editor": "proxy", | |
| 66 | + "description": "Résidentiel obligatoire (Facebook rejette les IP datacenter). Ignoré si un gabarit de proxy externe est fourni.", | |
| 67 | + "prefill": { | |
| 68 | + "useApifyProxy": true, | |
| 69 | + "apifyProxyGroups": ["RESIDENTIAL"], | |
| 70 | + "apifyProxyCountry": "CA" | |
| 71 | + } | |
| 72 | + } | |
| 73 | + } | |
| 74 | +} | |
added
actors/ka-fb-marketplace/requirements.txt
+7 −0
@@ -0,0 +1,7 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: requirements.txt (ka-fb-marketplace) | |
| 4 | +# Desc: Acteur Apify KA — requirements.txt | |
| 5 | +# ============================================================================== | |
| 6 | +apify | |
| 7 | +curl_cffi>=0.9 | |
added
actors/ka-fb-marketplace/src/__main__.py
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/__main__.py (ka-fb-marketplace) | |
| 4 | +# Desc: Point d'entrée de l'acteur (asyncio.run). | |
| 5 | +# ============================================================================== | |
| 6 | +import asyncio | |
| 7 | + | |
| 8 | +from .main import main | |
| 9 | + | |
| 10 | +asyncio.run(main()) | |
added
actors/ka-fb-marketplace/src/main.py
+325 −0
@@ -0,0 +1,325 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/main.py (ka-fb-marketplace) | |
| 4 | +# Desc: Facebook Marketplace — logements à louer (propertyrentals), Québec. | |
| 5 | +# Scraping public DÉCONNECTÉ, AUCUN rendu JS : les données vivent dans | |
| 6 | +# les <script type="application/json"> du HTML brut. | |
| 7 | +# - Recherche : objets marketplace_listing_title (~25/URL, on multiplie | |
| 8 | +# les URLs ville × tranche de prix pour élargir). | |
| 9 | +# - Fiche /marketplace/item/<id> : le target GraphQL préchargé | |
| 10 | +# (marketplace_product_details_page) expose GPS, ville | |
| 11 | +# (reverse_geocode_detailed), description, statut is_live/is_sold ; | |
| 12 | +# la GALERIE complète vient du target MediaViewer préchargé | |
| 13 | +# (listing_photos du même id) — validé live, aucun rendu requis. | |
| 14 | +# Sortie dataset : {kind:"listing"} (recherche) et {kind:"detail"}. | |
| 15 | +# ⚠️ Données personnelles (Loi 25) : ne jamais republier nom/téléphone | |
| 16 | +# du vendeur ; le champ seller n'est PAS extrait. | |
| 17 | +# ============================================================================== | |
| 18 | +from __future__ import annotations | |
| 19 | + | |
| 20 | +import asyncio | |
| 21 | +import html as _html | |
| 22 | +import json | |
| 23 | +import re | |
| 24 | + | |
| 25 | +from apify import Actor | |
| 26 | + | |
| 27 | +from .net import Fetcher | |
| 28 | + | |
| 29 | +BASE = "https://www.facebook.com/marketplace" | |
| 30 | + | |
| 31 | +# Couverture Québec par défaut (mode autonome, sans searchUrls) : | |
| 32 | +# slug vanity OU id numérique Marketplace (validés live 2026-08-22 — les slugs | |
| 33 | +# inventés retombent sur des villes aléatoires, seuls ceux-ci sont sûrs). | |
| 34 | +# Chaque recherche couvre un rayon d'environ 65 km. | |
| 35 | +BIG_CITIES = { # gros parcs : tranches de prix fines (flux ~25 annonces/URL) | |
| 36 | + "montreal": "Montréal", "laval": "Laval", "longueuil": "Longueuil", | |
| 37 | + "quebec": "Québec", "gatineau": "Gatineau", "sherbrooke": "Sherbrooke", | |
| 38 | + "trois-rivieres": "Trois-Rivières", "levis": "Lévis", | |
| 39 | + "saguenay": "Saguenay", "drummondville": "Drummondville", | |
| 40 | +} | |
| 41 | +REGIONAL_CITIES = { # couverture régions : ids numériques (Serper + validation) | |
| 42 | + "105790762794728": "Rimouski", "110925022261358": "Rivière-du-Loup", | |
| 43 | + "106528256049537": "Matane", "109502305742889": "Gaspé", | |
| 44 | + "100246746683723": "Sept-Îles", "105615529471535": "Baie-Comeau", | |
| 45 | + "106016152771864": "Rouyn-Noranda", "110594102301488": "Val-d'Or", | |
| 46 | + "105598479473872": "Amos", "109699385723610": "Saint-Georges", | |
| 47 | + "110304502331480": "Thetford Mines", "111938355489908": "Granby", | |
| 48 | + "108126699220609": "Victoriaville", "109753249050671": "Joliette", | |
| 49 | + "109429165750459": "Saint-Hyacinthe", | |
| 50 | + "108645709159963": "Saint-Jean-sur-Richelieu", | |
| 51 | + "112946182053396": "Saint-Jérôme", "113011352052118": "Salaberry-de-Valleyfield", | |
| 52 | + "107992819229760": "Magog", "109514615734434": "Alma", | |
| 53 | + "109664672393669": "Mont-Laurier", "108557812502323": "La Tuque", | |
| 54 | + "108296932538245": "Dolbeau-Mistassini", | |
| 55 | +} | |
| 56 | +PRICE_BANDS = [(0, 800), (800, 1100), (1100, 1400), (1400, 1700), | |
| 57 | + (1700, 2100), (2100, 2800), (2800, 6000)] | |
| 58 | +REGIONAL_BANDS = [(0, 1200), (1200, 6000)] # parcs plus petits : 2 tranches | |
| 59 | + | |
| 60 | +_SCRIPT_RE = re.compile( | |
| 61 | + r'<script type="application/json"[^>]*>(.*?)</script>', re.S) | |
| 62 | + | |
| 63 | + | |
| 64 | +def default_search_urls() -> list[str]: | |
| 65 | + urls = [] | |
| 66 | + for slug in BIG_CITIES: | |
| 67 | + for lo, hi in PRICE_BANDS: | |
| 68 | + urls.append(f"{BASE}/{slug}/propertyrentals" | |
| 69 | + f"?minPrice={lo}&maxPrice={hi}" | |
| 70 | + f"&sortBy=creation_time_descend") | |
| 71 | + for cid in REGIONAL_CITIES: | |
| 72 | + for lo, hi in REGIONAL_BANDS: | |
| 73 | + urls.append(f"{BASE}/{cid}/propertyrentals" | |
| 74 | + f"?minPrice={lo}&maxPrice={hi}" | |
| 75 | + f"&sortBy=creation_time_descend") | |
| 76 | + return urls | |
| 77 | + | |
| 78 | + | |
| 79 | +def _iter_json_scripts(html: str): | |
| 80 | + for m in _SCRIPT_RE.finditer(html): | |
| 81 | + try: | |
| 82 | + yield json.loads(m.group(1)) | |
| 83 | + except ValueError: | |
| 84 | + continue | |
| 85 | + | |
| 86 | + | |
| 87 | +def walk_listings(html: str) -> dict: | |
| 88 | + """Objets d'annonce (marketplace_listing_title) des <script> JSON.""" | |
| 89 | + out: dict = {} | |
| 90 | + | |
| 91 | + def walk(o): | |
| 92 | + if isinstance(o, dict): | |
| 93 | + if "marketplace_listing_title" in o and o.get("id"): | |
| 94 | + out.setdefault(str(o["id"]), o) | |
| 95 | + for v in o.values(): | |
| 96 | + walk(v) | |
| 97 | + elif isinstance(o, list): | |
| 98 | + for v in o: | |
| 99 | + walk(v) | |
| 100 | + | |
| 101 | + for data in _iter_json_scripts(html): | |
| 102 | + walk(data) | |
| 103 | + return out | |
| 104 | + | |
| 105 | + | |
| 106 | +def price_of(obj: dict) -> float | None: | |
| 107 | + """Montant du loyer depuis listing_price (offset en cents géré).""" | |
| 108 | + pr = obj.get("listing_price") or {} | |
| 109 | + for k in ("amount", "amount_with_offset_in_currency"): | |
| 110 | + v = pr.get(k) | |
| 111 | + if v is None: | |
| 112 | + continue | |
| 113 | + try: | |
| 114 | + val = float(v) | |
| 115 | + except (TypeError, ValueError): | |
| 116 | + continue | |
| 117 | + if k == "amount_with_offset_in_currency" and val > 100000: | |
| 118 | + val /= 100.0 | |
| 119 | + if val > 0: | |
| 120 | + return round(val, 0) | |
| 121 | + return None | |
| 122 | + | |
| 123 | + | |
| 124 | +def _pdp_target(html: str) -> dict | None: | |
| 125 | + """Nœud cible le plus RICHE (description/GPS/statut) parmi les targets | |
| 126 | + marketplace_product_details_page préchargés (stubs inclus).""" | |
| 127 | + found: list[dict] = [] | |
| 128 | + | |
| 129 | + def walk(o): | |
| 130 | + if isinstance(o, dict): | |
| 131 | + pdp = o.get("marketplace_product_details_page") | |
| 132 | + if isinstance(pdp, dict) and isinstance(pdp.get("target"), dict): | |
| 133 | + found.append(pdp["target"]) | |
| 134 | + for v in o.values(): | |
| 135 | + walk(v) | |
| 136 | + elif isinstance(o, list): | |
| 137 | + for v in o: | |
| 138 | + walk(v) | |
| 139 | + | |
| 140 | + for data in _iter_json_scripts(html): | |
| 141 | + walk(data) | |
| 142 | + | |
| 143 | + def score(t: dict) -> tuple: | |
| 144 | + desc = (t.get("redacted_description") or {}).get("text") or "" | |
| 145 | + loc = t.get("location") or {} | |
| 146 | + return (1 if desc else 0) + (1 if loc.get("latitude") else 0), len(t) | |
| 147 | + return max(found, key=score) if found else None | |
| 148 | + | |
| 149 | + | |
| 150 | +def _gallery(html: str, lid: str) -> list[str]: | |
| 151 | + """Galerie complète : plus grand tableau listing_photos porté par un objet | |
| 152 | + du MÊME id (le target MediaViewer préchargé la contient hors connexion).""" | |
| 153 | + best: list[str] = [] | |
| 154 | + | |
| 155 | + def walk(o): | |
| 156 | + nonlocal best | |
| 157 | + if isinstance(o, dict): | |
| 158 | + lp = o.get("listing_photos") | |
| 159 | + if (isinstance(lp, list) and lp | |
| 160 | + and str(o.get("id") or "") == lid): | |
| 161 | + uris = [] | |
| 162 | + for p in lp: | |
| 163 | + uri = ((p.get("image") or {}).get("uri") | |
| 164 | + if isinstance(p, dict) else "") or "" | |
| 165 | + if uri and uri not in uris: | |
| 166 | + uris.append(uri) | |
| 167 | + if len(uris) > len(best): | |
| 168 | + best = uris | |
| 169 | + for v in o.values(): | |
| 170 | + walk(v) | |
| 171 | + elif isinstance(o, list): | |
| 172 | + for v in o: | |
| 173 | + walk(v) | |
| 174 | + | |
| 175 | + for data in _iter_json_scripts(html): | |
| 176 | + walk(data) | |
| 177 | + return best | |
| 178 | + | |
| 179 | + | |
| 180 | +def _clean_desc(text: str) -> str: | |
| 181 | + t = text.replace("\r", "\n") | |
| 182 | + t = re.sub(r"[ \t ]+", " ", t) | |
| 183 | + t = re.sub(r" ?\n ?", "\n", t) | |
| 184 | + t = re.sub(r"\n{3,}", "\n\n", t) | |
| 185 | + return t.strip() | |
| 186 | + | |
| 187 | + | |
| 188 | +def parse_detail(html: str, lid: str) -> dict: | |
| 189 | + """Champs riches d'une fiche /marketplace/item/<id> hors connexion. | |
| 190 | + | |
| 191 | + {} si la page n'a pas pu être rendue (échec réseau : l'appelant ne doit | |
| 192 | + PAS mettre en cache), {"nopdp": True} si rendue mais sans objet cible | |
| 193 | + (fiche supprimée / mur de login : cacher pour ne pas boucler).""" | |
| 194 | + if not html: | |
| 195 | + return {} | |
| 196 | + o = _pdp_target(html) | |
| 197 | + if not o: | |
| 198 | + return {"nopdp": True} | |
| 199 | + out: dict = {} | |
| 200 | + if o.get("is_sold") or o.get("is_pending") or o.get("is_live") is False: | |
| 201 | + out["gone"] = True # loué / en attente / retiré | |
| 202 | + loc = o.get("location") or {} | |
| 203 | + if loc.get("latitude") and loc.get("longitude"): | |
| 204 | + out["lat"] = loc["latitude"] | |
| 205 | + out["lng"] = loc["longitude"] | |
| 206 | + geo = loc.get("reverse_geocode_detailed") or {} | |
| 207 | + if geo.get("city"): | |
| 208 | + out["city"] = geo["city"] | |
| 209 | + if geo.get("state"): | |
| 210 | + out["state"] = geo["state"] | |
| 211 | + lt = (o.get("location_text") or {}).get("text") or "" | |
| 212 | + if lt: # ex. « Québec, QC » / « Norfolk, ON » | |
| 213 | + out["location_text"] = lt | |
| 214 | + parts = [p.strip() for p in lt.split(",") if p.strip()] | |
| 215 | + if parts and not out.get("city"): | |
| 216 | + out["city"] = parts[0] | |
| 217 | + if len(parts) > 1 and not out.get("state"): | |
| 218 | + out["state"] = parts[1] | |
| 219 | + desc = (o.get("redacted_description") or {}).get("text") or "" | |
| 220 | + if desc: | |
| 221 | + out["description"] = _clean_desc(desc)[:6000] | |
| 222 | + photos = _gallery(html, lid) | |
| 223 | + if photos: | |
| 224 | + out["images"] = photos | |
| 225 | + return out | |
| 226 | + | |
| 227 | + | |
| 228 | +async def main() -> None: | |
| 229 | + async with Actor: | |
| 230 | + inp = await Actor.get_input() or {} | |
| 231 | + search_urls = [u for u in (inp.get("searchUrls") or []) if u] | |
| 232 | + if not search_urls: | |
| 233 | + search_urls = default_search_urls() | |
| 234 | + get_details = inp.get("getDetails", True) | |
| 235 | + max_details = int(inp.get("maxDetails") or 200) | |
| 236 | + skip_ids = {str(i) for i in (inp.get("skipDetailIds") or [])} | |
| 237 | + extra_ids = [str(i) for i in (inp.get("extraDetailIds") or [])] | |
| 238 | + template = (inp.get("proxyUrlTemplate") or "").strip() or None | |
| 239 | + proxy = None | |
| 240 | + if not template: | |
| 241 | + proxy = await Actor.create_proxy_configuration( | |
| 242 | + actor_proxy_input=inp.get("proxyConfiguration")) | |
| 243 | + fetcher = Fetcher(proxy, delay=float(inp.get("requestDelay") or 1), | |
| 244 | + proxy_template=template) | |
| 245 | + sem = asyncio.Semaphore(int(inp.get("concurrency") or 8)) | |
| 246 | + | |
| 247 | + # -- phase recherche --------------------------------------------------- | |
| 248 | + found: dict[str, tuple[dict, str]] = {} # id -> (objet, source_url) | |
| 249 | + fails = 0 | |
| 250 | + | |
| 251 | + async def search(url: str) -> None: | |
| 252 | + nonlocal fails | |
| 253 | + async with sem: | |
| 254 | + try: | |
| 255 | + resp = await fetcher.get(url, session_id=f"q{hash(url)}") | |
| 256 | + except Exception as exc: | |
| 257 | + fails += 1 | |
| 258 | + Actor.log.warning(f"recherche KO {url} : {exc}") | |
| 259 | + return | |
| 260 | + if resp.status_code != 200: | |
| 261 | + fails += 1 | |
| 262 | + return | |
| 263 | + for lid, obj in walk_listings(resp.text).items(): | |
| 264 | + found.setdefault(lid, (obj, url)) | |
| 265 | + | |
| 266 | + await asyncio.gather(*[search(u) for u in search_urls]) | |
| 267 | + Actor.log.info(f"recherche : {len(found)} annonces uniques " | |
| 268 | + f"({len(search_urls)} URLs, {fails} échecs)") | |
| 269 | + | |
| 270 | + for lid, (obj, src) in found.items(): | |
| 271 | + photo = ((obj.get("primary_listing_photo") or {}) | |
| 272 | + .get("image") or {}).get("uri") or "" | |
| 273 | + loc = obj.get("location") or {} | |
| 274 | + geo = loc.get("reverse_geocode") or {} | |
| 275 | + await Actor.push_data({ | |
| 276 | + "kind": "listing", | |
| 277 | + "id": lid, | |
| 278 | + "title": (obj.get("marketplace_listing_title") or "")[:300], | |
| 279 | + "price": price_of(obj), | |
| 280 | + "city": (geo.get("city") | |
| 281 | + or (geo.get("city_page") or {}).get("display_name") | |
| 282 | + or ""), | |
| 283 | + "state": geo.get("state") or "", | |
| 284 | + "primary_photo": photo, | |
| 285 | + "is_sold": bool(obj.get("is_sold")), | |
| 286 | + "is_pending": bool(obj.get("is_pending")), | |
| 287 | + "source_url": src, | |
| 288 | + "url": f"{BASE}/item/{lid}/", | |
| 289 | + }) | |
| 290 | + | |
| 291 | + # -- phase détail ------------------------------------------------------ | |
| 292 | + if not get_details or max_details <= 0: | |
| 293 | + return | |
| 294 | + todo: list[str] = [] | |
| 295 | + for lid, (obj, _src) in found.items(): | |
| 296 | + if lid in skip_ids or obj.get("is_sold") or obj.get("is_pending"): | |
| 297 | + continue | |
| 298 | + if price_of(obj) is None: | |
| 299 | + continue # sans prix : jamais publiable, épargner | |
| 300 | + # le flux public glisse des annonces d'autres provinces (suggestions) | |
| 301 | + geo = (obj.get("location") or {}).get("reverse_geocode") or {} | |
| 302 | + st = (geo.get("state") or "").strip().lower() | |
| 303 | + if st and st not in ("qc", "quebec", "québec"): | |
| 304 | + continue | |
| 305 | + todo.append(lid) | |
| 306 | + for lid in extra_ids: # rattrapage : après les nouveautés | |
| 307 | + if lid not in todo and lid not in skip_ids: | |
| 308 | + todo.append(lid) | |
| 309 | + todo = todo[:max_details] | |
| 310 | + | |
| 311 | + async def detail(lid: str) -> None: | |
| 312 | + async with sem: | |
| 313 | + try: | |
| 314 | + resp = await fetcher.get(f"{BASE}/item/{lid}/", | |
| 315 | + session_id=f"d{lid}") | |
| 316 | + payload = parse_detail( | |
| 317 | + resp.text if resp.status_code == 200 else "", lid) | |
| 318 | + except Exception as exc: | |
| 319 | + Actor.log.warning(f"détail KO {lid} : {exc}") | |
| 320 | + payload = {} | |
| 321 | + await Actor.push_data({"kind": "detail", "id": lid, | |
| 322 | + "ok": bool(payload), **payload}) | |
| 323 | + | |
| 324 | + await asyncio.gather(*[detail(lid) for lid in todo]) | |
| 325 | + Actor.log.info(f"détail : {len(todo)} fiches visitées") | |
added
actors/ka-fb-marketplace/src/net.py
+97 −0
@@ -0,0 +1,97 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/net.py (ka-fb-marketplace) | |
| 4 | +# Desc: Fetch commun des acteurs KA — curl_cffi (empreinte TLS Chrome) + | |
| 5 | +# proxy Apify (résidentiel par défaut) OU gabarit de proxy externe | |
| 6 | +# ({session} → id de session, nouvelle IP par tentative), throttling | |
| 7 | +# poli, retries à backoff exponentiel + jitter sur 403/407/408/425/ | |
| 8 | +# 429/500/502/503/504. | |
| 9 | +# ============================================================================== | |
| 10 | +from __future__ import annotations | |
| 11 | + | |
| 12 | +import asyncio | |
| 13 | +import random | |
| 14 | +import re | |
| 15 | + | |
| 16 | +from apify import Actor | |
| 17 | +from curl_cffi import requests as cffi | |
| 18 | + | |
| 19 | +UA = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 " | |
| 20 | + "(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36") | |
| 21 | + | |
| 22 | +# statuts transitoires : mur anti-bot, proxy, rate-limit, erreurs serveur | |
| 23 | +RETRY_STATUSES = frozenset({403, 407, 408, 425, 429, 500, 502, 503, 504}) | |
| 24 | + | |
| 25 | + | |
| 26 | +def _backoff(attempt: int) -> float: | |
| 27 | + """Backoff exponentiel plafonné + jitter (anti-troupeau).""" | |
| 28 | + return min(1.2 * (2 ** attempt), 12.0) + random.uniform(0.0, 0.8) | |
| 29 | + | |
| 30 | + | |
| 31 | +class Fetcher: | |
| 32 | + """HTTP poli : proxy Apify ou externe + impersonation Chrome + retries.""" | |
| 33 | + | |
| 34 | + def __init__(self, proxy_configuration, delay: float = 1.0, | |
| 35 | + proxy_template: str | None = None) -> None: | |
| 36 | + self.proxy_configuration = proxy_configuration | |
| 37 | + self.proxy_template = proxy_template or None | |
| 38 | + self.delay = delay | |
| 39 | + self._lock = asyncio.Lock() | |
| 40 | + self._last = 0.0 | |
| 41 | + | |
| 42 | + async def _throttle(self) -> None: | |
| 43 | + async with self._lock: | |
| 44 | + now = asyncio.get_event_loop().time() | |
| 45 | + wait = self.delay - (now - self._last) | |
| 46 | + if wait > 0: | |
| 47 | + await asyncio.sleep(wait) | |
| 48 | + self._last = asyncio.get_event_loop().time() | |
| 49 | + | |
| 50 | + async def _proxy_url(self, session_id: str | None, attempt: int) -> str | None: | |
| 51 | + sid = session_id or f"s{random.randint(1, 999_999)}" | |
| 52 | + sid = re.sub(r"[^\w._~]", "", sid)[:40] or "s" | |
| 53 | + # nouvelle session proxy (nouvelle IP) à chaque tentative | |
| 54 | + sid = f"{sid}r{attempt}" | |
| 55 | + if self.proxy_template: | |
| 56 | + return self.proxy_template.replace("{session}", sid) | |
| 57 | + if self.proxy_configuration: | |
| 58 | + return await self.proxy_configuration.new_url(session_id=sid) | |
| 59 | + return None | |
| 60 | + | |
| 61 | + async def request(self, method: str, url: str, | |
| 62 | + headers: dict | None = None, data=None, | |
| 63 | + retries: int = 4, session_id: str | None = None, | |
| 64 | + impersonate: str | None = "chrome"): | |
| 65 | + hdrs = {"User-Agent": UA, | |
| 66 | + "Accept-Language": "fr-CA,fr;q=0.9,en;q=0.8"} | |
| 67 | + if headers: | |
| 68 | + hdrs.update(headers) | |
| 69 | + last_exc: Exception | None = None | |
| 70 | + for attempt in range(retries): | |
| 71 | + await self._throttle() | |
| 72 | + proxy = await self._proxy_url(session_id, attempt) | |
| 73 | + try: | |
| 74 | + resp = await asyncio.to_thread( | |
| 75 | + cffi.request, method, url, headers=hdrs, data=data, | |
| 76 | + impersonate=impersonate, timeout=60, allow_redirects=True, | |
| 77 | + proxies={"http": proxy, "https": proxy} if proxy else None) | |
| 78 | + if resp.status_code in RETRY_STATUSES \ | |
| 79 | + and attempt < retries - 1: | |
| 80 | + Actor.log.warning( | |
| 81 | + f"HTTP {resp.status_code} {url} — retry {attempt + 1}") | |
| 82 | + await asyncio.sleep(_backoff(attempt)) | |
| 83 | + continue | |
| 84 | + return resp | |
| 85 | + except Exception as exc: # réseau/proxy : on retente | |
| 86 | + last_exc = exc | |
| 87 | + await asyncio.sleep(_backoff(attempt)) | |
| 88 | + if last_exc: | |
| 89 | + raise last_exc | |
| 90 | + raise RuntimeError(f"échec après {retries} tentatives : {url}") | |
| 91 | + | |
| 92 | + async def get(self, url: str, headers: dict | None = None, | |
| 93 | + retries: int = 4, session_id: str | None = None, | |
| 94 | + impersonate: str | None = "chrome"): | |
| 95 | + return await self.request("GET", url, headers=headers, | |
| 96 | + retries=retries, session_id=session_id, | |
| 97 | + impersonate=impersonate) | |
modified
data/sources.json
+1 −1
@@ -2724,7 +2724,7 @@ | ||
| 2724 | 2724 | "name": "Facebook Marketplace (location)", |
| 2725 | 2725 | "url": "https://www.facebook.com/marketplace", |
| 2726 | 2726 | "listing_url": "https://www.facebook.com/marketplace/montreal/propertyrentals", |
| 2727 | − "sectors": "Grandes villes QC — annonces de particuliers (Scrapfly)", | |
| 2727 | + "sectors": "Toute la province (33 villes, rayon ~65 km chacune) — annonces de particuliers (acteur Apify maison ka-fb-marketplace)", | |
| 2728 | 2728 | "connector": "fb_marketplace", |
| 2729 | 2729 | "status": "actif", |
| 2730 | 2730 | "region": "Province" |
modified
docs/connecteurs/INDEX.md
+217 −217
@@ -1,228 +1,228 @@ | ||
| 1 | 1 | # Lou-Ka — Index des connecteurs |
| 2 | 2 | |
| 3 | −_Généré automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Généré automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**217 connecteurs documentés** (215 activés, 2 désactivés) · **58112 annonces actives** au total · registre : 281 entrées. | |
| 5 | +**217 connecteurs documentés** (215 activés, 2 désactivés) · **60703 annonces actives** au total · registre : 281 entrées. | |
| 6 | 6 | |
| 7 | 7 | | Connecteur | Nom | Région | Type d'accès | Backend | Actives/Total | GPS | Prix | Photos | État | Dernier sync OK | |
| 8 | 8 | |---|---|---|---|---|---|---|---|---|---|---| |
| 9 | −| [`aalto`](aalto.md) | Aalto Suites (Zibi / Dream) | Outaouais | API JSON interne du site | direct | 26/33 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:00 | | |
| 10 | −| [`acceslogis_gb`](acceslogis_gb.md) | Accès Logis GB | Lanaudière / Mauric… | pages HTML (rendu serveur) | direct | 10/11 | 20 % | 100 % | 100 % | actif | 2026-08-18 06:00 | | |
| 11 | −| [`agence_sherbrooke`](agence_sherbrooke.md) | Agence de location Sherbrooke (groupe P… | Estrie | sitemap XML + pages HTML | direct | 14/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 12 | −| [`akelius`](akelius.md) | Akelius Montréal | Montréal | pages HTML (rendu serveur) | direct | 242/290 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 13 | −| [`alexcellence`](alexcellence.md) | Immeubles Alexcellence | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 50 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 14 | −| [`alias_appartements`](alias_appartements.md) | Alias Appartements | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 15 | −| [`alouer_sherbrooke`](alouer_sherbrooke.md) | À Louer Sherbrooke | Estrie | API admin-ajax (WordPress) | direct | 1/1 | 0 % | 0 % | 100 % | actif | 2026-08-18 06:01 | | |
| 16 | −| [`app_urbains`](app_urbains.md) | Appartements Urbains | Québec | sitemap XML + pages HTML | direct | 18/21 | 100 % | 83 % | 100 % | actif | 2026-08-18 06:01 | | |
| 17 | −| [`appartements_rimouski`](appartements_rimouski.md) | Appartements Rimouski (Immeubles DTM) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 19/20 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 18 | −| [`ascensio`](ascensio.md) | Groupe Ascensio | Estrie | pages HTML (rendu serveur) | direct | 9/10 | 44 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 19 | −| [`atimco`](atimco.md) | Atimco | Montérégie | sitemap XML + pages HTML | direct | 299/299 | 100 % | 99 % | 96 % | actif | 2026-08-18 06:19 | | |
| 20 | −| [`atlas_immo`](atlas_immo.md) | Atlas société immobilière | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 0/0 | — | — | — | actif | 2026-08-18 06:01 | | |
| 21 | −| [`aula`](aula.md) | AULA Lévis | Québec | API REST WordPress (wp-json) | direct | 68/70 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 22 | −| [`axia`](axia.md) | Axia Appartements | Montréal | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 23 | −| [`barnes_quebec`](barnes_quebec.md) | BARNES Québec (location) | Montréal | API JSON interne du site | direct | 101/103 | 99 % | 98 % | 100 % | actif | 2026-08-18 06:01 | | |
| 24 | −| [`beaudoin`](beaudoin.md) | Société Beaudoin Immobilier | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 25 | −| [`beaulieu_groupe`](beaulieu_groupe.md) | Beaulieu Groupe Immobilier (BGI) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 0 % | 100 % | actif | 2026-08-18 06:01 | | |
| 26 | −| [`bestlife`](bestlife.md) | Les Gestions Bestlife | Estrie | pages HTML (rendu serveur) | direct | 12/13 | 92 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 27 | −| [`boardwalk`](boardwalk.md) | Boardwalk REIT | Montréal | pages HTML (rendu serveur) | direct | 100/100 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:02 | | |
| 28 | −| [`bons_locataires`](bons_locataires.md) | Bons Locataires | Grand Montréal | sitemap XML + pages HTML | direct | 14/14 | 100 % | 21 % | 93 % | actif | 2026-08-18 06:03 | | |
| 29 | −| [`boreal_abitibi`](boreal_abitibi.md) | Constructions Boréal Abitibi | Abitibi-Témiscaming… | API admin-ajax (WordPress) | direct | 3/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:03 | | |
| 30 | −| [`bribourg`](bribourg.md) | Bribourg | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:03 | | |
| 31 | −| [`brigil`](brigil.md) | Brigil | Outaouais | API JSON interne du site | direct | 42/42 | 98 % | 24 % | 100 % | actif | 2026-08-18 06:05 | | |
| 32 | −| [`brio`](brio.md) | Les Immeubles Brio | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 33 | −| [`brivia_1sp`](brivia_1sp.md) | Groupe Brivia (1 Square Phillips) | Montréal | API JSON interne du site | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 34 | −| [`brochu`](brochu.md) | Groupe Immobilier Brochu | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 57 % | 100 % | actif | 2026-08-18 06:05 | | |
| 35 | −| [`cap_gestion`](cap_gestion.md) | CAP Gestion (CAP Immobilier) | Laurentides / Lanau… | pages HTML (rendu serveur) | direct | 122/122 | 98 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 36 | −| [`capital_rdr`](capital_rdr.md) | Gestion Capital RDR | Mauricie | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 37 | −| [`capreit`](capreit.md) | CAPREIT | Québec | API admin-ajax (WordPress) | direct | 117/122 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 38 | −| [`carat_immobilier`](carat_immobilier.md) | Carat Immobilier | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 3/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 | | |
| 39 | −| [`centurion`](centurion.md) | Centurion / CP Living (Quartier QB) | Québec | API JSON interne du site | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-18 06:05 | | |
| 40 | −| [`cite_immobilier`](cite_immobilier.md) | Cité Immobilier | Centre-du-Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 0 % | actif | 2026-08-18 06:05 | | |
| 41 | −| [`cogir`](cogir.md) | Cogir Immobilier | Québec | pages HTML (rendu serveur) | direct | 285/300 | 89 % | 96 % | 100 % | actif | 2026-08-18 06:07 | | |
| 42 | −| [`contraste`](contraste.md) | Contraste Immobilier | Québec | pages HTML (rendu serveur) | direct | 221/234 | 100 % | 86 % | 100 % | actif | 2026-08-18 06:07 | | |
| 43 | −| [`copley`](copley.md) | Groupe Copley | Montréal | pages HTML (rendu serveur) | direct | 52/52 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:07 | | |
| 44 | −| [`cosoltec`](cosoltec.md) | Cosoltec (Evado, Le Monroe, Natür) | Laurentides | API JSON interne du site | direct | 44/52 | 98 % | 80 % | 100 % | actif | 2026-08-18 06:07 | | |
| 45 | −| [`courtemanche`](courtemanche.md) | Gestion Immobilière Courtemanche | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 0/0 | — | — | — | actif | 2026-08-18 06:07 | | |
| 46 | −| [`cromwell`](cromwell.md) | Cromwell Management | Montréal | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:07 | | |
| 47 | −| [`denux`](denux.md) | Groupe Denux | Montréal | API JSON interne du site | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:08 | | |
| 48 | −| [`desmarais`](desmarais.md) | Immeubles Desmarais | Outaouais | pages HTML (rendu serveur) | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:08 | | |
| 49 | −| [`desroches`](desroches.md) | Immeubles Claude Desroches | Montérégie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 50 % | actif | 2026-08-18 06:08 | | |
| 50 | −| [`devcore`](devcore.md) | Devcore Group | Côte-Nord | API REST WordPress (wp-json) | direct | 14/14 | 0 % | 7 % | 100 % | actif | 2026-08-18 06:08 | | |
| 51 | −| [`devimco`](devimco.md) | Devimco Appartements | Montréal | API JSON interne du site | direct | 480/575 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:09 | | |
| 52 | −| [`dma_locago`](dma_locago.md) | DMA / Locago (Douville, Moffet & Associ… | Québec | pages HTML (rendu serveur) | direct | 118/124 | 29 % | 98 % | 100 % | actif | 2026-08-18 06:09 | | |
| 53 | −| [`duproprio`](duproprio.md) | DuProprio (location) | Province | sitemap XML + pages HTML | direct | 3890/3896 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 | | |
| 54 | −| [`dynamic`](dynamic.md) | Gestion immobilière Dynamic | Estrie | pages HTML (rendu serveur) | direct | 48/53 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 55 | −| [`edifia`](edifia.md) | Edifia Groupe Immobilier | Québec | pages HTML (rendu serveur) | direct | 180/185 | 100 % | 94 % | 100 % | actif | 2026-08-18 06:10 | | |
| 56 | −| [`elements`](elements.md) | Quartier les Éléments | Québec | pages HTML (rendu serveur) | direct | 2/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 | | |
| 57 | −| [`elite`](elite.md) | Elite Immobilier | Outaouais | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 | | |
| 58 | −| [`elk`](elk.md) | ELK Property Management | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 06:10 | | |
| 59 | −| [`equinoxe_batimo`](equinoxe_batimo.md) | Batimo/EMD — Collection Équinoxe | Montréal | API admin-ajax (WordPress) | direct | 615/662 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:12 | | |
| 60 | −| [`evoludev`](evoludev.md) | Groupe Evoludev | Lanaudière | pages HTML (rendu serveur) | direct | 134/134 | 100 % | 99 % | 100 % | actif | 2026-08-18 06:12 | | |
| 61 | −| [`fb_marketplace`](fb_marketplace.md) | Facebook Marketplace (location) | Province | pages HTML (rendu serveur) | direct | 2270/6308 | 15 % | 100 % | 100 % | actif | 2026-08-18 06:19 | | |
| 62 | −| [`ferrovia`](ferrovia.md) | Ferrovia (condos locatifs Mirabel) | Laurentides | pages HTML (rendu serveur) | direct | 23/24 | 0 % | 0 % | 0 % | actif | 2026-08-18 06:19 | | |
| 63 | −| [`firma`](firma.md) | Groupe Firma | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 75 % | 8 % | 100 % | actif | 2026-08-18 06:20 | | |
| 64 | −| [`floria`](floria.md) | Gestion Floria | Estrie | pages HTML (rendu serveur) | direct | 21/21 | 100 % | 24 % | 95 % | actif | 2026-08-18 06:20 | | |
| 65 | −| [`forsa`](forsa.md) | Gestion immobilière Forsa | Lanaudière | pages HTML (rendu serveur) | direct | 13/13 | 92 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 66 | −| [`fournelle`](fournelle.md) | Appartements Fournelle (Groupe Fournell… | Centre-du-Québec | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 67 | −| [`garic`](garic.md) | Garic Gestion Immobilière | Outaouais | API admin-ajax (WordPress) | direct | 45/54 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 68 | −| [`gesteco`](gesteco.md) | Gesteco | Montérégie | API JSON interne du site | direct | 10/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 69 | −| [`gestimmo_estrie`](gestimmo_estrie.md) | Gestimmo Estrie | Estrie | pages HTML (rendu serveur) | direct | 41/41 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 70 | −| [`gestion_fauvel`](gestion_fauvel.md) | Gestion Fauvel | Centre-du-Québec | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-18 06:20 | | |
| 71 | −| [`gestion_habitation`](gestion_habitation.md) | Gestion Habitation | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 72 | −| [`gestion_isr`](gestion_isr.md) | Gestion ISR | Centre-du-Québec | pages HTML (rendu serveur) | direct | 20/22 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 73 | −| [`gestion_jdm`](gestion_jdm.md) | JDM Gestion immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 2/2 | 100 % | 0 % | 100 % | actif | 2026-08-18 06:20 | | |
| 74 | −| [`gestion_laprise`](gestion_laprise.md) | Gestion Laprise | Côte-Nord | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-18 06:20 | | |
| 75 | −| [`gestion_legrand`](gestion_legrand.md) | Gestion Le Grand | Centre-du-Québec | API REST WordPress (wp-json) | direct | 5/5 | 40 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 76 | −| [`gestion_montreal`](gestion_montreal.md) | Gestion Montréal | Montréal | pages HTML (rendu serveur) | direct | 22/24 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 77 | −| [`gestion_tb`](gestion_tb.md) | Gestion TB (portail Appartements TB) | Centre-du-Québec | pages HTML (rendu serveur) | direct | 31/35 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 | | |
| 78 | −| [`gestion_valco`](gestion_valco.md) | Gestion Valco | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 50 % | actif | 2026-08-18 06:20 | | |
| 79 | −| [`gestipro`](gestipro.md) | Gestipro | Québec | pages HTML (rendu serveur) | direct | 98/116 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:34 | | |
| 80 | −| [`gia_t`](gia_t.md) | GIA-T — Gestion Immobilière Abitibi-Tém… | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 3/4 | 67 % | 100 % | 100 % | actif | 2026-08-18 03:34 | | |
| 81 | −| [`gimcote`](gimcote.md) | GIM Côté | Québec | pages HTML (rendu serveur) | direct | 85/89 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 | | |
| 82 | −| [`gio`](gio.md) | Gestion Immobilière de l'Outaouais (GIO) | Outaouais | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 | | |
| 83 | −| [`girescom`](girescom.md) | Girescom gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 40/41 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 | | |
| 84 | −| [`girs`](girs.md) | GIRS — Gestion Immobilière de la Rive S… | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 8/8 | 100 % | 0 % | 100 % | actif | 2026-08-18 03:35 | | |
| 85 | −| [`gparadis`](gparadis.md) | GParadis | Québec | pages HTML (rendu serveur) | direct | 22/22 | 82 % | 0 % | 100 % | actif | 2026-08-18 03:35 | | |
| 86 | −| [`groupe_dallaire`](groupe_dallaire.md) | Groupe Dallaire (Faubourg du Moulin) | Québec | API admin-ajax (WordPress) | Scrapfly | 255/259 | 100 % | 100 % | 100 % | actif (dégradé) | 2026-08-18 03:41 | | |
| 87 | −| [`groupe_jacques`](groupe_jacques.md) | Groupe Jacques | Centre-du-Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 60 % | 100 % | actif | 2026-08-18 03:41 | | |
| 88 | −| [`groupe_maurice`](groupe_maurice.md) | Le Groupe Maurice | Province | API REST WordPress (wp-json) | direct | 203/203 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:41 | | |
| 89 | −| [`groupe_robin`](groupe_robin.md) | Groupe Robin | Mauricie | API admin-ajax (WordPress) | direct | 72/74 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:41 | | |
| 90 | −| [`groupe_theoret`](groupe_theoret.md) | Groupe Théorêt (Gestion Immobilière) | Mauricie | pages HTML (rendu serveur) | direct | 24/24 | 83 % | 100 % | 0 % | actif | 2026-08-18 03:41 | | |
| 91 | −| [`habitations_jeanne`](habitations_jeanne.md) | Les Habitations Jeanne | Côte-Nord | sitemap XML + pages HTML | direct | 14/14 | 100 % | 0 % | 100 % | actif | 2026-08-18 03:41 | | |
| 92 | −| [`habitations_sf`](habitations_sf.md) | Les Habitations SF (S&F Gestion) | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 43 % | 86 % | 100 % | actif | 2026-08-18 03:41 | | |
| 93 | −| [`halfred`](halfred.md) | Halfred | Outaouais | pages HTML (rendu serveur) | direct | 164/169 | 93 % | 100 % | 100 % | actif | 2026-08-18 03:42 | | |
| 94 | −| [`hazelview`](hazelview.md) | Hazelview Properties | Montréal | API JSON interne du site | direct | 6/6 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:42 | | |
| 95 | −| [`headway`](headway.md) | La Corporation Headway | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 0 % | 100 % | actif | 2026-08-18 03:42 | | |
| 96 | −| [`heafey`](heafey.md) | Groupe Heafey (Le We 2, Le We 3, Loggia… | Outaouais | API JSON interne du site | direct | 246/255 | 15 % | 0 % | 100 % | actif | 2026-08-18 03:43 | | |
| 97 | −| [`hestia`](hestia.md) | Hestia Groupe immobilier | Mauricie | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 98 | −| [`huma`](huma.md) | HUMĀ Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 38/38 | 26 % | 0 % | 100 % | actif | 2026-08-18 03:43 | | |
| 99 | −| [`immeubles_aeb`](immeubles_aeb.md) | Immeubles AEB | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 26/26 | 100 % | 100 % | 81 % | actif | 2026-08-18 03:43 | | |
| 100 | −| [`immeubles_bc`](immeubles_bc.md) | Les Immeubles Beaulieu et Collin | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/26 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 101 | −| [`immeubles_bois`](immeubles_bois.md) | Les Immeubles Bois | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 23/23 | 83 % | 0 % | 100 % | actif | 2026-08-18 03:43 | | |
| 102 | −| [`immeubles_db`](immeubles_db.md) | Les Immeubles D.B. Busque-Massé | Estrie | pages HTML (rendu serveur) | direct | 13/13 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 103 | −| [`immeubles_dcl`](immeubles_dcl.md) | Les Immeubles DCL | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 8/11 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 104 | −| [`immeubles_guillot`](immeubles_guillot.md) | Les Immeubles Guillot | Québec | pages HTML (rendu serveur) | direct | 7/7 | 57 % | 0 % | 100 % | actif | 2026-08-18 03:43 | | |
| 105 | −| [`immeubles_ouellet`](immeubles_ouellet.md) | Les Immeubles Vianney Ouellet & Fils | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 106 | −| [`immeubles_pm`](immeubles_pm.md) | Les Immeubles PM | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 107 | −| [`immnasr`](immnasr.md) | Les Immeubles Michel Nazair | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 108 | −| [`immobilia`](immobilia.md) | Immobilia Rimouski | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 109 | −| [`immogex`](immogex.md) | Immogex | Centre-du-Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 | | |
| 110 | −| [`immomarketing`](immomarketing.md) | IMMOMARKETING (Immoappart) | Québec | pages HTML (rendu serveur) | direct | 83/90 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:44 | | |
| 111 | −| [`immostar`](immostar.md) | Immostar | Québec | API REST WordPress (wp-json) | direct | 156/165 | 72 % | 99 % | 100 % | actif | 2026-08-18 03:44 | | |
| 112 | −| [`info_logement`](info_logement.md) | Info-Logement | Lanaudière | pages HTML (rendu serveur) | direct | 50/56 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:45 | | |
| 113 | −| [`interrent`](interrent.md) | InterRent REIT (CLV Group) | Montréal | pages HTML (rendu serveur) | direct | 200/211 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:45 | | |
| 114 | −| [`jutras`](jutras.md) | Habitations Jutras | Centre-du-Québec | pages HTML (rendu serveur) | direct | 35/35 | 0 % | 54 % | 100 % | actif | 2026-08-18 03:45 | | |
| 115 | −| [`kangalou`](kangalou.md) | Kangalou | Province | API JSON interne du site | direct | 7916/7916 | 100 % | 100 % | 99 % | actif | 2026-08-18 03:54 | | |
| 116 | −| [`kass`](kass.md) | KASS Property Management | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:54 | | |
| 117 | −| [`katasa`](katasa.md) | Groupe Katasa | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 03:54 | | |
| 118 | −| [`kijiji`](kijiji.md) | Kijiji Québec (location) | Province | pages HTML (rendu serveur) | direct | 5251/7409 | 100 % | 97 % | 99 % | actif | 2026-08-18 04:02 | | |
| 119 | −| [`la_cour`](la_cour.md) | La Cour Appartements | Québec | API REST WordPress (wp-json) | direct | 20/21 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 | | |
| 120 | −| [`laberge`](laberge.md) | Groupe Laberge | Québec | pages HTML (rendu serveur) | direct | 55/58 | 93 % | 100 % | 100 % | actif | 2026-08-18 04:02 | | |
| 121 | −| [`labonte`](labonte.md) | Gestion Labonté | Estrie | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:02 | | |
| 122 | −| [`lachance`](lachance.md) | Les Entreprises Lachance | Estrie | sitemap XML + pages HTML | direct | 65/86 | 95 % | 100 % | 100 % | actif | 2026-08-18 04:04 | | |
| 123 | −| [`lacite`](lacite.md) | La Cité Gatineau (Adam Real Estate) | Outaouais | pages HTML (rendu serveur) | direct | 6/7 | 0 % | 0 % | 100 % | actif | 2026-08-18 04:06 | | |
| 124 | −| [`lafrance_mathieu`](lafrance_mathieu.md) | Lafrance & Mathieu | Québec | pages HTML (rendu serveur) | direct | 37/40 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:06 | | |
| 125 | −| [`lakle`](lakle.md) | La Klé | Québec | API REST WordPress (wp-json) | direct | 45/49 | 100 % | 56 % | 96 % | actif | 2026-08-18 04:07 | | |
| 126 | −| [`lambert`](lambert.md) | Société Immobilière Lambert | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-18 04:07 | | |
| 127 | −| [`laureat_richard`](laureat_richard.md) | Logements Lauréat Richard | Estrie | pages HTML (rendu serveur) | direct | 23/23 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:07 | | |
| 128 | −| [`le_baronet`](le_baronet.md) | Le Baronet | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 129 | −| [`le_st_georges`](le_st_georges.md) | Le St-Georges | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 130 | −| [`leclif`](leclif.md) | Le Clif | Québec | pages HTML (rendu serveur) | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 131 | −| [`ledomaine`](ledomaine.md) | Les Habitations Le Domaine | Montréal | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 132 | −| [`lelaureat`](lelaureat.md) | Résidences Le Lauréat | Estrie | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 133 | −| [`lequerre`](lequerre.md) | Habitations L'Équerre | Estrie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 | | |
| 134 | −| [`lespac`](lespac.md) | LesPAC (location) | Province | pages HTML (rendu serveur) | direct | 2270/2568 | 47 % | 87 % | 93 % | actif | 2026-08-18 04:10 | | |
| 135 | −| [`leviu`](leviu.md) | Le VIU / VIU2 (Groupe Heafey) | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:10 | | |
| 136 | −| [`location_di`](location_di.md) | Location DI (Groupe Sphère DI) | Mauricie / Lanaudiè… | pages HTML (rendu serveur) | direct | 9/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 | | |
| 137 | −| [`location_saguenay`](location_saguenay.md) | Location Saguenay | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 21/21 | 76 % | 0 % | 100 % | actif | 2026-08-18 04:10 | | |
| 138 | −| [`loftsmtl`](loftsmtl.md) | Lofts MTL | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 | | |
| 139 | −| [`logement_mauricie`](logement_mauricie.md) | Logement Mauricie (regroupement de prop… | Mauricie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 | | |
| 140 | −| [`logis_experts`](logis_experts.md) | Logis-Experts | Québec | API JSON interne du site | direct | 498/517 | 100 % | 100 % | 39 % | actif | 2026-08-18 04:10 | | |
| 141 | −| [`logisbourg`](logisbourg.md) | Logisbourg | Québec | pages HTML (rendu serveur) | direct | 11/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:11 | | |
| 142 | −| [`logisco`](logisco.md) | Logisco | Québec | pages HTML (rendu serveur) | direct | 157/174 | 99 % | 100 % | 100 % | actif | 2026-08-18 04:11 | | |
| 143 | −| [`logisma`](logisma.md) | Logisma | Québec | API REST WordPress (wp-json) | direct | 15/19 | 80 % | 100 % | 100 % | actif | 2026-08-18 04:11 | | |
| 144 | −| [`logispro`](logispro.md) | LogisPro Rimouski | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-18 04:11 | | |
| 145 | −| [`logisquebec`](logisquebec.md) | LogisQuébec | Province | sitemap XML + pages HTML | direct | 6791/6794 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:20 | | |
| 146 | −| [`lokalia`](lokalia.md) | Espaces Lokalia | Québec | API admin-ajax (WordPress) | direct | 131/135 | 100 % | 82 % | 100 % | actif | 2026-08-18 04:21 | | |
| 147 | −| [`louer_ca`](louer_ca.md) | Louer.ca | Province | API GraphQL interne | direct | 4576/5357 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 | | |
| 148 | −| [`louer_saguenay`](louer_saguenay.md) | Louer Saguenay | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 | | |
| 149 | −| [`louis14`](louis14.md) | Quartier Louis Quatorze (Groupe Damco) | Québec | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 | | |
| 150 | −| [`lr_gestion`](lr_gestion.md) | LR Gestion immobilière (LR Location) | Outaouais | pages HTML (rendu serveur) | direct | 111/116 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 | | |
| 151 | −| [`luxuor`](luxuor.md) | Les Immeubles Luxuor | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 0 % | 100 % | actif | 2026-08-18 04:34 | | |
| 152 | −| [`lynk_olymbec`](lynk_olymbec.md) | Lynk (Olymbec) | Montréal | pages HTML (rendu serveur) | Firecrawl | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:34 | | |
| 153 | −| [`m_immobilier`](m_immobilier.md) | M Immobilier (location) | Montréal | pages HTML (rendu serveur) | direct | 193/199 | 59 % | 100 % | 100 % | actif | 2026-08-18 04:34 | | |
| 154 | −| [`majestic`](majestic.md) | Le Majestic du Lac Boivin | Montérégie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 0 % | actif | 2026-08-18 04:34 | | |
| 155 | −| [`matinale`](matinale.md) | Gestion Matinale | Estrie | pages HTML (rendu serveur) | direct | 44/45 | 57 % | 100 % | 100 % | actif | 2026-08-18 04:35 | | |
| 156 | −| [`may_bourg`](may_bourg.md) | Gestion May Bourg | Centre-du-Québec | API REST WordPress (wp-json) | direct | 6/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:35 | | |
| 157 | −| [`medway`](medway.md) | Groupe Medway | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 488/498 | 91 % | 100 % | 100 % | actif | 2026-08-18 04:36 | | |
| 158 | −| [`mellem`](mellem.md) | Mellem (Groupe Mach) | Outaouais | sitemap XML + pages HTML | direct | 78/87 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:36 | | |
| 159 | −| [`mercini`](mercini.md) | Groupe Mercini (Gestion Faleschini Merc… | Québec | pages HTML (rendu serveur) | direct | 47/52 | 94 % | 100 % | 100 % | actif | 2026-08-18 04:37 | | |
| 160 | −| [`metcap`](metcap.md) | MetCap Living | Montréal | pages HTML (rendu serveur) | direct | 8/8 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:37 | | |
| 161 | −| [`minto`](minto.md) | Minto Apartments | Montréal | pages HTML (rendu serveur) | direct | 19/20 | 84 % | 100 % | 100 % | actif | 2026-08-18 04:37 | | |
| 162 | −| [`mkar`](mkar.md) | Gestion Immobilière MKAR | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:37 | | |
| 163 | −| [`moderno`](moderno.md) | Moderno Construction | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:37 | | |
| 164 | −| [`mondev`](mondev.md) | Mondev | Montréal | pages HTML (rendu serveur) | direct | 47/49 | 49 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 165 | −| [`montagnais`](montagnais.md) | Le Montagnais, résidences étudiantes | Estrie | API admin-ajax (WordPress) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 166 | −| [`morin`](morin.md) | Constructions Morin | Estrie | pages HTML (rendu serveur) | direct | 6/7 | 83 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 167 | −| [`msi`](msi.md) | MSI Gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 96/105 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 168 | −| [`multi_logis`](multi_logis.md) | Multi-Logis | Côte-Nord | sitemap XML + pages HTML | direct | 27/27 | 100 % | 96 % | 70 % | actif | 2026-08-18 04:38 | | |
| 169 | −| [`niddamour`](niddamour.md) | Nid d'Amour | Montréal | API JSON interne du site | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 170 | −| [`novelo`](novelo.md) | Les Appartements Novelo | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 | | |
| 171 | −| [`oklouer`](oklouer.md) | OK Louer (location temporaire) | Québec | pages HTML (rendu serveur) | direct | 41/41 | 95 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 172 | −| [`omhm`](omhm.md) | OMHM — logements abordables | Montréal | pages HTML (rendu serveur) | direct | 3/3 | 0 % | 100 % | 0 % | actif | 2026-08-18 04:39 | | |
| 173 | −| [`osgoode`](osgoode.md) | Osgoode Properties | Outaouais | API JSON interne du site | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 174 | −| [`oxford`](oxford.md) | Appartements Oxford | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 175 | −| [`per`](per.md) | Les Immeubles Paul-E. Richard | Québec | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 176 | −| [`picard`](picard.md) | Picard Immobilier | Québec | pages HTML (rendu serveur) | direct | 34/34 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 177 | −| [`place_florimay`](place_florimay.md) | Place Florimay | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 0/0 | — | — | — | actif | 2026-08-18 04:39 | | |
| 178 | −| [`plan_a`](plan_a.md) | Plan A Immobilier | Montréal | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-18 04:39 | | |
| 179 | −| [`progim`](progim.md) | Progim | Montréal | pages HTML (rendu serveur) | direct | 62/68 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 | | |
| 180 | −| [`projection_immo`](projection_immo.md) | Projection Immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 1/1 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:40 | | |
| 181 | −| [`promenade_des_forts`](promenade_des_forts.md) | Promenade des Forts | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 182 | −| [`proprio_direct`](proprio_direct.md) | Proprio Direct (location) | Province | API JSON interne du site | direct | 190/190 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 183 | −| [`quanta`](quanta.md) | Gestion Quanta | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 184 | −| [`quartier_mosaique`](quartier_mosaique.md) | Quartier Mosaïque (Constrobourg) | Québec | pages HTML (rendu serveur) | direct | 24/24 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 185 | −| [`quartier_oree`](quartier_oree.md) | Quartier Orée | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 186 | −| [`quartier_plus`](quartier_plus.md) | Le Quartier Plus | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 59/59 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:40 | | |
| 187 | −| [`quartier_sila`](quartier_sila.md) | Quartier Sila | Québec | pages HTML (rendu serveur) | direct | 199/200 | 100 % | 26 % | 100 % | actif | 2026-08-18 04:40 | | |
| 188 | −| [`realstar`](realstar.md) | Realstar | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 | | |
| 189 | −| [`remax_quebec`](remax_quebec.md) | RE/MAX Québec (location) | Province | pages HTML (rendu serveur) | direct | 3237/3379 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:43 | | |
| 190 | −| [`rentals_ca`](rentals_ca.md) | Rentals.ca (Québec) | Province | API GraphQL interne | Scrapfly | 4906/4906 | 100 % | 100 % | 90 % | actif | 2026-08-18 04:49 | | |
| 191 | −| [`rentalys`](rentalys.md) | Rentalys | Montréal | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:49 | | |
| 9 | +| [`aalto`](aalto.md) | Aalto Suites (Zibi / Dream) | Outaouais | API JSON interne du site | direct | 24/35 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 10 | +| [`acceslogis_gb`](acceslogis_gb.md) | Accès Logis GB | Lanaudière / Mauric… | pages HTML (rendu serveur) | direct | 10/11 | 20 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 11 | +| [`agence_sherbrooke`](agence_sherbrooke.md) | Agence de location Sherbrooke (groupe P… | Estrie | sitemap XML + pages HTML | direct | 13/19 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 12 | +| [`akelius`](akelius.md) | Akelius Montréal | Montréal | pages HTML (rendu serveur) | direct | 231/302 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 13 | +| [`alexcellence`](alexcellence.md) | Immeubles Alexcellence | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 50 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 14 | +| [`alias_appartements`](alias_appartements.md) | Alias Appartements | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 15 | +| [`alouer_sherbrooke`](alouer_sherbrooke.md) | À Louer Sherbrooke | Estrie | API admin-ajax (WordPress) | direct | 1/1 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:18 | | |
| 16 | +| [`app_urbains`](app_urbains.md) | Appartements Urbains | Québec | sitemap XML + pages HTML | direct | 17/21 | 100 % | 82 % | 100 % | actif | 2026-08-22 17:18 | | |
| 17 | +| [`appartements_rimouski`](appartements_rimouski.md) | Appartements Rimouski (Immeubles DTM) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/24 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 18 | +| [`ascensio`](ascensio.md) | Groupe Ascensio | Estrie | pages HTML (rendu serveur) | direct | 9/10 | 44 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 19 | +| [`atimco`](atimco.md) | Atimco | Montérégie | sitemap XML + pages HTML | direct | 299/299 | 100 % | 99 % | 96 % | actif | 2026-08-22 17:19 | | |
| 20 | +| [`atlas_immo`](atlas_immo.md) | Atlas société immobilière | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 0/0 | — | — | — | actif | 2026-08-22 17:19 | | |
| 21 | +| [`aula`](aula.md) | AULA Lévis | Québec | API REST WordPress (wp-json) | direct | 68/70 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 | | |
| 22 | +| [`axia`](axia.md) | Axia Appartements | Montréal | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 | | |
| 23 | +| [`barnes_quebec`](barnes_quebec.md) | BARNES Québec (location) | Montréal | API JSON interne du site | direct | 101/110 | 100 % | 99 % | 100 % | actif | 2026-08-22 17:19 | | |
| 24 | +| [`beaudoin`](beaudoin.md) | Société Beaudoin Immobilier | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 | | |
| 25 | +| [`beaulieu_groupe`](beaulieu_groupe.md) | Beaulieu Groupe Immobilier (BGI) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-22 17:19 | | |
| 26 | +| [`bestlife`](bestlife.md) | Les Gestions Bestlife | Estrie | pages HTML (rendu serveur) | direct | 15/16 | 87 % | 100 % | 100 % | actif | 2026-08-22 17:19 | | |
| 27 | +| [`boardwalk`](boardwalk.md) | Boardwalk REIT | Montréal | pages HTML (rendu serveur) | direct | 100/100 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:20 | | |
| 28 | +| [`bons_locataires`](bons_locataires.md) | Bons Locataires | Grand Montréal | sitemap XML + pages HTML | direct | 17/17 | 100 % | 35 % | 94 % | actif | 2026-08-22 17:24 | | |
| 29 | +| [`boreal_abitibi`](boreal_abitibi.md) | Constructions Boréal Abitibi | Abitibi-Témiscaming… | API admin-ajax (WordPress) | direct | 3/6 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 | | |
| 30 | +| [`bribourg`](bribourg.md) | Bribourg | Québec | pages HTML (rendu serveur) | direct | 2/5 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:24 | | |
| 31 | +| [`brigil`](brigil.md) | Brigil | Outaouais | API JSON interne du site | direct | 42/42 | 98 % | 24 % | 100 % | actif | 2026-08-22 17:24 | | |
| 32 | +| [`brio`](brio.md) | Les Immeubles Brio | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 | | |
| 33 | +| [`brivia_1sp`](brivia_1sp.md) | Groupe Brivia (1 Square Phillips) | Montréal | API JSON interne du site | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 | | |
| 34 | +| [`brochu`](brochu.md) | Groupe Immobilier Brochu | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 57 % | 100 % | actif | 2026-08-22 17:24 | | |
| 35 | +| [`cap_gestion`](cap_gestion.md) | CAP Gestion (CAP Immobilier) | Laurentides / Lanau… | pages HTML (rendu serveur) | direct | 122/123 | 98 % | 100 % | 100 % | actif | 2026-08-22 17:25 | | |
| 36 | +| [`capital_rdr`](capital_rdr.md) | Gestion Capital RDR | Mauricie | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 | | |
| 37 | +| [`capreit`](capreit.md) | CAPREIT | Québec | API admin-ajax (WordPress) | direct | 116/123 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 | | |
| 38 | +| [`carat_immobilier`](carat_immobilier.md) | Carat Immobilier | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 3/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 | | |
| 39 | +| [`centurion`](centurion.md) | Centurion / CP Living (Quartier QB) | Québec | API JSON interne du site | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-22 17:25 | | |
| 40 | +| [`cite_immobilier`](cite_immobilier.md) | Cité Immobilier | Centre-du-Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 0 % | actif | 2026-08-22 17:25 | | |
| 41 | +| [`cogir`](cogir.md) | Cogir Immobilier | Québec | pages HTML (rendu serveur) | direct | 282/300 | 92 % | 96 % | 100 % | actif | 2026-08-22 17:26 | | |
| 42 | +| [`contraste`](contraste.md) | Contraste Immobilier | Québec | pages HTML (rendu serveur) | direct | 208/234 | 100 % | 86 % | 100 % | actif | 2026-08-22 17:27 | | |
| 43 | +| [`copley`](copley.md) | Groupe Copley | Montréal | pages HTML (rendu serveur) | direct | 52/52 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 | | |
| 44 | +| [`cosoltec`](cosoltec.md) | Cosoltec (Evado, Le Monroe, Natür) | Laurentides | API JSON interne du site | direct | 44/57 | 100 % | 80 % | 100 % | actif | 2026-08-22 17:27 | | |
| 45 | +| [`courtemanche`](courtemanche.md) | Gestion Immobilière Courtemanche | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 0/0 | — | — | — | actif | 2026-08-22 17:27 | | |
| 46 | +| [`cromwell`](cromwell.md) | Cromwell Management | Montréal | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 | | |
| 47 | +| [`denux`](denux.md) | Groupe Denux | Montréal | API JSON interne du site | direct | 20/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 | | |
| 48 | +| [`desmarais`](desmarais.md) | Immeubles Desmarais | Outaouais | pages HTML (rendu serveur) | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 | | |
| 49 | +| [`desroches`](desroches.md) | Immeubles Claude Desroches | Montérégie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 50 % | actif | 2026-08-22 17:28 | | |
| 50 | +| [`devcore`](devcore.md) | Devcore Group | Côte-Nord | API REST WordPress (wp-json) | direct | 14/14 | 0 % | 7 % | 100 % | actif | 2026-08-22 14:28 | | |
| 51 | +| [`devimco`](devimco.md) | Devimco Appartements | Montréal | API JSON interne du site | direct | 238/576 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:28 | | |
| 52 | +| [`dma_locago`](dma_locago.md) | DMA / Locago (Douville, Moffet & Associ… | Québec | pages HTML (rendu serveur) | direct | 116/126 | 28 % | 98 % | 100 % | actif | 2026-08-22 14:29 | | |
| 53 | +| [`duproprio`](duproprio.md) | DuProprio (location) | Province | sitemap XML + pages HTML | direct | 3894/4109 | 100 % | 100 % | 99 % | actif | 2026-08-22 14:29 | | |
| 54 | +| [`dynamic`](dynamic.md) | Gestion immobilière Dynamic | Estrie | pages HTML (rendu serveur) | direct | 44/55 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 | | |
| 55 | +| [`edifia`](edifia.md) | Edifia Groupe Immobilier | Québec | pages HTML (rendu serveur) | direct | 177/185 | 100 % | 94 % | 100 % | actif | 2026-08-22 14:29 | | |
| 56 | +| [`elements`](elements.md) | Quartier les Éléments | Québec | pages HTML (rendu serveur) | direct | 2/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:30 | | |
| 57 | +| [`elite`](elite.md) | Elite Immobilier | Outaouais | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:30 | | |
| 58 | +| [`elk`](elk.md) | ELK Property Management | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-22 14:30 | | |
| 59 | +| [`equinoxe_batimo`](equinoxe_batimo.md) | Batimo/EMD — Collection Équinoxe | Montréal | API admin-ajax (WordPress) | direct | 616/662 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:32 | | |
| 60 | +| [`evoludev`](evoludev.md) | Groupe Evoludev | Lanaudière | pages HTML (rendu serveur) | direct | 134/134 | 100 % | 99 % | 100 % | actif | 2026-08-22 14:32 | | |
| 61 | +| [`fb_marketplace`](fb_marketplace.md) | Facebook Marketplace (location) | Province | API JSON interne du site | direct | 2387/22526 | 23 % | 100 % | 100 % | actif | 2026-08-22 17:23 | | |
| 62 | +| [`ferrovia`](ferrovia.md) | Ferrovia (condos locatifs Mirabel) | Laurentides | pages HTML (rendu serveur) | direct | 22/24 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:42 | | |
| 63 | +| [`firma`](firma.md) | Groupe Firma | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 75 % | 8 % | 100 % | actif | 2026-08-22 14:42 | | |
| 64 | +| [`floria`](floria.md) | Gestion Floria | Estrie | pages HTML (rendu serveur) | direct | 21/21 | 100 % | 24 % | 95 % | actif | 2026-08-22 14:42 | | |
| 65 | +| [`forsa`](forsa.md) | Gestion immobilière Forsa | Lanaudière | pages HTML (rendu serveur) | direct | 10/13 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 | | |
| 66 | +| [`fournelle`](fournelle.md) | Appartements Fournelle (Groupe Fournell… | Centre-du-Québec | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:42 | | |
| 67 | +| [`garic`](garic.md) | Garic Gestion Immobilière | Outaouais | API admin-ajax (WordPress) | direct | 45/54 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 | | |
| 68 | +| [`gesteco`](gesteco.md) | Gesteco | Montérégie | API JSON interne du site | direct | 9/15 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 | | |
| 69 | +| [`gestimmo_estrie`](gestimmo_estrie.md) | Gestimmo Estrie | Estrie | pages HTML (rendu serveur) | direct | 41/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 70 | +| [`gestion_fauvel`](gestion_fauvel.md) | Gestion Fauvel | Centre-du-Québec | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-22 14:43 | | |
| 71 | +| [`gestion_habitation`](gestion_habitation.md) | Gestion Habitation | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 72 | +| [`gestion_isr`](gestion_isr.md) | Gestion ISR | Centre-du-Québec | pages HTML (rendu serveur) | direct | 20/22 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 73 | +| [`gestion_jdm`](gestion_jdm.md) | JDM Gestion immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 2/2 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:43 | | |
| 74 | +| [`gestion_laprise`](gestion_laprise.md) | Gestion Laprise | Côte-Nord | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 14:43 | | |
| 75 | +| [`gestion_legrand`](gestion_legrand.md) | Gestion Le Grand | Centre-du-Québec | API REST WordPress (wp-json) | direct | 5/5 | 40 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 76 | +| [`gestion_montreal`](gestion_montreal.md) | Gestion Montréal | Montréal | pages HTML (rendu serveur) | direct | 23/26 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 77 | +| [`gestion_tb`](gestion_tb.md) | Gestion TB (portail Appartements TB) | Centre-du-Québec | pages HTML (rendu serveur) | direct | 30/36 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 78 | +| [`gestion_valco`](gestion_valco.md) | Gestion Valco | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 50 % | actif | 2026-08-22 14:43 | | |
| 79 | +| [`gestipro`](gestipro.md) | Gestipro | Québec | pages HTML (rendu serveur) | direct | 103/124 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 80 | +| [`gia_t`](gia_t.md) | GIA-T — Gestion Immobilière Abitibi-Tém… | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 5/7 | 80 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 81 | +| [`gimcote`](gimcote.md) | GIM Côté | Québec | pages HTML (rendu serveur) | direct | 86/91 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 82 | +| [`gio`](gio.md) | Gestion Immobilière de l'Outaouais (GIO) | Outaouais | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 83 | +| [`girescom`](girescom.md) | Girescom gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 40/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 | | |
| 84 | +| [`girs`](girs.md) | GIRS — Gestion Immobilière de la Rive S… | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 8/8 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:43 | | |
| 85 | +| [`gparadis`](gparadis.md) | GParadis | Québec | pages HTML (rendu serveur) | direct | 22/22 | 82 % | 0 % | 100 % | actif | 2026-08-22 14:43 | | |
| 86 | +| [`groupe_dallaire`](groupe_dallaire.md) | Groupe Dallaire (Faubourg du Moulin) | Québec | API admin-ajax (WordPress) | Scrapfly | 255/259 | 100 % | 100 % | 100 % | actif (dégradé) | 2026-08-22 14:44 | | |
| 87 | +| [`groupe_jacques`](groupe_jacques.md) | Groupe Jacques | Centre-du-Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 60 % | 100 % | actif | 2026-08-22 14:44 | | |
| 88 | +| [`groupe_maurice`](groupe_maurice.md) | Le Groupe Maurice | Province | API REST WordPress (wp-json) | direct | 203/203 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:45 | | |
| 89 | +| [`groupe_robin`](groupe_robin.md) | Groupe Robin | Mauricie | API admin-ajax (WordPress) | direct | 71/76 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:45 | | |
| 90 | +| [`groupe_theoret`](groupe_theoret.md) | Groupe Théorêt (Gestion Immobilière) | Mauricie | pages HTML (rendu serveur) | direct | 24/24 | 83 % | 100 % | 0 % | actif | 2026-08-22 14:45 | | |
| 91 | +| [`habitations_jeanne`](habitations_jeanne.md) | Les Habitations Jeanne | Côte-Nord | sitemap XML + pages HTML | direct | 14/14 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:45 | | |
| 92 | +| [`habitations_sf`](habitations_sf.md) | Les Habitations SF (S&F Gestion) | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 43 % | 86 % | 100 % | actif | 2026-08-22 14:45 | | |
| 93 | +| [`halfred`](halfred.md) | Halfred | Outaouais | pages HTML (rendu serveur) | direct | 165/171 | 93 % | 100 % | 100 % | actif | 2026-08-22 14:46 | | |
| 94 | +| [`hazelview`](hazelview.md) | Hazelview Properties | Montréal | API JSON interne du site | direct | 6/6 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 | | |
| 95 | +| [`headway`](headway.md) | La Corporation Headway | Québec | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:46 | | |
| 96 | +| [`heafey`](heafey.md) | Groupe Heafey (Le We 2, Le We 3, Loggia… | Outaouais | API JSON interne du site | direct | 246/261 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 | | |
| 97 | +| [`hestia`](hestia.md) | Hestia Groupe immobilier | Mauricie | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 | | |
| 98 | +| [`huma`](huma.md) | HUMĀ Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 38/38 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:47 | | |
| 99 | +| [`immeubles_aeb`](immeubles_aeb.md) | Immeubles AEB | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 26/26 | 100 % | 100 % | 81 % | actif | 2026-08-22 14:47 | | |
| 100 | +| [`immeubles_bc`](immeubles_bc.md) | Les Immeubles Beaulieu et Collin | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/30 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 101 | +| [`immeubles_bois`](immeubles_bois.md) | Les Immeubles Bois | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 23/23 | 87 % | 0 % | 100 % | actif | 2026-08-22 14:47 | | |
| 102 | +| [`immeubles_db`](immeubles_db.md) | Les Immeubles D.B. Busque-Massé | Estrie | pages HTML (rendu serveur) | direct | 13/13 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 103 | +| [`immeubles_dcl`](immeubles_dcl.md) | Les Immeubles DCL | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 7/11 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 104 | +| [`immeubles_guillot`](immeubles_guillot.md) | Les Immeubles Guillot | Québec | pages HTML (rendu serveur) | direct | 7/7 | 57 % | 0 % | 100 % | actif | 2026-08-22 14:47 | | |
| 105 | +| [`immeubles_ouellet`](immeubles_ouellet.md) | Les Immeubles Vianney Ouellet & Fils | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 106 | +| [`immeubles_pm`](immeubles_pm.md) | Les Immeubles PM | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 107 | +| [`immnasr`](immnasr.md) | Les Immeubles Michel Nazair | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 108 | +| [`immobilia`](immobilia.md) | Immobilia Rimouski | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 109 | +| [`immogex`](immogex.md) | Immogex | Centre-du-Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 110 | +| [`immomarketing`](immomarketing.md) | IMMOMARKETING (Immoappart) | Québec | pages HTML (rendu serveur) | direct | 83/94 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 | | |
| 111 | +| [`immostar`](immostar.md) | Immostar | Québec | API REST WordPress (wp-json) | direct | 156/165 | 78 % | 99 % | 100 % | actif | 2026-08-22 14:48 | | |
| 112 | +| [`info_logement`](info_logement.md) | Info-Logement | Lanaudière | pages HTML (rendu serveur) | direct | 56/64 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:48 | | |
| 113 | +| [`interrent`](interrent.md) | InterRent REIT (CLV Group) | Montréal | pages HTML (rendu serveur) | direct | 194/215 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:48 | | |
| 114 | +| [`jutras`](jutras.md) | Habitations Jutras | Centre-du-Québec | pages HTML (rendu serveur) | direct | 35/35 | 0 % | 60 % | 100 % | actif | 2026-08-22 14:48 | | |
| 115 | +| [`kangalou`](kangalou.md) | Kangalou | Province | API JSON interne du site | direct | 7774/8413 | 100 % | 100 % | 99 % | actif | 2026-08-22 14:50 | | |
| 116 | +| [`kass`](kass.md) | KASS Property Management | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:51 | | |
| 117 | +| [`katasa`](katasa.md) | Groupe Katasa | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:51 | | |
| 118 | +| [`kijiji`](kijiji.md) | Kijiji Québec (location) | Province | pages HTML (rendu serveur) | direct | 5314/9379 | 100 % | 97 % | 99 % | actif | 2026-08-22 15:00 | | |
| 119 | +| [`la_cour`](la_cour.md) | La Cour Appartements | Québec | API REST WordPress (wp-json) | direct | 19/21 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 | | |
| 120 | +| [`laberge`](laberge.md) | Groupe Laberge | Québec | pages HTML (rendu serveur) | direct | 57/62 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:00 | | |
| 121 | +| [`labonte`](labonte.md) | Gestion Labonté | Estrie | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:00 | | |
| 122 | +| [`lachance`](lachance.md) | Les Entreprises Lachance | Estrie | sitemap XML + pages HTML | direct | 75/98 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:02 | | |
| 123 | +| [`lacite`](lacite.md) | La Cité Gatineau (Adam Real Estate) | Outaouais | pages HTML (rendu serveur) | direct | 6/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:04 | | |
| 124 | +| [`lafrance_mathieu`](lafrance_mathieu.md) | Lafrance & Mathieu | Québec | pages HTML (rendu serveur) | direct | 37/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:04 | | |
| 125 | +| [`lakle`](lakle.md) | La Klé | Québec | API REST WordPress (wp-json) | direct | 43/49 | 100 % | 53 % | 100 % | actif | 2026-08-22 15:05 | | |
| 126 | +| [`lambert`](lambert.md) | Société Immobilière Lambert | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 15:05 | | |
| 127 | +| [`laureat_richard`](laureat_richard.md) | Logements Lauréat Richard | Estrie | pages HTML (rendu serveur) | direct | 23/23 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:05 | | |
| 128 | +| [`le_baronet`](le_baronet.md) | Le Baronet | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 4/6 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 129 | +| [`le_st_georges`](le_st_georges.md) | Le St-Georges | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 130 | +| [`leclif`](leclif.md) | Le Clif | Québec | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 131 | +| [`ledomaine`](ledomaine.md) | Les Habitations Le Domaine | Montréal | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 132 | +| [`lelaureat`](lelaureat.md) | Résidences Le Lauréat | Estrie | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 133 | +| [`lequerre`](lequerre.md) | Habitations L'Équerre | Estrie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 | | |
| 134 | +| [`lespac`](lespac.md) | LesPAC (location) | Province | pages HTML (rendu serveur) | direct | 2242/2882 | 100 % | 97 % | 93 % | actif | 2026-08-22 15:08 | | |
| 135 | +| [`leviu`](leviu.md) | Le VIU / VIU2 (Groupe Heafey) | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:08 | | |
| 136 | +| [`location_di`](location_di.md) | Location DI (Groupe Sphère DI) | Mauricie / Lanaudiè… | pages HTML (rendu serveur) | direct | 9/16 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:08 | | |
| 137 | +| [`location_saguenay`](location_saguenay.md) | Location Saguenay | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 21/21 | 76 % | 0 % | 100 % | actif | 2026-08-22 15:08 | | |
| 138 | +| [`loftsmtl`](loftsmtl.md) | Lofts MTL | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 | | |
| 139 | +| [`logement_mauricie`](logement_mauricie.md) | Logement Mauricie (regroupement de prop… | Mauricie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 | | |
| 140 | +| [`logis_experts`](logis_experts.md) | Logis-Experts | Québec | API JSON interne du site | direct | 487/519 | 100 % | 100 % | 38 % | actif | 2026-08-22 15:09 | | |
| 141 | +| [`logisbourg`](logisbourg.md) | Logisbourg | Québec | pages HTML (rendu serveur) | direct | 11/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 | | |
| 142 | +| [`logisco`](logisco.md) | Logisco | Québec | pages HTML (rendu serveur) | direct | 160/184 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:09 | | |
| 143 | +| [`logisma`](logisma.md) | Logisma | Québec | API REST WordPress (wp-json) | direct | 12/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 | | |
| 144 | +| [`logispro`](logispro.md) | LogisPro Rimouski | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-22 15:09 | | |
| 145 | +| [`logisquebec`](logisquebec.md) | LogisQuébec | Province | sitemap XML + pages HTML | direct | 9668/10178 | 100 % | 99 % | 100 % | actif | 2026-08-22 15:14 | | |
| 146 | +| [`lokalia`](lokalia.md) | Espaces Lokalia | Québec | API admin-ajax (WordPress) | direct | 130/141 | 100 % | 82 % | 100 % | actif | 2026-08-22 15:15 | | |
| 147 | +| [`louer_ca`](louer_ca.md) | Louer.ca | Province | API GraphQL interne | direct | 4613/5908 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 | | |
| 148 | +| [`louer_saguenay`](louer_saguenay.md) | Louer Saguenay | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 | | |
| 149 | +| [`louis14`](louis14.md) | Quartier Louis Quatorze (Groupe Damco) | Québec | pages HTML (rendu serveur) | direct | 17/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 | | |
| 150 | +| [`lr_gestion`](lr_gestion.md) | LR Gestion immobilière (LR Location) | Outaouais | pages HTML (rendu serveur) | direct | 106/116 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 | | |
| 151 | +| [`luxuor`](luxuor.md) | Les Immeubles Luxuor | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 0 % | 100 % | actif | 2026-08-22 15:22 | | |
| 152 | +| [`lynk_olymbec`](lynk_olymbec.md) | Lynk (Olymbec) | Montréal | pages HTML (rendu serveur) | Firecrawl | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:22 | | |
| 153 | +| [`m_immobilier`](m_immobilier.md) | M Immobilier (location) | Montréal | pages HTML (rendu serveur) | direct | 186/207 | 58 % | 100 % | 100 % | actif | 2026-08-22 15:22 | | |
| 154 | +| [`majestic`](majestic.md) | Le Majestic du Lac Boivin | Montérégie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 0 % | actif | 2026-08-22 15:22 | | |
| 155 | +| [`matinale`](matinale.md) | Gestion Matinale | Estrie | pages HTML (rendu serveur) | direct | 44/46 | 59 % | 100 % | 100 % | actif | 2026-08-22 15:23 | | |
| 156 | +| [`may_bourg`](may_bourg.md) | Gestion May Bourg | Centre-du-Québec | API REST WordPress (wp-json) | direct | 6/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:23 | | |
| 157 | +| [`medway`](medway.md) | Groupe Medway | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 482/499 | 91 % | 100 % | 100 % | actif | 2026-08-22 15:24 | | |
| 158 | +| [`mellem`](mellem.md) | Mellem (Groupe Mach) | Outaouais | sitemap XML + pages HTML | direct | 79/90 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:24 | | |
| 159 | +| [`mercini`](mercini.md) | Groupe Mercini (Gestion Faleschini Merc… | Québec | pages HTML (rendu serveur) | direct | 45/53 | 96 % | 100 % | 100 % | actif | 2026-08-22 15:24 | | |
| 160 | +| [`metcap`](metcap.md) | MetCap Living | Montréal | pages HTML (rendu serveur) | direct | 8/8 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:25 | | |
| 161 | +| [`minto`](minto.md) | Minto Apartments | Montréal | pages HTML (rendu serveur) | direct | 19/20 | 84 % | 100 % | 100 % | actif | 2026-08-22 15:25 | | |
| 162 | +| [`mkar`](mkar.md) | Gestion Immobilière MKAR | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:25 | | |
| 163 | +| [`moderno`](moderno.md) | Moderno Construction | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:25 | | |
| 164 | +| [`mondev`](mondev.md) | Mondev | Montréal | pages HTML (rendu serveur) | direct | 43/49 | 47 % | 100 % | 100 % | actif | 2026-08-22 15:26 | | |
| 165 | +| [`montagnais`](montagnais.md) | Le Montagnais, résidences étudiantes | Estrie | API admin-ajax (WordPress) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:26 | | |
| 166 | +| [`morin`](morin.md) | Constructions Morin | Estrie | pages HTML (rendu serveur) | direct | 6/7 | 83 % | 100 % | 100 % | actif | 2026-08-22 15:26 | | |
| 167 | +| [`msi`](msi.md) | MSI Gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 96/109 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 | | |
| 168 | +| [`multi_logis`](multi_logis.md) | Multi-Logis | Côte-Nord | sitemap XML + pages HTML | direct | 27/27 | 100 % | 96 % | 70 % | actif | 2026-08-22 15:27 | | |
| 169 | +| [`niddamour`](niddamour.md) | Nid d'Amour | Montréal | API JSON interne du site | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 | | |
| 170 | +| [`novelo`](novelo.md) | Les Appartements Novelo | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 | | |
| 171 | +| [`oklouer`](oklouer.md) | OK Louer (location temporaire) | Québec | pages HTML (rendu serveur) | direct | 41/41 | 98 % | 100 % | 100 % | actif | 2026-08-22 15:27 | | |
| 172 | +| [`omhm`](omhm.md) | OMHM — logements abordables | Montréal | pages HTML (rendu serveur) | direct | 3/4 | 67 % | 100 % | 0 % | actif | 2026-08-22 15:27 | | |
| 173 | +| [`osgoode`](osgoode.md) | Osgoode Properties | Outaouais | API JSON interne du site | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 | | |
| 174 | +| [`oxford`](oxford.md) | Appartements Oxford | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:28 | | |
| 175 | +| [`per`](per.md) | Les Immeubles Paul-E. Richard | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 | | |
| 176 | +| [`picard`](picard.md) | Picard Immobilier | Québec | pages HTML (rendu serveur) | direct | 29/34 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 | | |
| 177 | +| [`place_florimay`](place_florimay.md) | Place Florimay | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 0/0 | — | — | — | actif | 2026-08-22 15:28 | | |
| 178 | +| [`plan_a`](plan_a.md) | Plan A Immobilier | Montréal | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-22 15:28 | | |
| 179 | +| [`progim`](progim.md) | Progim | Montréal | pages HTML (rendu serveur) | direct | 65/73 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 | | |
| 180 | +| [`projection_immo`](projection_immo.md) | Projection Immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 1/1 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:28 | | |
| 181 | +| [`promenade_des_forts`](promenade_des_forts.md) | Promenade des Forts | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 182 | +| [`proprio_direct`](proprio_direct.md) | Proprio Direct (location) | Province | API JSON interne du site | direct | 183/193 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 183 | +| [`quanta`](quanta.md) | Gestion Quanta | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 184 | +| [`quartier_mosaique`](quartier_mosaique.md) | Quartier Mosaïque (Constrobourg) | Québec | pages HTML (rendu serveur) | direct | 24/24 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 185 | +| [`quartier_oree`](quartier_oree.md) | Quartier Orée | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 28/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 186 | +| [`quartier_plus`](quartier_plus.md) | Le Quartier Plus | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 59/59 | 100 % | 97 % | 100 % | actif | 2026-08-22 15:29 | | |
| 187 | +| [`quartier_sila`](quartier_sila.md) | Quartier Sila | Québec | pages HTML (rendu serveur) | direct | 198/200 | 100 % | 26 % | 100 % | actif | 2026-08-22 15:29 | | |
| 188 | +| [`realstar`](realstar.md) | Realstar | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 | | |
| 189 | +| [`remax_quebec`](remax_quebec.md) | RE/MAX Québec (location) | Province | pages HTML (rendu serveur) | direct | 3227/3518 | 100 % | 100 % | 99 % | actif | 2026-08-22 15:35 | | |
| 190 | +| [`rentals_ca`](rentals_ca.md) | Rentals.ca (Québec) | Province | API GraphQL interne | Scrapfly | 4439/5654 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:40 | | |
| 191 | +| [`rentalys`](rentalys.md) | Rentalys | Montréal | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:41 | | |
| 192 | 192 | | [`rivero`](rivero.md) | Le Rivero | Québec | pages HTML (rendu serveur) | direct | 0/214 | — | — | — | désactivé (disabled=True) | — | |
| 193 | −| [`roomies`](roomies.md) | Roomies.ca | Province | sitemap XML + pages HTML | direct | 277/278 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:50 | | |
| 194 | −| [`roussin`](roussin.md) | Immeubles Roussin | Québec | pages HTML (rendu serveur) | direct | 36/36 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:50 | | |
| 195 | −| [`royal_lepage`](royal_lepage.md) | Royal LePage (location) | Province | pages HTML (rendu serveur) | direct | 951/1043 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 196 | −| [`savouet`](savouet.md) | Groupe Savouet | Estrie | pages HTML (rendu serveur) | direct | 15/17 | 93 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 197 | −| [`sdg`](sdg.md) | SDG Immobilier | Québec | pages HTML (rendu serveur) | direct | 9/11 | 89 % | 0 % | 100 % | actif | 2026-08-18 04:53 | | |
| 198 | −| [`sentinelle`](sentinelle.md) | La Sentinelle (Groupe Immobilier Brochu) | Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 199 | −| [`sgiq`](sgiq.md) | SGIQ (Société de gestion immobilière du… | Québec | pages HTML (rendu serveur) | direct | 147/147 | 99 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 200 | −| [`shdm`](shdm.md) | SHDM | Montréal | API GraphQL interne | direct | 2/21 | 50 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 201 | −| [`siagi`](siagi.md) | SIA Gestion Immobilière | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 0 % | actif | 2026-08-18 04:53 | | |
| 202 | −| [`sibelanger`](sibelanger.md) | Société immobilière Bélanger | Québec | pages HTML (rendu serveur) | direct | 12/19 | 83 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 203 | −| [`sig`](sig.md) | Société d'investissement Gilbert (résid… | Québec | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 204 | −| [`simard`](simard.md) | Immeubles Simard | Québec | pages HTML (rendu serveur) | direct | 5/5 | 20 % | 40 % | 100 % | actif | 2026-08-18 04:53 | | |
| 205 | −| [`simplex`](simplex.md) | Simplex Immobilier | Mauricie | API JSON interne du site | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:19 | | |
| 206 | −| [`somex_saintnicolas`](somex_saintnicolas.md) | Somex Saint-Nicolas | Québec | pages HTML (rendu serveur) | direct | 145/145 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 207 | −| [`souleymane`](souleymane.md) | Gestion Souleymane | Outaouais | pages HTML (rendu serveur) | direct | 13/14 | 92 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 208 | −| [`stb_immobilier`](stb_immobilier.md) | STB Immobilier | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 11/11 | 91 % | 73 % | 100 % | actif | 2026-08-18 04:53 | | |
| 209 | −| [`summum`](summum.md) | Gestion immobilière Summum | Laurentides | pages HTML (rendu serveur) | direct | 89/95 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 | | |
| 210 | −| [`sutton`](sutton.md) | Groupe Sutton Québec (location) | Province | sitemap XML + pages HTML | direct | 1226/1393 | 70 % | 73 % | 73 % | actif | 2026-08-18 04:54 | | |
| 211 | −| [`terater`](terater.md) | Les Constructions Tèratèr | Estrie | pages HTML (rendu serveur) | direct | 12/14 | 67 % | 100 % | 100 % | actif | 2026-08-18 04:54 | | |
| 212 | −| [`terra`](terra.md) | Terra Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 29/51 | 100 % | 90 % | 100 % | actif | 2026-08-18 04:54 | | |
| 213 | −| [`thrace`](thrace.md) | Gestions Thrace | Mauricie | sitemap XML + pages HTML | direct | 172/182 | 100 % | 66 % | 100 % | actif | 2026-08-18 04:54 | | |
| 214 | −| [`tri_logis`](tri_logis.md) | Société immobilière Tri-Logis | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 0/1 | — | — | — | actif | 2026-08-18 04:54 | | |
| 193 | +| [`roomies`](roomies.md) | Roomies.ca | Province | sitemap XML + pages HTML | direct | 281/306 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:46 | | |
| 194 | +| [`roussin`](roussin.md) | Immeubles Roussin | Québec | pages HTML (rendu serveur) | direct | 36/36 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:46 | | |
| 195 | +| [`royal_lepage`](royal_lepage.md) | Royal LePage (location) | Province | pages HTML (rendu serveur) | direct | 954/1138 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 196 | +| [`savouet`](savouet.md) | Groupe Savouet | Estrie | pages HTML (rendu serveur) | direct | 15/17 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 197 | +| [`sdg`](sdg.md) | SDG Immobilier | Québec | pages HTML (rendu serveur) | direct | 9/11 | 89 % | 0 % | 100 % | actif | 2026-08-22 15:48 | | |
| 198 | +| [`sentinelle`](sentinelle.md) | La Sentinelle (Groupe Immobilier Brochu) | Québec | pages HTML (rendu serveur) | direct | 9/11 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 199 | +| [`sgiq`](sgiq.md) | SGIQ (Société de gestion immobilière du… | Québec | pages HTML (rendu serveur) | direct | 147/147 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 200 | +| [`shdm`](shdm.md) | SHDM | Montréal | API GraphQL interne | direct | 1/23 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 201 | +| [`siagi`](siagi.md) | SIA Gestion Immobilière | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 0 % | actif | 2026-08-22 15:48 | | |
| 202 | +| [`sibelanger`](sibelanger.md) | Société immobilière Bélanger | Québec | pages HTML (rendu serveur) | direct | 12/22 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 203 | +| [`sig`](sig.md) | Société d'investissement Gilbert (résid… | Québec | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 204 | +| [`simard`](simard.md) | Immeubles Simard | Québec | pages HTML (rendu serveur) | direct | 5/5 | 20 % | 40 % | 100 % | actif | 2026-08-22 15:48 | | |
| 205 | +| [`simplex`](simplex.md) | Simplex Immobilier | Mauricie | API JSON interne du site | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 206 | +| [`somex_saintnicolas`](somex_saintnicolas.md) | Somex Saint-Nicolas | Québec | pages HTML (rendu serveur) | direct | 145/145 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 207 | +| [`souleymane`](souleymane.md) | Gestion Souleymane | Outaouais | pages HTML (rendu serveur) | direct | 13/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 208 | +| [`stb_immobilier`](stb_immobilier.md) | STB Immobilier | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 11/11 | 91 % | 73 % | 100 % | actif | 2026-08-22 15:48 | | |
| 209 | +| [`summum`](summum.md) | Gestion immobilière Summum | Laurentides | pages HTML (rendu serveur) | direct | 89/97 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 | | |
| 210 | +| [`sutton`](sutton.md) | Groupe Sutton Québec (location) | Province | sitemap XML + pages HTML | direct | 1200/1490 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:49 | | |
| 211 | +| [`terater`](terater.md) | Les Constructions Tèratèr | Estrie | pages HTML (rendu serveur) | direct | 12/14 | 67 % | 100 % | 100 % | actif | 2026-08-22 15:49 | | |
| 212 | +| [`terra`](terra.md) | Terra Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 28/51 | 100 % | 89 % | 100 % | actif | 2026-08-22 15:49 | | |
| 213 | +| [`thrace`](thrace.md) | Gestions Thrace | Mauricie | sitemap XML + pages HTML | direct | 162/182 | 100 % | 65 % | 100 % | actif | 2026-08-22 15:49 | | |
| 214 | +| [`tri_logis`](tri_logis.md) | Société immobilière Tri-Logis | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 0/1 | — | — | — | actif | 2026-08-22 15:49 | | |
| 215 | 215 | | [`trudel`](trudel.md) | Trudel (Fleur de Lys, LGC) | Québec | pages HTML (rendu serveur) | direct | 0/30 | — | — | — | désactivé (disabled=True) | — | |
| 216 | −| [`trylon`](trylon.md) | Trylon Apartments | Montréal | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:54 | | |
| 217 | −| [`ubee`](ubee.md) | Ubee (location) | Province | API JSON interne du site | direct | 243/246 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 | | |
| 218 | −| [`uptimo`](uptimo.md) | Uptimo Gestion immobilière | Estrie | pages HTML (rendu serveur) | direct | 63/78 | 98 % | 98 % | 100 % | actif | 2026-08-18 04:55 | | |
| 219 | −| [`urban_services`](urban_services.md) | Urban Services (Urban Tenant Solutions) | Outaouais | pages HTML (rendu serveur) | direct | 52/56 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 | | |
| 220 | −| [`utile`](utile.md) | UTILE (logement étudiant) | Montréal | pages HTML (rendu serveur) | direct | 28/28 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 | | |
| 221 | −| [`via_capitale`](via_capitale.md) | Via Capitale (location) | Province | pages HTML (rendu serveur) | Firecrawl | 196/213 | 55 % | 100 % | 100 % | actif | 2026-08-18 04:56 | | |
| 222 | −| [`viridi`](viridi.md) | Le Viridi | Québec | pages HTML (rendu serveur) | direct | 16/17 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:56 | | |
| 223 | −| [`wandji`](wandji.md) | Gestion Immobilière Wandji | Outaouais | API JSON interne du site | direct | 26/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:56 | | |
| 224 | −| [`werkliv`](werkliv.md) | Werkliv | Montréal | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:56 | | |
| 225 | −| [`zumper`](zumper.md) | Zumper (Québec) | Province | API JSON interne du site | direct | 4345/4345 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:19 | | |
| 216 | +| [`trylon`](trylon.md) | Trylon Apartments | Montréal | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:49 | | |
| 217 | +| [`ubee`](ubee.md) | Ubee (location) | Province | API JSON interne du site | direct | 243/249 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:49 | | |
| 218 | +| [`uptimo`](uptimo.md) | Uptimo Gestion immobilière | Estrie | pages HTML (rendu serveur) | direct | 62/78 | 98 % | 98 % | 100 % | actif | 2026-08-22 15:50 | | |
| 219 | +| [`urban_services`](urban_services.md) | Urban Services (Urban Tenant Solutions) | Outaouais | pages HTML (rendu serveur) | direct | 44/56 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 220 | +| [`utile`](utile.md) | UTILE (logement étudiant) | Montréal | pages HTML (rendu serveur) | direct | 28/28 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 221 | +| [`via_capitale`](via_capitale.md) | Via Capitale (location) | Province | pages HTML (rendu serveur) | Firecrawl | 192/217 | 54 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 222 | +| [`viridi`](viridi.md) | Le Viridi | Québec | pages HTML (rendu serveur) | direct | 16/17 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 223 | +| [`wandji`](wandji.md) | Gestion Immobilière Wandji | Outaouais | API JSON interne du site | direct | 26/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 224 | +| [`werkliv`](werkliv.md) | Werkliv | Montréal | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:50 | | |
| 225 | +| [`zumper`](zumper.md) | Zumper (Québec) | Province | API JSON interne du site | direct | 4837/5095 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:54 | | |
| 226 | 226 | |
| 227 | 227 | ## Entrées du registre sans module connecteur |
| 228 | 228 | |
modified
docs/connecteurs/aalto.md
+15 −9
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Aalto Suites (Zibi / Dream) — connecteur `aalto` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 26/33 | |
| 5 | +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 24/35 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Aalto Suites (aaltosuites.ca — Zibi, Hull) Tours locatives Aalto et | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 26 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 24 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | 29 | |
| 30 | 30 | | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |
| 31 | 31 | |---|---|---|---| |
@@ -48,21 +48,27 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:00 — 26 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 24 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 2.0 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | −- **Annonces en BD** : 33 au total, **26 actives** | |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 58 | +- **Annonces en BD** : 35 au total, **24 actives** | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 5 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-18 15:44 | database is locked | | |
| 68 | +| 2026-08-18 15:37 | database is locked | | |
| 69 | +| 2026-08-18 15:35 | database is locked | | |
| 70 | +| 2026-08-18 15:28 | database is locked | | |
| 71 | +| 2026-08-18 15:25 | database is locked | | |
| 66 | 72 | |
| 67 | 73 | Rejouer la source seule : `python3 run.py sync aalto` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='aalto' ORDER BY ts DESC LIMIT 5;`). |
| 68 | 74 | |
modified
docs/connecteurs/acceslogis_gb.md
+6 −5
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Accès Logis GB — connecteur `acceslogis_gb` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière / Mauricie · Backend : direct · Annonces actives : 10/11 |
| 6 | 6 | |
@@ -48,22 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:00 — 10 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 10 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 11 au total, **10 actives** |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 20 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | 65 | | Date | Message (sync_log) | |
| 66 | 66 | |---|---| |
| 67 | +| 2026-08-18 15:29 | database is locked | | |
| 67 | 68 | | 2026-08-17 17:46 | HTTPSConnectionPool(host='acceslogisgb.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPSConnection(host='acceslogisgb.com'… | |
| 68 | 69 | |
| 69 | 70 | Rejouer la source seule : `python3 run.py sync acceslogis_gb` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='acceslogis_gb' ORDER BY ts DESC LIMIT 5;`). |
modified
docs/connecteurs/agence_sherbrooke.md
+27 −23
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Agence de location Sherbrooke (groupe Prestiplex) — connecteur `agence_sherbrooke` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 14/18 | |
| 5 | +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 13/19 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,44 +25,48 @@ connecteur Agence de location Sherbrooke (agencedelocationsherbrooke.com) — le | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 14 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 13 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | 29 | |
| 30 | 30 | | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |
| 31 | 31 | |---|---|---|---| |
| 32 | −| `title` | Titre de l'annonce | 100 % | 905 Courcelette | | |
| 33 | −| `address` | Adresse civique | 100 % | Rue de Courcelette, Mont-Bellevue | | |
| 34 | −| `city` | Ville (normalisée) | 100 % | Sherbrooke | | |
| 35 | −| `sector` | Secteur / quartier | 79 % | Les Nations | | |
| 36 | −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ | | |
| 37 | −| `price` | Loyer mensuel ($) | 100 % | 795 $ | | |
| 38 | −| `bedrooms` | Chambres | 100 % | 1 | | |
| 32 | +| `title` | Titre de l'annonce | 100 % | 89 des pins #4, East Angus | | |
| 33 | +| `address` | Adresse civique | 100 % | 89, Rue des Pins | | |
| 34 | +| `city` | Ville (normalisée) | 100 % | East Angus | | |
| 35 | +| `sector` | Secteur / quartier | 69 % | — | | |
| 36 | +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ | | |
| 37 | +| `price` | Loyer mensuel ($) | 100 % | 895 $ | | |
| 38 | +| `bedrooms` | Chambres | 100 % | 2 | | |
| 39 | 39 | | `bathrooms` | Salles de bain | 100 % | 1 | |
| 40 | −| `area_sqft` | Superficie (pi²) | 7 % | — | | |
| 40 | +| `area_sqft` | Superficie (pi²) | 8 % | — | | |
| 41 | 41 | | `availability_date` | Date de disponibilité | 100 % | now | |
| 42 | −| `lat` | GPS (lat/lng) | 100 % | 45.388177 | | |
| 43 | −| `description` | Description | 100 % | 3 ½ à louer – Disponible dès maintenant! Caractéristiques : 1 espace de stationnement inc… | | |
| 44 | −| `images` | Photos (JSON) | 100 % | 8 photo(s) — https://agencedelocationsherbrooke.com/wp-content/uploads/2026/07/image-2026… | | |
| 45 | −| `amenities` | Commodités (JSON) | 100 % | ["1 Chambre", "1 Salle de bain", "Chat permis", "Déneigement", "Entré laveuse/sécheuse"] | | |
| 46 | −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "appliances": {"washer_dryer": tru… | | |
| 47 | −| `url` | URL de l'annonce source | 100 % | https://agencedelocationsherbrooke.com/property/905-courcelette/ | | |
| 42 | +| `lat` | GPS (lat/lng) | 100 % | 45.4879551 | | |
| 43 | +| `description` | Description | 100 % | À louer – 4 ½ au 89 des pins, East Angus Disponible dès maintenant – logement situé au 1e… | | |
| 44 | +| `images` | Photos (JSON) | 100 % | 8 photo(s) — https://agencedelocationsherbrooke.com/wp-content/uploads/2026/04/image-2026… | | |
| 45 | +| `amenities` | Commodités (JSON) | 100 % | ["2 Chambres", "1 Salle de bain", "Chat permis", "Déneigement", "Entré lave-vaisselle", "… | | |
| 46 | +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": false, "electricity": false, "hot_water": false}, "appliances"… | | |
| 47 | +| `url` | URL de l'annonce source | 100 % | https://agencedelocationsherbrooke.com/property/89-des-pins-4-east-angus/ | | |
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 14 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 13 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | −- **Annonces en BD** : 18 au total, **14 actives** | |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 58 | +- **Annonces en BD** : 19 au total, **13 actives** | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 3 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-18 16:05 | database is locked | | |
| 68 | +| 2026-08-18 15:42 | database is locked | | |
| 69 | +| 2026-08-18 15:38 | database is locked | | |
| 66 | 70 | |
| 67 | 71 | Rejouer la source seule : `python3 run.py sync agence_sherbrooke` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='agence_sherbrooke' ORDER BY ts DESC LIMIT 5;`). |
| 68 | 72 | |
modified
docs/connecteurs/akelius.md
+11 −9
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Akelius Montréal — connecteur `akelius` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 242/290 | |
| 5 | +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 231/302 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Akelius Residential (rent.akelius.com) Page de recherche Canada rendu | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 242 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 231 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | 29 | |
| 30 | 30 | | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |
| 31 | 31 | |---|---|---|---| |
@@ -48,21 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 242 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 231 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | −- **Annonces en BD** : 290 au total, **242 actives** | |
| 59 | −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18 | |
| 58 | +- **Annonces en BD** : 302 au total, **231 actives** | |
| 59 | +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-18 16:06 | database is locked | | |
| 66 | 68 | |
| 67 | 69 | Rejouer la source seule : `python3 run.py sync akelius` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='akelius' ORDER BY ts DESC LIMIT 5;`). |
| 68 | 70 | |
modified
docs/connecteurs/alexcellence.md
+4 −4
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles Alexcellence — connecteur `alexcellence` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 6/6 |
| 6 | 6 | |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 6 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 6 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 6 au total, **6 actives** |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 50 % · prix 100 % · photos 100 % · description 100 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
| 62 | 62 | |
modified
docs/connecteurs/alias_appartements.md
+8 −6
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Alias Appartements — connecteur `alias_appartements` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -48,21 +48,23 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 1 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 1 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 1 au total, **1 actives** |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-18 15:30 | HTTPSConnectionPool(host='www.aliasappartements.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPSConnection(host='www.alia… | | |
| 66 | 68 | |
| 67 | 69 | **Note du registre** : actif — 1 annonce « catalogue » à granularité projet (type 4½, à partir de 1575 $, caractéristiques, photos) ; disponibilités par formulaire seulement |
| 68 | 70 | |
modified
docs/connecteurs/alouer_sherbrooke.md
+8 −6
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # À Louer Sherbrooke — connecteur `alouer_sherbrooke` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -48,21 +48,23 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 1 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 1 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 1 au total, **1 actives** |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 0 % · prix 0 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-18 15:49 | database is locked | | |
| 66 | 68 | |
| 67 | 69 | Rejouer la source seule : `python3 run.py sync alouer_sherbrooke` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='alouer_sherbrooke' ORDER BY ts DESC LIMIT 5;`). |
| 68 | 70 | |
modified
docs/connecteurs/app_urbains.md
+13 −13
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Appartements Urbains — connecteur `app_urbains` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 18/21 | |
| 5 | +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 17/21 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Appartements Urbains (appartementsurbains.ca — Ste-Foy, Montcalm, L | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 18 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 17 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | 29 | |
| 30 | 30 | | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |
| 31 | 31 | |---|---|---|---| |
@@ -33,12 +33,12 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 33 | 33 | | `address` | Adresse civique | 100 % | 1385 Rue Monseigneur-Plessis, Québec, QC | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Québec | |
| 35 | 35 | | `sector` | Secteur / quartier | 100 % | Limoilou | |
| 36 | −| `unit_type` | Type d'unité (3½, 4½…) | 89 % | 3½ | | |
| 37 | −| `price` | Loyer mensuel ($) | 83 % | 1 630 $ | | |
| 38 | −| `bedrooms` | Chambres | 89 % | 1 | | |
| 36 | +| `unit_type` | Type d'unité (3½, 4½…) | 88 % | 3½ | | |
| 37 | +| `price` | Loyer mensuel ($) | 82 % | 1 630 $ | | |
| 38 | +| `bedrooms` | Chambres | 88 % | 1 | | |
| 39 | 39 | | `bathrooms` | Salles de bain | 0 % | — | |
| 40 | −| `area_sqft` | Superficie (pi²) | 89 % | 915 | | |
| 41 | −| `availability_date` | Date de disponibilité | 33 % | now | | |
| 40 | +| `area_sqft` | Superficie (pi²) | 88 % | 915 | | |
| 41 | +| `availability_date` | Date de disponibilité | 29 % | now | | |
| 42 | 42 | | `lat` | GPS (lat/lng) | 100 % | 46.8175411 | |
| 43 | 43 | | `description` | Description | 100 % | Le Charlie est un projet de condos locatifs modernes et branchés. 90 unités construites p… | |
| 44 | 44 | | `images` | Photos (JSON) | 100 % | 16 photo(s) — https://lecharlie.ca/wp-content/uploads/vf-off-caneva-charlie-condo.jpg | |
@@ -48,16 +48,16 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 18 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 17 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | −- **Annonces en BD** : 21 au total, **18 actives** | |
| 59 | −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18 | |
| 60 | −- **Complétude clé (actives)** : GPS 100 % · prix 83 % · photos 100 % · description 100 % | |
| 58 | +- **Annonces en BD** : 21 au total, **17 actives** | |
| 59 | +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22 | |
| 60 | +- **Complétude clé (actives)** : GPS 100 % · prix 82 % · photos 100 % · description 100 % | |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
modified
docs/connecteurs/appartements_rimouski.md
+17 −11
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Appartements Rimouski (Immeubles DTM) — connecteur `appartements_rimouski` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 19/20 | |
| 5 | +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/24 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Appartements Rimouski (Immeubles DTM — appartementsrimouski.com, Ri | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 19 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 20 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | 29 | |
| 30 | 30 | | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |
| 31 | 31 | |---|---|---|---| |
@@ -36,33 +36,39 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 36 | 36 | | `unit_type` | Type d'unité (3½, 4½…) | 95 % | 5½ | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 100 % | 1 750 $ | |
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 3 | |
| 39 | −| `bathrooms` | Salles de bain | 89 % | 1 | | |
| 39 | +| `bathrooms` | Salles de bain | 85 % | 1 | | |
| 40 | 40 | | `area_sqft` | Superficie (pi²) | 0 % | — | |
| 41 | 41 | | `availability_date` | Date de disponibilité | 100 % | now | |
| 42 | 42 | | `lat` | GPS (lat/lng) | 100 % | 48.3760046 | |
| 43 | 43 | | `description` | Description | 100 % | Nous avons un beau logement 5 1/2 neuf de qualité supérieure à vous proposer, parfait pou… | |
| 44 | 44 | | `images` | Photos (JSON) | 100 % | 13 photo(s) — https://www.appartementsrimouski.com/wp-content/uploads/sites/334/2026/08/i… | |
| 45 | 45 | | `amenities` | Commodités (JSON) | 100 % | ["3 chambre(s)", "1 SDB"] | |
| 46 | −| `details` | Détails additionnels (JSON) | 89 % | {"inclusions": {"heating": false, "electricity": false, "internet": true}, "appliances": … | | |
| 46 | +| `details` | Détails additionnels (JSON) | 85 % | {"inclusions": {"heating": false, "electricity": false, "internet": true}, "appliances": … | | |
| 47 | 47 | | `url` | URL de l'annonce source | 100 % | https://www.appartementsrimouski.com/logements/5-1-2-neuf-dans-le-secteur-du-bic | |
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 19 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 20 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | −- **Annonces en BD** : 20 au total, **19 actives** | |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 58 | +- **Annonces en BD** : 24 au total, **20 actives** | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 8 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-22 13:06 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… | | |
| 68 | +| 2026-08-22 04:40 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… | | |
| 69 | +| 2026-08-21 11:30 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… | | |
| 70 | +| 2026-08-21 08:34 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… | | |
| 71 | +| 2026-08-20 21:18 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… | | |
| 66 | 72 | |
| 67 | 73 | Rejouer la source seule : `python3 run.py sync appartements_rimouski` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='appartements_rimouski' ORDER BY ts DESC LIMIT 5;`). |
| 68 | 74 | |
modified
docs/connecteurs/ascensio.md
+5 −5
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Ascensio — connecteur `ascensio` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 9/10 |
| 6 | 6 | |
@@ -32,7 +32,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 32 | 32 | | `title` | Titre de l'annonce | 100 % | 3½ Logement 301 — 20 Bryant | |
| 33 | 33 | | `address` | Adresse civique | 44 % | 20 Bryant | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Sherbrooke | |
| 35 | −| `sector` | Secteur / quartier | 100 % | Les Nations - Arrondissement Jacques-Cartier (Nord) | | |
| 35 | +| `sector` | Secteur / quartier | 0 % | — | | |
| 36 | 36 | | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 100 % | 1 425 $ | |
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 1 | |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 9 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:18 — 9 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 10 au total, **9 actives** |
| 59 | −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 44 % · prix 100 % · photos 100 % · description 100 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
| 62 | 62 | |
modified
docs/connecteurs/atimco.md
+5 −5
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Atimco — connecteur `atimco` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 299/299 |
| 6 | 6 | |
@@ -48,17 +48,17 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : — | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:19 — 299 trouvées, +299 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:19 — 299 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
| 56 | 56 | ## Volumétrie & complétude |
| 57 | 57 | |
| 58 | 58 | - **Annonces en BD** : 299 au total, **299 actives** |
| 59 | −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18 | |
| 59 | +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22 | |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 96 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 1, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 45, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/atlas_immo.md
+8 −5
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Atlas société immobilière — connecteur `atlas_immo` |
| 2 | 2 | |
| 3 | −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 0/0 |
| 6 | 6 | |
@@ -48,8 +48,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h | |
| 52 | −- **Dernier passage OK** : 2026-08-18 06:01 — 0 trouvées, +0 / ~0 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:19 — 0 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`) |
| 54 | 54 | - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées |
| 55 | 55 | |
@@ -58,11 +58,14 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 58 | 58 | - **Annonces en BD** : 0 au total, **0 actives** |
| 59 | 59 | - **Première ingestion** : — · **Dernière observation** : — |
| 60 | 60 | - **Complétude clé (actives)** : GPS — · prix — · photos — · description — |
| 61 | −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | −Aucune erreur dans les 60 derniers runs journalisés. | |
| 65 | +| Date | Message (sync_log) | | |
| 66 | +|---|---| | |
| 67 | +| 2026-08-19 08:08 | HTTPConnectionPool(host='www.atlasimmo.ca', port=80): Read timed out. (read timeout=30) | | |
| 68 | +| 2026-08-18 15:32 | HTTPConnectionPool(host='www.atlasimmo.ca', port=80): Read timed out. (read timeout=30) | | |
| 66 | 69 | |
| 67 | 70 | **Note du registre** : actif — inventaire à 0 le 2026-08-09 (parc plein, le site ne rend des cartes que pour les logements libres) ; fixture rejouant l'état réel du 2023-02-24 via la Wayback Machine |
| 68 | 71 | |
modified
docs/connecteurs/aula.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/axia.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/barnes_quebec.md
+16 −22
Large diff (67 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/beaudoin.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/beaulieu_groupe.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/bestlife.md
+12 −12
Large diff (53 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/boardwalk.md
+5 −5
Large diff (33 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/bons_locataires.md
+17 −15
Large diff (67 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/boreal_abitibi.md
+9 −9
Large diff (43 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/bribourg.md
+20 −20
Large diff (63 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/brigil.md
+5 −5
Large diff (33 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/brio.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/brivia_1sp.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/brochu.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/cap_gestion.md
+8 −8
Large diff (39 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/capital_rdr.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/capreit.md
+13 −11
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/carat_immobilier.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/centurion.md
+5 −5
Large diff (30 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/cite_immobilier.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/cogir.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/contraste.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/copley.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/cosoltec.md
+16 −16
Large diff (71 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/courtemanche.md
+3 −3
Large diff (17 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/cromwell.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/denux.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/desmarais.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/desroches.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/devcore.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/devimco.md
+19 −19
Large diff (65 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/dma_locago.md
+10 −10
Large diff (53 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/duproprio.md
+12 −12
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/dynamic.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/edifia.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/elements.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/elite.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/elk.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/equinoxe_batimo.md
+10 −10
Large diff (48 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/evoludev.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/fb_marketplace.md
+25 −25
Large diff (89 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/ferrovia.md
+14 −14
Large diff (63 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/firma.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/floria.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/forsa.md
+18 −18
Large diff (65 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/fournelle.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/garic.md
+8 −12
Large diff (52 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gesteco.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestimmo_estrie.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_fauvel.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_habitation.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_isr.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_jdm.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_laprise.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_legrand.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_montreal.md
+11 −11
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_tb.md
+15 −15
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestion_valco.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gestipro.md
+10 −10
Large diff (49 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gia_t.md
+16 −12
Large diff (66 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gimcote.md
+9 −9
Large diff (51 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gio.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/girescom.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/girs.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/gparadis.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/groupe_dallaire.md
+5 −5
Large diff (28 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/groupe_jacques.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/groupe_maurice.md
+10 −10
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/groupe_robin.md
+8 −8
Large diff (46 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/groupe_theoret.md
+6 −6
Large diff (38 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/habitations_jeanne.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/habitations_sf.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/halfred.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/hazelview.md
+5 −5
Large diff (30 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/headway.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/heafey.md
+14 −14
Large diff (65 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/hestia.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/huma.md
+9 −9
Large diff (53 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_aeb.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_bc.md
+11 −11
Large diff (52 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_bois.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_db.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_dcl.md
+20 −20
Large diff (66 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_guillot.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_ouellet.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immeubles_pm.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immnasr.md
+7 −7
Large diff (41 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immobilia.md
+6 −6
Large diff (29 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immogex.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immomarketing.md
+9 −9
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/immostar.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/info_logement.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/interrent.md
+9 −9
Large diff (51 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/jutras.md
+10 −10
Large diff (52 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/kangalou.md
+18 −18
Large diff (70 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/kass.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/katasa.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/kijiji.md
+10 −10
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/la_cour.md
+11 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/laberge.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/labonte.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lachance.md
+12 −12
Large diff (57 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lacite.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lafrance_mathieu.md
+6 −6
Large diff (29 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lakle.md
+12 −12
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lambert.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/laureat_richard.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/le_baronet.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/le_st_georges.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/leclif.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/ledomaine.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lelaureat.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lequerre.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lespac.md
+10 −10
Large diff (53 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/leviu.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/location_di.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/location_saguenay.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/loftsmtl.md
+5 −5
Large diff (30 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logement_mauricie.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logis_experts.md
+11 −11
Large diff (50 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logisbourg.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logisco.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logisma.md
+15 −15
Large diff (62 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logispro.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/logisquebec.md
+15 −15
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lokalia.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/louer_ca.md
+11 −11
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/louer_saguenay.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/louis14.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lr_gestion.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/luxuor.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/lynk_olymbec.md
+8 −8
Large diff (43 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/m_immobilier.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/majestic.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/matinale.md
+16 −16
Large diff (63 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/may_bourg.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/medway.md
+12 −12
Large diff (51 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/mellem.md
+11 −11
Large diff (54 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/mercini.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/metcap.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/minto.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/mkar.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/moderno.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/mondev.md
+10 −10
Large diff (49 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/montagnais.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/morin.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/msi.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/multi_logis.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/niddamour.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/novelo.md
+7 −6
Large diff (36 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/oklouer.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/omhm.md
+9 −9
Large diff (41 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/osgoode.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/oxford.md
+6 −8
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/per.md
+6 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/picard.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/place_florimay.md
+3 −3
Large diff (17 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/plan_a.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/progim.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/projection_immo.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/promenade_des_forts.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/proprio_direct.md
+9 −9
Large diff (48 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/quanta.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/quartier_mosaique.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/quartier_oree.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/quartier_plus.md
+12 −12
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/quartier_sila.md
+8 −8
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/realstar.md
+7 −6
Large diff (42 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/remax_quebec.md
+15 −15
Large diff (72 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/rentals_ca.md
+16 −16
Large diff (64 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/rentalys.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/rivero.md
+1 −1
Large diff (7 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/roomies.md
+12 −12
Large diff (60 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/roussin.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/royal_lepage.md
+14 −14
Large diff (69 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/savouet.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sdg.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sentinelle.md
+7 −7
Large diff (37 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sgiq.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/shdm.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/siagi.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sibelanger.md
+9 −9
Large diff (44 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sig.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/simard.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/simplex.md
+6 −6
Large diff (36 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/somex_saintnicolas.md
+9 −6
Large diff (36 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/souleymane.md
+9 −9
Large diff (45 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/stb_immobilier.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/summum.md
+14 −14
Large diff (61 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/sutton.md
+21 −21
Large diff (70 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/terater.md
+8 −6
Large diff (35 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/terra.md
+9 −9
Large diff (47 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/thrace.md
+11 −11
Large diff (56 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/tri_logis.md
+3 −3
Large diff (17 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/trudel.md
+1 −1
Large diff (7 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/trylon.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/ubee.md
+7 −7
Large diff (32 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/uptimo.md
+9 −9
Large diff (50 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/urban_services.md
+18 −14
Large diff (66 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/utile.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/via_capitale.md
+12 −12
Large diff (58 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/viridi.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/wandji.md
+6 −6
Large diff (41 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/werkliv.md
+4 −4
Large diff (25 lines) is not loaded by default to keep the page fast.Load diff
modified
docs/connecteurs/zumper.md
+12 −12
Large diff (59 lines) is not loaded by default to keep the page fast.Load diff
modified
louka/connectors/fb_marketplace.py
+219 −357
Large diff (683 lines) is not loaded by default to keep the page fast.Load diff