apartments_com : acteur Apify maison ka-apartments-com (toute la province via Bright Data) + enrichissement PDP fb_marketplace
- nouvel acteur actors/ka-apartments-com : recherche /qc/ paginée (arrêt sur retombée page 1 via <title>), fiches détail en français (GPS, description, plans d'unités dédoublonnés, commodités, galerie), déblocage Akamai délégué au Web Unlocker Bright Data (curl_cffi/Scrapfly/Oxylabs → 403) - connecteur louka/connectors/apartments_com.py : 1 annonce = 1 propriété, prix « à partir de » (minimum des plans), bedrooms/bathrooms = minimum, cache détail 30 j, cadence LOUKA_APTS_INTERVAL_H (12 h) avec ré-émission des actives entre deux runs — 615 propriétés QC au premier passage - fb_marketplace : acteur 0.1.3 (adresse civique, beds/sdb, commodités, disponibilité, walk/transit/bike scores, visite virtuelle) + PAYLOAD_VERSION pour re-visiter progressivement le cache, filtre hors-Québec state+bbox GPS - sources.json : apartments_com passe de « non connectable » à actif - docs connecteurs régénérées (218 fiches) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
230 changed files +1,672 −756
added
actors/ka-apartments-com/.actor/Dockerfile
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: Dockerfile (ka-apartments-com) | |
| 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-apartments-com/.actor/actor.json
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +{ | |
| 2 | + "actorSpecification": 1, | |
| 3 | + "name": "ka-apartments-com", | |
| 4 | + "title": "KA Apartments.com — locations QC", | |
| 5 | + "description": "Logements à louer sur Apartments.com, province de Québec (recherche /qc/ paginée + fiches détail en français : GPS, description, plans d'unités, commodités, galerie). Déblocage anti-bot via Bright Data Web Unlocker (jeton requis).", | |
| 6 | + "version": "0.1", | |
| 7 | + "buildTag": "latest", | |
| 8 | + "input": "./input_schema.json", | |
| 9 | + "dockerfile": "./Dockerfile" | |
| 10 | +} | |
added
actors/ka-apartments-com/.actor/input_schema.json
+79 −0
@@ -0,0 +1,79 @@ | ||
| 1 | +{ | |
| 2 | + "title": "KA Apartments.com — locations QC", | |
| 3 | + "type": "object", | |
| 4 | + "schemaVersion": 1, | |
| 5 | + "properties": { | |
| 6 | + "searchUrls": { | |
| 7 | + "title": "URLs de recherche", | |
| 8 | + "type": "array", | |
| 9 | + "editor": "stringList", | |
| 10 | + "description": "Pages de recherche Apartments.com à paginer (défaut : /qc/, toute la province).", | |
| 11 | + "default": ["https://www.apartments.com/qc/"] | |
| 12 | + }, | |
| 13 | + "maxPages": { | |
| 14 | + "title": "Pages max par recherche", | |
| 15 | + "type": "integer", | |
| 16 | + "description": "Plafond de pagination par URL de recherche (arrêt auto quand le site retombe sur la page 1).", | |
| 17 | + "default": 25, | |
| 18 | + "minimum": 1, | |
| 19 | + "maximum": 30 | |
| 20 | + }, | |
| 21 | + "getDetails": { | |
| 22 | + "title": "Visiter les fiches détail", | |
| 23 | + "type": "boolean", | |
| 24 | + "description": "Visiter les fiches (version française) : GPS, description, plans d'unités, commodités, galerie.", | |
| 25 | + "default": true | |
| 26 | + }, | |
| 27 | + "maxDetails": { | |
| 28 | + "title": "Fiches détail max", | |
| 29 | + "type": "integer", | |
| 30 | + "description": "Budget de fiches détail par run.", | |
| 31 | + "default": 250, | |
| 32 | + "minimum": 0 | |
| 33 | + }, | |
| 34 | + "skipDetailIds": { | |
| 35 | + "title": "IDs à ne pas revisiter", | |
| 36 | + "type": "array", | |
| 37 | + "editor": "stringList", | |
| 38 | + "description": "IDs de propriétés dont la fiche est déjà en cache côté appelant.", | |
| 39 | + "default": [] | |
| 40 | + }, | |
| 41 | + "extraDetailIds": { | |
| 42 | + "title": "IDs de rattrapage", | |
| 43 | + "type": "array", | |
| 44 | + "editor": "stringList", | |
| 45 | + "description": "data-url encodés « id|url » de fiches à visiter même si absentes de la recherche.", | |
| 46 | + "default": [] | |
| 47 | + }, | |
| 48 | + "brightdataToken": { | |
| 49 | + "title": "Jeton API Bright Data", | |
| 50 | + "type": "string", | |
| 51 | + "editor": "textfield", | |
| 52 | + "isSecret": true, | |
| 53 | + "description": "Jeton Bearer de l'API Bright Data (Web Unlocker) — requis." | |
| 54 | + }, | |
| 55 | + "brightdataZone": { | |
| 56 | + "title": "Zone Bright Data", | |
| 57 | + "type": "string", | |
| 58 | + "editor": "textfield", | |
| 59 | + "description": "Nom de la zone Web Unlocker.", | |
| 60 | + "default": "web_unlocker1" | |
| 61 | + }, | |
| 62 | + "concurrency": { | |
| 63 | + "title": "Requêtes simultanées", | |
| 64 | + "type": "integer", | |
| 65 | + "description": "Nombre de requêtes Bright Data en parallèle.", | |
| 66 | + "default": 4, | |
| 67 | + "minimum": 1, | |
| 68 | + "maximum": 10 | |
| 69 | + }, | |
| 70 | + "requestDelay": { | |
| 71 | + "title": "Délai entre requêtes (s)", | |
| 72 | + "type": "integer", | |
| 73 | + "description": "Pause après chaque requête réussie (0 = aucune).", | |
| 74 | + "default": 0, | |
| 75 | + "minimum": 0 | |
| 76 | + } | |
| 77 | + }, | |
| 78 | + "required": ["brightdataToken"] | |
| 79 | +} | |
added
actors/ka-apartments-com/requirements.txt
+4 −0
@@ -0,0 +1,4 @@ | ||
| 1 | +# ka-apartments-com — le déblocage anti-bot est délégué à Bright Data | |
| 2 | +# (simple POST HTTPS), donc pas de curl_cffi ici. | |
| 3 | +apify | |
| 4 | +httpx | |
added
actors/ka-apartments-com/src/__main__.py
+10 −0
@@ -0,0 +1,10 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/__main__.py (ka-apartments-com) | |
| 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-apartments-com/src/main.py
+270 −0
@@ -0,0 +1,270 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/main.py (ka-apartments-com) | |
| 4 | +# Desc: Apartments.com — logements à louer, province de Québec. | |
| 5 | +# Phase 1 : pagination des pages de recherche (/qc/ = toute la | |
| 6 | +# province, HTML server-rendered ; arrêt quand le <title> ne porte | |
| 7 | +# plus « - Page N », le site retombant silencieusement sur la page 1). | |
| 8 | +# Phase 2 : fiches détail en français (/fr/<slug>/<id>/) : GPS, | |
| 9 | +# description, plans d'unités (pricingGridItem), commodités, galerie. | |
| 10 | +# Items poussés : kind="listing" (placard) et kind="detail". | |
| 11 | +# ============================================================================== | |
| 12 | +from __future__ import annotations | |
| 13 | + | |
| 14 | +import asyncio | |
| 15 | +import html as htmllib | |
| 16 | +import re | |
| 17 | + | |
| 18 | +from apify import Actor | |
| 19 | + | |
| 20 | +from .net import BrightData | |
| 21 | + | |
| 22 | +# --- recherche (placards) ----------------------------------------------------- | |
| 23 | + | |
| 24 | +_ARTICLE_RX = re.compile( | |
| 25 | + r"<article\b(?P<attrs>[^>]*\bdata-listingid=\"[^\"]+\"[^>]*)>" | |
| 26 | + r"(?P<body>.*?)</article>", re.S) | |
| 27 | +_ATTR_RX = re.compile(r"data-(listingid|url|streetaddress)=\"([^\"]*)\"") | |
| 28 | +_TITLE_TAG_RX = re.compile(r"<title>([^<]*)</title>") | |
| 29 | +_PLACARD_TITLE_RX = re.compile(r"js-placardTitle[^\"]*\"[^>]*>([^<]+)<") | |
| 30 | +_ADDRESS_RX = re.compile(r"property-address[^\"]*\"[^>]*>([^<]+)<") | |
| 31 | +_BED_RENT_RX = re.compile( | |
| 32 | + r"bedTextBox\">([^<]*)<.{0,400}?priceTextBox\">\s*<span[^>]*>([^<]*)<", | |
| 33 | + re.S) | |
| 34 | +_IMG_COUNT_RX = re.compile(r"js-spnImgCount\">(\d+)") | |
| 35 | +_PHONE_RX = re.compile(r"phone-data=\"(\d{7,15})\"") | |
| 36 | +_AMENITIES_BLOCK_RX = re.compile( | |
| 37 | + r"property-amenities\"[^>]*>(.*?)</p>", re.S) | |
| 38 | +_SPAN_RX = re.compile(r"<span[^>]*>([^<]+)</span>") | |
| 39 | +_IMG_RX = re.compile(r"https://images1\.apartments\.com/i2/[^\"'\s?]+") | |
| 40 | +_QC_SLUG_RX = re.compile(r"apartments\.com/[^\"]*-qc[-/]") | |
| 41 | + | |
| 42 | + | |
| 43 | +def _clean(text: str) -> str: | |
| 44 | + return re.sub(r"\s+", " ", htmllib.unescape(text or "")).strip() | |
| 45 | + | |
| 46 | + | |
| 47 | +def parse_search(page_html: str) -> list[dict]: | |
| 48 | + """Placards d'une page de recherche → dicts (propriétés QC seulement).""" | |
| 49 | + out: list[dict] = [] | |
| 50 | + for m in _ARTICLE_RX.finditer(page_html): | |
| 51 | + attrs = dict(_ATTR_RX.findall(m.group("attrs"))) | |
| 52 | + pid, url = attrs.get("listingid", ""), attrs.get("url", "") | |
| 53 | + if not pid or not url: | |
| 54 | + continue | |
| 55 | + body = m.group("body") | |
| 56 | + title_m = _PLACARD_TITLE_RX.search(body) | |
| 57 | + addr_m = _ADDRESS_RX.search(body) | |
| 58 | + title = _clean(title_m.group(1)) if title_m else "" | |
| 59 | + address = _clean(addr_m.group(1)) if addr_m else "" | |
| 60 | + if not address and ", QC" in title: | |
| 61 | + address = title # gabarit silverpropres : adresse dans le titre | |
| 62 | + # nearby hors-Québec glissé en bas de page → on filtre | |
| 63 | + if ", QC" not in address and not _QC_SLUG_RX.search(url): | |
| 64 | + continue | |
| 65 | + rents = [{"beds": _clean(b), "price": _clean(p)} | |
| 66 | + for b, p in _BED_RENT_RX.findall(body)] | |
| 67 | + img_count_m = _IMG_COUNT_RX.search(body) | |
| 68 | + phone_m = _PHONE_RX.search(body) | |
| 69 | + amen_m = _AMENITIES_BLOCK_RX.search(body) | |
| 70 | + amenities = [_clean(s) for s in _SPAN_RX.findall(amen_m.group(1))] \ | |
| 71 | + if amen_m else [] | |
| 72 | + img_m = _IMG_RX.search(body) | |
| 73 | + out.append({ | |
| 74 | + "id": pid, | |
| 75 | + "url": url, | |
| 76 | + "title": title, | |
| 77 | + "address": address, | |
| 78 | + "street": _clean(attrs.get("streetaddress", "")), | |
| 79 | + "rents": rents, | |
| 80 | + "img_count": int(img_count_m.group(1)) if img_count_m else 0, | |
| 81 | + "phone": phone_m.group(1) if phone_m else "", | |
| 82 | + "amenities": [a for a in amenities if a], | |
| 83 | + "image": img_m.group(0) if img_m else "", | |
| 84 | + }) | |
| 85 | + return out | |
| 86 | + | |
| 87 | + | |
| 88 | +def page_title(page_html: str) -> str: | |
| 89 | + m = _TITLE_TAG_RX.search(page_html) | |
| 90 | + return _clean(m.group(1)) if m else "" | |
| 91 | + | |
| 92 | + | |
| 93 | +# --- fiche détail (version française) ------------------------------------------ | |
| 94 | + | |
| 95 | +_META_LAT_RX = re.compile( | |
| 96 | + r"<meta property=\"place:location:latitude\" content=\"([^\"]+)\"") | |
| 97 | +_META_LNG_RX = re.compile( | |
| 98 | + r"<meta property=\"place:location:longitude\" content=\"([^\"]+)\"") | |
| 99 | +_PROP_NAME_RX = re.compile(r"id=\"propertyName\"[^>]*>([^<]+)") | |
| 100 | +_ADDR_BLOCK_RX = re.compile( | |
| 101 | + r"delivery-address\"><span>([^<]+)</span>.*?<span>([^<]+)</span>,\s*" | |
| 102 | + r"<span class=\"stateZipContainer\">\s*<span>([^<]+)</span>\s*" | |
| 103 | + r"<span>([^<]*)</span>", re.S) | |
| 104 | +_DESC_SECTION_RX = re.compile( | |
| 105 | + r"<section[^>]*id=\"descriptionSection\"[^>]*>(.*?)</section>", re.S) | |
| 106 | +_MODEL_WRAPPER_RX = re.compile( | |
| 107 | + r"priceGridModelWrapper[^\"]*\"\s*data-rentalkey=\"([^\"]*)\"(.*?)" | |
| 108 | + r"(?=priceGridModelWrapper|$)", re.S) | |
| 109 | +_MODEL_NAME_RX = re.compile(r"modelName\">([^<]+)<") | |
| 110 | +_RENT_LABEL_RX = re.compile(r"rentLabel\">\s*([^<]+)") | |
| 111 | +_DETAILS_WRAPPER_RX = re.compile( | |
| 112 | + r"detailsTextWrapper\">(.*?)</span>\s*</span>", re.S) | |
| 113 | +_AVAIL_RX = re.compile(r"availabilityInfo\">([^<]+)<") | |
| 114 | +_BEDS_BATHS_RX = re.compile(r"data-beds=\"([^\"]*)\"\s*data-baths=\"([^\"]*)\"") | |
| 115 | +_SPEC_INFO_RX = re.compile(r"specInfo\">\s*<span>([^<]+)</span>") | |
| 116 | +_TAG_RX = re.compile(r"<[^>]+>") | |
| 117 | + | |
| 118 | + | |
| 119 | +def _to_float(text: str) -> float | None: | |
| 120 | + try: | |
| 121 | + return float(text.strip()) | |
| 122 | + except (TypeError, ValueError): | |
| 123 | + return None | |
| 124 | + | |
| 125 | + | |
| 126 | +def parse_detail(page_html: str) -> dict: | |
| 127 | + out: dict = {} | |
| 128 | + name_m = _PROP_NAME_RX.search(page_html) | |
| 129 | + if name_m: | |
| 130 | + out["name"] = _clean(name_m.group(1)) | |
| 131 | + addr_m = _ADDR_BLOCK_RX.search(page_html) | |
| 132 | + if addr_m: | |
| 133 | + out["street"] = _clean(addr_m.group(1)) | |
| 134 | + out["city"] = _clean(addr_m.group(2)) | |
| 135 | + out["state"] = _clean(addr_m.group(3)) | |
| 136 | + out["zip"] = _clean(addr_m.group(4)) | |
| 137 | + lat_m, lng_m = _META_LAT_RX.search(page_html), _META_LNG_RX.search(page_html) | |
| 138 | + if lat_m and lng_m: | |
| 139 | + out["lat"] = _to_float(lat_m.group(1)) | |
| 140 | + out["lng"] = _to_float(lng_m.group(1)) | |
| 141 | + desc_m = _DESC_SECTION_RX.search(page_html) | |
| 142 | + if desc_m: | |
| 143 | + lines = [_clean(t) for t in | |
| 144 | + _TAG_RX.sub("\n", desc_m.group(1)).split("\n")] | |
| 145 | + lines = [t for t in lines if t | |
| 146 | + and not t.lower().startswith(("à propos", "about"))] | |
| 147 | + if lines: | |
| 148 | + out["description"] = "\n\n".join(dict.fromkeys(lines)) | |
| 149 | + plans: list[dict] = [] | |
| 150 | + for key, body in _MODEL_WRAPPER_RX.findall(page_html): | |
| 151 | + plan: dict = {"key": key} | |
| 152 | + nm = _MODEL_NAME_RX.search(body) | |
| 153 | + if nm: | |
| 154 | + plan["name"] = _clean(nm.group(1)) | |
| 155 | + rl = _RENT_LABEL_RX.search(body) | |
| 156 | + if rl: | |
| 157 | + plan["rent"] = _clean(rl.group(1)) | |
| 158 | + dw = _DETAILS_WRAPPER_RX.search(body) | |
| 159 | + if dw: | |
| 160 | + plan["details"] = [_clean(s) for s in | |
| 161 | + _SPAN_RX.findall(dw.group(1) + "</span>")] | |
| 162 | + bb = _BEDS_BATHS_RX.search(body) | |
| 163 | + if bb: | |
| 164 | + plan["beds"] = _to_float(bb.group(1)) | |
| 165 | + plan["baths"] = _to_float(bb.group(2)) | |
| 166 | + av = _AVAIL_RX.search(body) | |
| 167 | + if av: | |
| 168 | + plan["availability"] = _clean(av.group(1)) | |
| 169 | + if plan.get("name") or plan.get("rent"): | |
| 170 | + # la grille est présente deux fois dans la page (desktop/mobile) | |
| 171 | + if not any(p.get("key") == plan.get("key") | |
| 172 | + and p.get("name") == plan.get("name") | |
| 173 | + and p.get("rent") == plan.get("rent") for p in plans): | |
| 174 | + plans.append(plan) | |
| 175 | + if plans: | |
| 176 | + out["plans"] = plans | |
| 177 | + amenities = [_clean(s) for s in _SPEC_INFO_RX.findall(page_html)] | |
| 178 | + if amenities: | |
| 179 | + out["amenities"] = list(dict.fromkeys(a for a in amenities if a)) | |
| 180 | + images = list(dict.fromkeys( | |
| 181 | + u for u in _IMG_RX.findall(page_html) if "-logo" not in u)) | |
| 182 | + if images: | |
| 183 | + out["images"] = images | |
| 184 | + return out | |
| 185 | + | |
| 186 | + | |
| 187 | +def fr_url(url: str) -> str: | |
| 188 | + if "apartments.com/fr/" in url: | |
| 189 | + return url | |
| 190 | + return url.replace("www.apartments.com/", "www.apartments.com/fr/", 1) | |
| 191 | + | |
| 192 | + | |
| 193 | +# --- orchestration -------------------------------------------------------------- | |
| 194 | + | |
| 195 | +async def _crawl_search(bd: BrightData, base: str, max_pages: int, | |
| 196 | + props: dict[str, dict]) -> None: | |
| 197 | + base = base if base.endswith("/") else base + "/" | |
| 198 | + for page in range(1, max_pages + 1): | |
| 199 | + url = base if page == 1 else f"{base}{page}/" | |
| 200 | + page_html = await bd.get(url) | |
| 201 | + if page_html is None: | |
| 202 | + Actor.log.warning(f"recherche : échec fetch {url}, arrêt") | |
| 203 | + break | |
| 204 | + if page > 1 and f"- Page {page}" not in page_title(page_html): | |
| 205 | + Actor.log.info(f"recherche : fin de pagination à la page {page} " | |
| 206 | + f"({base})") | |
| 207 | + break | |
| 208 | + placards = parse_search(page_html) | |
| 209 | + if not placards: | |
| 210 | + Actor.log.info(f"recherche : page {page} vide ({base})") | |
| 211 | + break | |
| 212 | + fresh = [p for p in placards if p["id"] not in props] | |
| 213 | + for p in fresh: | |
| 214 | + props[p["id"]] = p | |
| 215 | + await Actor.push_data({"kind": "listing", **p}) | |
| 216 | + Actor.log.info(f"recherche p.{page} : {len(placards)} placards, " | |
| 217 | + f"{len(fresh)} nouveaux ({base})") | |
| 218 | + | |
| 219 | + | |
| 220 | +async def _fetch_detail(bd: BrightData, pid: str, url: str) -> None: | |
| 221 | + page_html = await bd.get(fr_url(url)) | |
| 222 | + if page_html is None: | |
| 223 | + Actor.log.warning(f"détail {pid} : échec fetch") | |
| 224 | + return | |
| 225 | + detail = parse_detail(page_html) | |
| 226 | + if not detail: | |
| 227 | + Actor.log.warning(f"détail {pid} : page sans données") | |
| 228 | + return | |
| 229 | + await Actor.push_data({"kind": "detail", "id": pid, "url": url, **detail}) | |
| 230 | + | |
| 231 | + | |
| 232 | +async def main() -> None: | |
| 233 | + async with Actor: | |
| 234 | + inp = await Actor.get_input() or {} | |
| 235 | + token = (inp.get("brightdataToken") or "").strip() | |
| 236 | + if not token: | |
| 237 | + raise ValueError("brightdataToken requis (Web Unlocker)") | |
| 238 | + bd = BrightData( | |
| 239 | + token=token, | |
| 240 | + zone=(inp.get("brightdataZone") or "web_unlocker1").strip(), | |
| 241 | + concurrency=int(inp.get("concurrency") or 4), | |
| 242 | + delay=float(inp.get("requestDelay") or 0)) | |
| 243 | + try: | |
| 244 | + search_urls = [u.strip() for u in | |
| 245 | + (inp.get("searchUrls") | |
| 246 | + or ["https://www.apartments.com/qc/"]) | |
| 247 | + if u and u.strip()] | |
| 248 | + max_pages = int(inp.get("maxPages") or 25) | |
| 249 | + props: dict[str, dict] = {} | |
| 250 | + for base in search_urls: | |
| 251 | + await _crawl_search(bd, base, max_pages, props) | |
| 252 | + Actor.log.info(f"recherche terminée : {len(props)} propriétés") | |
| 253 | + | |
| 254 | + if not inp.get("getDetails", True): | |
| 255 | + return | |
| 256 | + skip = set(inp.get("skipDetailIds") or []) | |
| 257 | + targets: list[tuple[str, str]] = [ | |
| 258 | + (pid, p["url"]) for pid, p in props.items() if pid not in skip] | |
| 259 | + for enc in inp.get("extraDetailIds") or []: | |
| 260 | + pid, _, url = enc.partition("|") | |
| 261 | + if pid and url and pid not in props and pid not in skip: | |
| 262 | + targets.append((pid, url)) | |
| 263 | + max_details = int(inp.get("maxDetails") or 0) | |
| 264 | + if max_details >= 0: | |
| 265 | + targets = targets[:max_details] | |
| 266 | + Actor.log.info(f"détails : {len(targets)} fiches à visiter") | |
| 267 | + await asyncio.gather( | |
| 268 | + *(_fetch_detail(bd, pid, url) for pid, url in targets)) | |
| 269 | + finally: | |
| 270 | + await bd.close() | |
added
actors/ka-apartments-com/src/net.py
+63 −0
@@ -0,0 +1,63 @@ | ||
| 1 | +# ============================================================================== | |
| 2 | +# Author: Simon-Pierre Boucher <contact@spboucher.ai> | |
| 3 | +# File: src/net.py (ka-apartments-com) | |
| 4 | +# Desc: Fetcher Bright Data Web Unlocker — apartments.com est verrouillé par | |
| 5 | +# Akamai (curl_cffi/Scrapfly/Oxylabs → 403) ; seul le Web Unlocker | |
| 6 | +# passe. Simple POST https://api.brightdata.com/request qui renvoie le | |
| 7 | +# HTML brut de la page débloquée. httpx async + sémaphore + retries à | |
| 8 | +# backoff exponentiel. | |
| 9 | +# ============================================================================== | |
| 10 | +from __future__ import annotations | |
| 11 | + | |
| 12 | +import asyncio | |
| 13 | +import random | |
| 14 | + | |
| 15 | +import httpx | |
| 16 | + | |
| 17 | +from apify import Actor | |
| 18 | + | |
| 19 | +API = "https://api.brightdata.com/request" | |
| 20 | + | |
| 21 | + | |
| 22 | +def _backoff(attempt: int) -> float: | |
| 23 | + return min(1.5 * (2 ** attempt), 15.0) + random.uniform(0.0, 1.0) | |
| 24 | + | |
| 25 | + | |
| 26 | +class BrightData: | |
| 27 | + """GET d'une page via le Web Unlocker Bright Data (déblocage géré).""" | |
| 28 | + | |
| 29 | + def __init__(self, token: str, zone: str, concurrency: int = 4, | |
| 30 | + delay: float = 0.0) -> None: | |
| 31 | + self._headers = {"Authorization": f"Bearer {token}", | |
| 32 | + "Content-Type": "application/json"} | |
| 33 | + self._zone = zone | |
| 34 | + self._sem = asyncio.Semaphore(max(1, concurrency)) | |
| 35 | + self._delay = max(0.0, delay) | |
| 36 | + self._client = httpx.AsyncClient(timeout=120.0) | |
| 37 | + | |
| 38 | + async def close(self) -> None: | |
| 39 | + await self._client.aclose() | |
| 40 | + | |
| 41 | + async def get(self, url: str, retries: int = 3) -> str | None: | |
| 42 | + """HTML de la page, ou None si le déblocage échoue après retries.""" | |
| 43 | + body = {"zone": self._zone, "url": url, | |
| 44 | + "format": "raw", "country": "ca"} | |
| 45 | + async with self._sem: | |
| 46 | + for attempt in range(retries): | |
| 47 | + try: | |
| 48 | + resp = await self._client.post( | |
| 49 | + API, headers=self._headers, json=body) | |
| 50 | + if resp.status_code == 200 and resp.text.strip(): | |
| 51 | + if self._delay: | |
| 52 | + await asyncio.sleep(self._delay) | |
| 53 | + return resp.text | |
| 54 | + Actor.log.warning( | |
| 55 | + f"Bright Data {resp.status_code} {url} — " | |
| 56 | + f"{resp.text[:120]!r} (tentative {attempt + 1})") | |
| 57 | + except httpx.HTTPError as exc: | |
| 58 | + Actor.log.warning( | |
| 59 | + f"Bright Data réseau {url} : {exc} " | |
| 60 | + f"(tentative {attempt + 1})") | |
| 61 | + if attempt < retries - 1: | |
| 62 | + await asyncio.sleep(_backoff(attempt)) | |
| 63 | + return None | |
modified
actors/ka-fb-marketplace/src/main.py
+27 −0
@@ -219,6 +219,33 @@ def parse_detail(html: str, lid: str) -> dict: | ||
| 219 | 219 | desc = (o.get("redacted_description") or {}).get("text") or "" |
| 220 | 220 | if desc: |
| 221 | 221 | out["description"] = _clean_desc(desc)[:6000] |
| 222 | + addr = ((o.get("home_address") or {}).get("street") or "").strip() | |
| 223 | + unit_fields: list[str] = [] | |
| 224 | + for sec in (o.get("pdp_display_sections") or []): | |
| 225 | + stype = sec.get("section_type") or "" | |
| 226 | + for f in (sec.get("pdp_fields") or []): | |
| 227 | + lbl = (f.get("display_label") or "").strip() | |
| 228 | + if not lbl: | |
| 229 | + continue | |
| 230 | + if stype == "UNIT_INCLUDES": | |
| 231 | + unit_fields.append(lbl) | |
| 232 | + elif stype == "UNIT_SUBTITLE": | |
| 233 | + if (f.get("icon_name") or "") == "pin" and not addr: | |
| 234 | + addr = lbl.split(",")[0].strip() | |
| 235 | + elif (f.get("icon_name") or "") == "clock": | |
| 236 | + out["listed_text"] = lbl | |
| 237 | + if addr: | |
| 238 | + out["address"] = addr | |
| 239 | + if unit_fields: | |
| 240 | + out["unit_fields"] = unit_fields | |
| 241 | + for src_k, dst_k in (("walk_score_info", "walk_score"), | |
| 242 | + ("transit_score_info", "transit_score"), | |
| 243 | + ("bike_score_info", "bike_score")): | |
| 244 | + sc = (o.get(src_k) or {}).get("score") | |
| 245 | + if sc is not None: | |
| 246 | + out[dst_k] = sc | |
| 247 | + if o.get("virtual_tour_url"): | |
| 248 | + out["virtual_tour_url"] = o["virtual_tour_url"] | |
| 222 | 249 | photos = _gallery(html, lid) |
| 223 | 250 | if photos: |
| 224 | 251 | out["images"] = photos |
modified
data/sources.json
+4 −4
@@ -2793,10 +2793,10 @@ | ||
| 2793 | 2793 | "id": "apartments_com", |
| 2794 | 2794 | "name": "Apartments.com (CoStar)", |
| 2795 | 2795 | "url": "https://www.apartments.com", |
| 2796 | − "listing_url": "https://www.apartments.com/montreal-qc/", | |
| 2797 | − "sectors": "Réseau US CoStar", | |
| 2798 | − "connector": null, | |
| 2799 | − "status": "non connectable — anti-bot CoStar : 403 Access Denied en direct depuis le nœud ET depuis une autre IP (2026-08-18) ; couverture QC réputée marginale, ne vaut pas un passage Scrapfly ; re-sonder au besoin", | |
| 2796 | + "listing_url": "https://www.apartments.com/qc/", | |
| 2797 | + "sectors": "Toute la province via /qc/ (~500 propriétés / 8 400 unités, grands gestionnaires) — acteur Apify maison ka-apartments-com + Bright Data Web Unlocker", | |
| 2798 | + "connector": "apartments_com", | |
| 2799 | + "status": "actif", | |
| 2800 | 2800 | "region": "Province" |
| 2801 | 2801 | }, |
| 2802 | 2802 | { |
modified
docs/connecteurs/INDEX.md
+218 −218
@@ -1,235 +1,235 @@ | ||
| 1 | 1 | # Lou-Ka — Index des connecteurs |
| 2 | 2 | |
| 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._ | |
| 3 | +_Généré automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**217 connecteurs documentés** (215 activés, 2 désactivés) · **60703 annonces actives** au total · registre : 281 entrées. | |
| 5 | +**218 connecteurs documentés** (216 activés, 2 désactivés) · **60633 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 | 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 | | |
| 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:44 | | |
| 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:44 | | |
| 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:44 | | |
| 12 | +| [`akelius`](akelius.md) | Akelius Montréal | Montréal | pages HTML (rendu serveur) | direct | 231/302 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:44 | | |
| 13 | +| [`alexcellence`](alexcellence.md) | Immeubles Alexcellence | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 50 % | 100 % | 100 % | actif | 2026-08-22 17:44 | | |
| 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:44 | | |
| 15 | +| [`alouer_sherbrooke`](alouer_sherbrooke.md) | À Louer Sherbrooke | Estrie | API admin-ajax (WordPress) | direct | 1/1 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:44 | | |
| 16 | +| [`apartments_com`](apartments_com.md) | Apartments.com (CoStar) | Province | API JSON interne du site | direct | 615/615 | 40 % | 100 % | 100 % | actif | 2026-08-22 19:17 | | |
| 17 | +| [`app_urbains`](app_urbains.md) | Appartements Urbains | Québec | sitemap XML + pages HTML | direct | 17/21 | 100 % | 82 % | 100 % | actif | 2026-08-22 17:44 | | |
| 18 | +| [`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:44 | | |
| 19 | +| [`ascensio`](ascensio.md) | Groupe Ascensio | Estrie | pages HTML (rendu serveur) | direct | 9/10 | 44 % | 100 % | 100 % | actif | 2026-08-22 17:44 | | |
| 20 | +| [`atimco`](atimco.md) | Atimco | Montérégie | sitemap XML + pages HTML | direct | 299/299 | 100 % | 99 % | 96 % | actif | 2026-08-22 17:45 | | |
| 21 | +| [`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:45 | | |
| 22 | +| [`aula`](aula.md) | AULA Lévis | Québec | API REST WordPress (wp-json) | direct | 68/70 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:45 | | |
| 23 | +| [`axia`](axia.md) | Axia Appartements | Montréal | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:45 | | |
| 24 | +| [`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:45 | | |
| 25 | +| [`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:45 | | |
| 26 | +| [`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:45 | | |
| 27 | +| [`bestlife`](bestlife.md) | Les Gestions Bestlife | Estrie | pages HTML (rendu serveur) | direct | 15/16 | 87 % | 100 % | 100 % | actif | 2026-08-22 17:45 | | |
| 28 | +| [`boardwalk`](boardwalk.md) | Boardwalk REIT | Montréal | pages HTML (rendu serveur) | direct | 100/100 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:46 | | |
| 29 | +| [`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:50 | | |
| 30 | +| [`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:50 | | |
| 31 | +| [`bribourg`](bribourg.md) | Bribourg | Québec | pages HTML (rendu serveur) | direct | 2/5 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:50 | | |
| 32 | +| [`brigil`](brigil.md) | Brigil | Outaouais | API JSON interne du site | direct | 42/42 | 98 % | 24 % | 100 % | actif | 2026-08-22 17:50 | | |
| 33 | +| [`brio`](brio.md) | Les Immeubles Brio | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:50 | | |
| 34 | +| [`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:50 | | |
| 35 | +| [`brochu`](brochu.md) | Groupe Immobilier Brochu | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 57 % | 100 % | actif | 2026-08-22 17:50 | | |
| 36 | +| [`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:50 | | |
| 37 | +| [`capital_rdr`](capital_rdr.md) | Gestion Capital RDR | Mauricie | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:50 | | |
| 38 | +| [`capreit`](capreit.md) | CAPREIT | Québec | API admin-ajax (WordPress) | direct | 116/123 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:50 | | |
| 39 | +| [`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:50 | | |
| 40 | +| [`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:50 | | |
| 41 | +| [`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:50 | | |
| 42 | +| [`cogir`](cogir.md) | Cogir Immobilier | Québec | pages HTML (rendu serveur) | direct | 282/300 | 92 % | 96 % | 100 % | actif | 2026-08-22 17:52 | | |
| 43 | +| [`contraste`](contraste.md) | Contraste Immobilier | Québec | pages HTML (rendu serveur) | direct | 208/234 | 100 % | 86 % | 100 % | actif | 2026-08-22 17:52 | | |
| 44 | +| [`copley`](copley.md) | Groupe Copley | Montréal | pages HTML (rendu serveur) | direct | 52/52 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:53 | | |
| 45 | +| [`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:53 | | |
| 46 | +| [`courtemanche`](courtemanche.md) | Gestion Immobilière Courtemanche | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 0/0 | — | — | — | actif | 2026-08-22 17:53 | | |
| 47 | +| [`cromwell`](cromwell.md) | Cromwell Management | Montréal | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:53 | | |
| 48 | +| [`denux`](denux.md) | Groupe Denux | Montréal | API JSON interne du site | direct | 20/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:53 | | |
| 49 | +| [`desmarais`](desmarais.md) | Immeubles Desmarais | Outaouais | pages HTML (rendu serveur) | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:53 | | |
| 50 | +| [`desroches`](desroches.md) | Immeubles Claude Desroches | Montérégie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 50 % | actif | 2026-08-22 17:53 | | |
| 51 | +| [`devcore`](devcore.md) | Devcore Group | Côte-Nord | API REST WordPress (wp-json) | direct | 14/14 | 0 % | 7 % | 100 % | actif | 2026-08-22 17:54 | | |
| 52 | +| [`devimco`](devimco.md) | Devimco Appartements | Montréal | API JSON interne du site | direct | 231/576 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:54 | | |
| 53 | +| [`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 17:55 | | |
| 54 | +| [`duproprio`](duproprio.md) | DuProprio (location) | Province | sitemap XML + pages HTML | direct | 3894/4109 | 100 % | 100 % | 99 % | actif | 2026-08-22 17:55 | | |
| 55 | +| [`dynamic`](dynamic.md) | Gestion immobilière Dynamic | Estrie | pages HTML (rendu serveur) | direct | 44/55 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:44 | | |
| 56 | +| [`edifia`](edifia.md) | Edifia Groupe Immobilier | Québec | pages HTML (rendu serveur) | direct | 177/185 | 100 % | 94 % | 100 % | actif | 2026-08-22 17:55 | | |
| 57 | +| [`elements`](elements.md) | Quartier les Éléments | Québec | pages HTML (rendu serveur) | direct | 2/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:56 | | |
| 58 | +| [`elite`](elite.md) | Elite Immobilier | Outaouais | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:56 | | |
| 59 | +| [`elk`](elk.md) | ELK Property Management | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-22 17:56 | | |
| 60 | +| [`equinoxe_batimo`](equinoxe_batimo.md) | Batimo/EMD — Collection Équinoxe | Montréal | API admin-ajax (WordPress) | direct | 626/662 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:58 | | |
| 61 | +| [`evoludev`](evoludev.md) | Groupe Evoludev | Lanaudière | pages HTML (rendu serveur) | direct | 134/134 | 100 % | 99 % | 100 % | actif | 2026-08-22 17:58 | | |
| 62 | +| [`fb_marketplace`](fb_marketplace.md) | Facebook Marketplace (location) | Province | API JSON interne du site | direct | 1732/23481 | 56 % | 100 % | 100 % | actif | 2026-08-22 19:25 | | |
| 63 | +| [`ferrovia`](ferrovia.md) | Ferrovia (condos locatifs Mirabel) | Laurentides | pages HTML (rendu serveur) | direct | 22/24 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:05 | | |
| 64 | +| [`firma`](firma.md) | Groupe Firma | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 75 % | 8 % | 100 % | actif | 2026-08-22 18:06 | | |
| 65 | +| [`floria`](floria.md) | Gestion Floria | Estrie | pages HTML (rendu serveur) | direct | 21/21 | 100 % | 24 % | 95 % | actif | 2026-08-22 18:06 | | |
| 66 | +| [`forsa`](forsa.md) | Gestion immobilière Forsa | Lanaudière | pages HTML (rendu serveur) | direct | 10/13 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:06 | | |
| 67 | +| [`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 18:06 | | |
| 68 | +| [`garic`](garic.md) | Garic Gestion Immobilière | Outaouais | API admin-ajax (WordPress) | direct | 45/54 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:06 | | |
| 69 | +| [`gesteco`](gesteco.md) | Gesteco | Montérégie | API JSON interne du site | direct | 9/15 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:06 | | |
| 70 | +| [`gestimmo_estrie`](gestimmo_estrie.md) | Gestimmo Estrie | Estrie | pages HTML (rendu serveur) | direct | 41/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:06 | | |
| 71 | +| [`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 18:06 | | |
| 72 | +| [`gestion_habitation`](gestion_habitation.md) | Gestion Habitation | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:06 | | |
| 73 | +| [`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 18:06 | | |
| 74 | +| [`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 18:06 | | |
| 75 | +| [`gestion_laprise`](gestion_laprise.md) | Gestion Laprise | Côte-Nord | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 18:06 | | |
| 76 | +| [`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 18:07 | | |
| 77 | +| [`gestion_montreal`](gestion_montreal.md) | Gestion Montréal | Montréal | pages HTML (rendu serveur) | direct | 23/26 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:07 | | |
| 78 | +| [`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 18:07 | | |
| 79 | +| [`gestion_valco`](gestion_valco.md) | Gestion Valco | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 50 % | actif | 2026-08-22 18:07 | | |
| 80 | +| [`gestipro`](gestipro.md) | Gestipro | Québec | pages HTML (rendu serveur) | direct | 103/124 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:07 | | |
| 81 | +| [`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 18:07 | | |
| 82 | +| [`gimcote`](gimcote.md) | GIM Côté | Québec | pages HTML (rendu serveur) | direct | 86/91 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:07 | | |
| 83 | +| [`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 18:07 | | |
| 84 | +| [`girescom`](girescom.md) | Girescom gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 40/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:07 | | |
| 85 | +| [`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 18:07 | | |
| 86 | +| [`gparadis`](gparadis.md) | GParadis | Québec | pages HTML (rendu serveur) | direct | 22/22 | 82 % | 0 % | 100 % | actif | 2026-08-22 18:07 | | |
| 87 | +| [`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 18:08 | | |
| 88 | +| [`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 18:08 | | |
| 89 | +| [`groupe_maurice`](groupe_maurice.md) | Le Groupe Maurice | Province | API REST WordPress (wp-json) | direct | 203/203 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:08 | | |
| 90 | +| [`groupe_robin`](groupe_robin.md) | Groupe Robin | Mauricie | API admin-ajax (WordPress) | direct | 71/76 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:08 | | |
| 91 | +| [`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 18:08 | | |
| 92 | +| [`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 18:08 | | |
| 93 | +| [`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 18:08 | | |
| 94 | +| [`halfred`](halfred.md) | Halfred | Outaouais | pages HTML (rendu serveur) | direct | 165/171 | 93 % | 100 % | 100 % | actif | 2026-08-22 18:09 | | |
| 95 | +| [`hazelview`](hazelview.md) | Hazelview Properties | Montréal | API JSON interne du site | direct | 6/6 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:10 | | |
| 96 | +| [`headway`](headway.md) | La Corporation Headway | Québec | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:10 | | |
| 97 | +| [`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 18:10 | | |
| 98 | +| [`hestia`](hestia.md) | Hestia Groupe immobilier | Mauricie | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:10 | | |
| 99 | +| [`huma`](huma.md) | HUMĀ Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 38/38 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:10 | | |
| 100 | +| [`immeubles_aeb`](immeubles_aeb.md) | Immeubles AEB | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 26/26 | 100 % | 100 % | 81 % | actif | 2026-08-22 18:10 | | |
| 101 | +| [`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 18:10 | | |
| 102 | +| [`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 18:11 | | |
| 103 | +| [`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 18:11 | | |
| 104 | +| [`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 18:11 | | |
| 105 | +| [`immeubles_guillot`](immeubles_guillot.md) | Les Immeubles Guillot | Québec | pages HTML (rendu serveur) | direct | 7/7 | 57 % | 0 % | 100 % | actif | 2026-08-22 18:11 | | |
| 106 | +| [`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 18:11 | | |
| 107 | +| [`immeubles_pm`](immeubles_pm.md) | Les Immeubles PM | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:11 | | |
| 108 | +| [`immnasr`](immnasr.md) | Les Immeubles Michel Nazair | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:11 | | |
| 109 | +| [`immobilia`](immobilia.md) | Immobilia Rimouski | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:11 | | |
| 110 | +| [`immogex`](immogex.md) | Immogex | Centre-du-Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:11 | | |
| 111 | +| [`immomarketing`](immomarketing.md) | IMMOMARKETING (Immoappart) | Québec | pages HTML (rendu serveur) | direct | 83/94 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:11 | | |
| 112 | +| [`immostar`](immostar.md) | Immostar | Québec | API REST WordPress (wp-json) | direct | 156/165 | 78 % | 99 % | 100 % | actif | 2026-08-22 18:12 | | |
| 113 | +| [`info_logement`](info_logement.md) | Info-Logement | Lanaudière | pages HTML (rendu serveur) | direct | 56/64 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:12 | | |
| 114 | +| [`interrent`](interrent.md) | InterRent REIT (CLV Group) | Montréal | pages HTML (rendu serveur) | direct | 194/215 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:12 | | |
| 115 | +| [`jutras`](jutras.md) | Habitations Jutras | Centre-du-Québec | pages HTML (rendu serveur) | direct | 35/35 | 0 % | 60 % | 100 % | actif | 2026-08-22 18:12 | | |
| 116 | +| [`kangalou`](kangalou.md) | Kangalou | Province | API JSON interne du site | direct | 7776/8415 | 100 % | 100 % | 99 % | actif | 2026-08-22 18:14 | | |
| 117 | +| [`kass`](kass.md) | KASS Property Management | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:14 | | |
| 118 | +| [`katasa`](katasa.md) | Groupe Katasa | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:15 | | |
| 119 | +| [`kijiji`](kijiji.md) | Kijiji Québec (location) | Province | pages HTML (rendu serveur) | direct | 5327/9432 | 100 % | 97 % | 99 % | actif | 2026-08-22 18:25 | | |
| 120 | +| [`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:45 | | |
| 121 | +| [`laberge`](laberge.md) | Groupe Laberge | Québec | pages HTML (rendu serveur) | direct | 57/62 | 93 % | 100 % | 100 % | actif | 2026-08-22 18:25 | | |
| 122 | +| [`labonte`](labonte.md) | Gestion Labonté | Estrie | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:25 | | |
| 123 | +| [`lachance`](lachance.md) | Les Entreprises Lachance | Estrie | sitemap XML + pages HTML | direct | 75/98 | 93 % | 100 % | 100 % | actif | 2026-08-22 18:26 | | |
| 124 | +| [`lacite`](lacite.md) | La Cité Gatineau (Adam Real Estate) | Outaouais | pages HTML (rendu serveur) | direct | 6/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:28 | | |
| 125 | +| [`lafrance_mathieu`](lafrance_mathieu.md) | Lafrance & Mathieu | Québec | pages HTML (rendu serveur) | direct | 37/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:29 | | |
| 126 | +| [`lakle`](lakle.md) | La Klé | Québec | API REST WordPress (wp-json) | direct | 43/49 | 100 % | 53 % | 100 % | actif | 2026-08-22 18:29 | | |
| 127 | +| [`lambert`](lambert.md) | Société Immobilière Lambert | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 18:29 | | |
| 128 | +| [`laureat_richard`](laureat_richard.md) | Logements Lauréat Richard | Estrie | pages HTML (rendu serveur) | direct | 23/23 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:29 | | |
| 129 | +| [`le_baronet`](le_baronet.md) | Le Baronet | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 4/6 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:30 | | |
| 130 | +| [`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 18:30 | | |
| 131 | +| [`leclif`](leclif.md) | Le Clif | Québec | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:30 | | |
| 132 | +| [`ledomaine`](ledomaine.md) | Les Habitations Le Domaine | Montréal | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:30 | | |
| 133 | +| [`lelaureat`](lelaureat.md) | Résidences Le Lauréat | Estrie | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:30 | | |
| 134 | +| [`lequerre`](lequerre.md) | Habitations L'Équerre | Estrie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:30 | | |
| 135 | +| [`lespac`](lespac.md) | LesPAC (location) | Province | pages HTML (rendu serveur) | direct | 2246/2891 | 100 % | 97 % | 93 % | actif | 2026-08-22 18:33 | | |
| 136 | +| [`leviu`](leviu.md) | Le VIU / VIU2 (Groupe Heafey) | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:33 | | |
| 137 | +| [`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 18:33 | | |
| 138 | +| [`location_saguenay`](location_saguenay.md) | Location Saguenay | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 21/21 | 76 % | 0 % | 100 % | actif | 2026-08-22 18:33 | | |
| 139 | +| [`loftsmtl`](loftsmtl.md) | Lofts MTL | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:33 | | |
| 140 | +| [`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 18:33 | | |
| 141 | +| [`logis_experts`](logis_experts.md) | Logis-Experts | Québec | API JSON interne du site | direct | 487/519 | 100 % | 100 % | 38 % | actif | 2026-08-22 18:33 | | |
| 142 | +| [`logisbourg`](logisbourg.md) | Logisbourg | Québec | pages HTML (rendu serveur) | direct | 11/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:33 | | |
| 143 | +| [`logisco`](logisco.md) | Logisco | Québec | pages HTML (rendu serveur) | direct | 160/184 | 99 % | 100 % | 100 % | actif | 2026-08-22 18:33 | | |
| 144 | +| [`logisma`](logisma.md) | Logisma | Québec | API REST WordPress (wp-json) | direct | 12/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:33 | | |
| 145 | +| [`logispro`](logispro.md) | LogisPro Rimouski | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-22 18:34 | | |
| 146 | +| [`logisquebec`](logisquebec.md) | LogisQuébec | Province | sitemap XML + pages HTML | direct | 9702/10212 | 100 % | 99 % | 100 % | actif | 2026-08-22 18:39 | | |
| 147 | +| [`lokalia`](lokalia.md) | Espaces Lokalia | Québec | API admin-ajax (WordPress) | direct | 130/141 | 100 % | 82 % | 100 % | actif | 2026-08-22 18:40 | | |
| 148 | +| [`louer_ca`](louer_ca.md) | Louer.ca | Province | API GraphQL interne | direct | 4564/5908 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:47 | | |
| 149 | +| [`louer_saguenay`](louer_saguenay.md) | Louer Saguenay | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:47 | | |
| 150 | +| [`louis14`](louis14.md) | Quartier Louis Quatorze (Groupe Damco) | Québec | pages HTML (rendu serveur) | direct | 17/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:47 | | |
| 151 | +| [`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 18:47 | | |
| 152 | +| [`luxuor`](luxuor.md) | Les Immeubles Luxuor | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 0 % | 100 % | actif | 2026-08-22 18:47 | | |
| 153 | +| [`lynk_olymbec`](lynk_olymbec.md) | Lynk (Olymbec) | Montréal | pages HTML (rendu serveur) | Firecrawl | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:47 | | |
| 154 | +| [`m_immobilier`](m_immobilier.md) | M Immobilier (location) | Montréal | pages HTML (rendu serveur) | direct | 186/207 | 58 % | 100 % | 100 % | actif | 2026-08-22 18:48 | | |
| 155 | +| [`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 18:48 | | |
| 156 | +| [`matinale`](matinale.md) | Gestion Matinale | Estrie | pages HTML (rendu serveur) | direct | 44/46 | 59 % | 100 % | 100 % | actif | 2026-08-22 18:49 | | |
| 157 | +| [`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 18:49 | | |
| 158 | +| [`medway`](medway.md) | Groupe Medway | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 482/499 | 91 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 159 | +| [`mellem`](mellem.md) | Mellem (Groupe Mach) | Outaouais | sitemap XML + pages HTML | direct | 78/90 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 160 | +| [`mercini`](mercini.md) | Groupe Mercini (Gestion Faleschini Merc… | Québec | pages HTML (rendu serveur) | direct | 45/53 | 96 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 161 | +| [`metcap`](metcap.md) | MetCap Living | Montréal | pages HTML (rendu serveur) | direct | 8/8 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 162 | +| [`minto`](minto.md) | Minto Apartments | Montréal | pages HTML (rendu serveur) | direct | 19/20 | 84 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 163 | +| [`mkar`](mkar.md) | Gestion Immobilière MKAR | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-22 18:50 | | |
| 164 | +| [`moderno`](moderno.md) | Moderno Construction | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:50 | | |
| 165 | +| [`mondev`](mondev.md) | Mondev | Montréal | pages HTML (rendu serveur) | direct | 43/49 | 47 % | 100 % | 100 % | actif | 2026-08-22 18:51 | | |
| 166 | +| [`montagnais`](montagnais.md) | Le Montagnais, résidences étudiantes | Estrie | API admin-ajax (WordPress) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:51 | | |
| 167 | +| [`morin`](morin.md) | Constructions Morin | Estrie | pages HTML (rendu serveur) | direct | 6/7 | 83 % | 100 % | 100 % | actif | 2026-08-22 18:51 | | |
| 168 | +| [`msi`](msi.md) | MSI Gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 96/109 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:52 | | |
| 169 | +| [`multi_logis`](multi_logis.md) | Multi-Logis | Côte-Nord | sitemap XML + pages HTML | direct | 27/27 | 100 % | 96 % | 70 % | actif | 2026-08-22 18:52 | | |
| 170 | +| [`niddamour`](niddamour.md) | Nid d'Amour | Montréal | API JSON interne du site | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:52 | | |
| 171 | +| [`novelo`](novelo.md) | Les Appartements Novelo | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:52 | | |
| 172 | +| [`oklouer`](oklouer.md) | OK Louer (location temporaire) | Québec | pages HTML (rendu serveur) | direct | 41/41 | 98 % | 100 % | 100 % | actif | 2026-08-22 18:52 | | |
| 173 | +| [`omhm`](omhm.md) | OMHM — logements abordables | Montréal | pages HTML (rendu serveur) | direct | 3/4 | 67 % | 100 % | 0 % | actif | 2026-08-22 18:52 | | |
| 174 | +| [`osgoode`](osgoode.md) | Osgoode Properties | Outaouais | API JSON interne du site | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:52 | | |
| 175 | +| [`oxford`](oxford.md) | Appartements Oxford | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:53 | | |
| 176 | +| [`per`](per.md) | Les Immeubles Paul-E. Richard | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:53 | | |
| 177 | +| [`picard`](picard.md) | Picard Immobilier | Québec | pages HTML (rendu serveur) | direct | 29/34 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:53 | | |
| 178 | +| [`place_florimay`](place_florimay.md) | Place Florimay | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 0/0 | — | — | — | actif | 2026-08-22 18:53 | | |
| 179 | +| [`plan_a`](plan_a.md) | Plan A Immobilier | Montréal | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-22 18:53 | | |
| 180 | +| [`progim`](progim.md) | Progim | Montréal | pages HTML (rendu serveur) | direct | 65/73 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:53 | | |
| 181 | +| [`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 18:53 | | |
| 182 | +| [`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 18:54 | | |
| 183 | +| [`proprio_direct`](proprio_direct.md) | Proprio Direct (location) | Province | API JSON interne du site | direct | 183/193 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:54 | | |
| 184 | +| [`quanta`](quanta.md) | Gestion Quanta | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 18:54 | | |
| 185 | +| [`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 18:54 | | |
| 186 | +| [`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 18:54 | | |
| 187 | +| [`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 18:54 | | |
| 188 | +| [`quartier_sila`](quartier_sila.md) | Quartier Sila | Québec | pages HTML (rendu serveur) | direct | 198/200 | 100 % | 26 % | 100 % | actif | 2026-08-22 18:54 | | |
| 189 | +| [`realstar`](realstar.md) | Realstar | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 18:54 | | |
| 190 | +| [`remax_quebec`](remax_quebec.md) | RE/MAX Québec (location) | Province | pages HTML (rendu serveur) | direct | 3227/3521 | 100 % | 100 % | 99 % | actif | 2026-08-22 19:00 | | |
| 191 | +| [`rentals_ca`](rentals_ca.md) | Rentals.ca (Québec) | Province | API GraphQL interne | Scrapfly | 4433/5654 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:05 | | |
| 192 | +| [`rentalys`](rentalys.md) | Rentalys | Montréal | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:05 | | |
| 192 | 193 | | [`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 | 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 | | |
| 194 | +| [`roomies`](roomies.md) | Roomies.ca | Province | sitemap XML + pages HTML | direct | 279/308 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:07 | | |
| 195 | +| [`roussin`](roussin.md) | Immeubles Roussin | Québec | pages HTML (rendu serveur) | direct | 36/36 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:07 | | |
| 196 | +| [`royal_lepage`](royal_lepage.md) | Royal LePage (location) | Province | pages HTML (rendu serveur) | direct | 949/1138 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 197 | +| [`savouet`](savouet.md) | Groupe Savouet | Estrie | pages HTML (rendu serveur) | direct | 15/17 | 93 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 198 | +| [`sdg`](sdg.md) | SDG Immobilier | Québec | pages HTML (rendu serveur) | direct | 9/11 | 89 % | 0 % | 100 % | actif | 2026-08-22 19:09 | | |
| 199 | +| [`sentinelle`](sentinelle.md) | La Sentinelle (Groupe Immobilier Brochu) | Québec | pages HTML (rendu serveur) | direct | 9/11 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 200 | +| [`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 19:09 | | |
| 201 | +| [`shdm`](shdm.md) | SHDM | Montréal | API GraphQL interne | direct | 1/23 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 202 | +| [`siagi`](siagi.md) | SIA Gestion Immobilière | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 0 % | actif | 2026-08-22 19:09 | | |
| 203 | +| [`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 19:09 | | |
| 204 | +| [`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 19:09 | | |
| 205 | +| [`simard`](simard.md) | Immeubles Simard | Québec | pages HTML (rendu serveur) | direct | 5/5 | 20 % | 40 % | 100 % | actif | 2026-08-22 19:09 | | |
| 206 | +| [`simplex`](simplex.md) | Simplex Immobilier | Mauricie | API JSON interne du site | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 207 | +| [`somex_saintnicolas`](somex_saintnicolas.md) | Somex Saint-Nicolas | Québec | pages HTML (rendu serveur) | direct | 145/145 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 208 | +| [`souleymane`](souleymane.md) | Gestion Souleymane | Outaouais | pages HTML (rendu serveur) | direct | 13/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 209 | +| [`stb_immobilier`](stb_immobilier.md) | STB Immobilier | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 11/11 | 91 % | 73 % | 100 % | actif | 2026-08-22 19:09 | | |
| 210 | +| [`summum`](summum.md) | Gestion immobilière Summum | Laurentides | pages HTML (rendu serveur) | direct | 89/97 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:09 | | |
| 211 | +| [`sutton`](sutton.md) | Groupe Sutton Québec (location) | Province | sitemap XML + pages HTML | direct | 1205/1493 | 99 % | 100 % | 100 % | actif | 2026-08-22 19:10 | | |
| 212 | +| [`terater`](terater.md) | Les Constructions Tèratèr | Estrie | pages HTML (rendu serveur) | direct | 12/14 | 67 % | 100 % | 100 % | actif | 2026-08-22 19:10 | | |
| 213 | +| [`terra`](terra.md) | Terra Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 28/51 | 100 % | 89 % | 100 % | actif | 2026-08-22 19:10 | | |
| 214 | +| [`thrace`](thrace.md) | Gestions Thrace | Mauricie | sitemap XML + pages HTML | direct | 162/182 | 100 % | 65 % | 100 % | actif | 2026-08-22 19:10 | | |
| 215 | +| [`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 19:10 | | |
| 215 | 216 | | [`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-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 | | |
| 217 | +| [`trylon`](trylon.md) | Trylon Apartments | Montréal | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:10 | | |
| 218 | +| [`ubee`](ubee.md) | Ubee (location) | Province | API JSON interne du site | direct | 243/249 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:10 | | |
| 219 | +| [`uptimo`](uptimo.md) | Uptimo Gestion immobilière | Estrie | pages HTML (rendu serveur) | direct | 60/78 | 98 % | 98 % | 100 % | actif | 2026-08-22 19:11 | | |
| 220 | +| [`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 19:11 | | |
| 221 | +| [`utile`](utile.md) | UTILE (logement étudiant) | Montréal | pages HTML (rendu serveur) | direct | 28/28 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:11 | | |
| 222 | +| [`via_capitale`](via_capitale.md) | Via Capitale (location) | Province | pages HTML (rendu serveur) | Firecrawl | 192/217 | 54 % | 100 % | 100 % | actif | 2026-08-22 19:11 | | |
| 223 | +| [`viridi`](viridi.md) | Le Viridi | Québec | pages HTML (rendu serveur) | direct | 16/17 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:11 | | |
| 224 | +| [`wandji`](wandji.md) | Gestion Immobilière Wandji | Outaouais | API JSON interne du site | direct | 26/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:11 | | |
| 225 | +| [`werkliv`](werkliv.md) | Werkliv | Montréal | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 19:11 | | |
| 226 | +| [`zumper`](zumper.md) | Zumper (Québec) | Province | API JSON interne du site | direct | 4811/5095 | 100 % | 100 % | 100 % | actif | 2026-08-22 19:16 | | |
| 226 | 227 | |
| 227 | 228 | ## Entrées du registre sans module connecteur |
| 228 | 229 | |
| 229 | 230 | Sources recensées mais non connectées (voir le champ `status` du registre pour la raison détaillée) : |
| 230 | 231 | |
| 231 | 232 | - `alexandre_pelletier` — Les Immeubles Alexandre Pelletier (non connectable) |
| 232 | −- `apartments_com` — Apartments.com (CoStar) (non connectable) | |
| 233 | 233 | - `beaulieu_gestion` — Beaulieu Gestion Immobilière (non connectable) |
| 234 | 234 | - `bloc` — Société Immobilière BLOC (non connectable) |
| 235 | 235 | - `cloria` — Cloria (non connectable actuellement) |
modified
docs/connecteurs/aalto.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 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-22 17:28 — 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 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 24/35 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/acceslogis_gb.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/agence_sherbrooke.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 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-22 17:28 — 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 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 13/19 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/akelius.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 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-22 17:28 — 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 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 231/302 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/alexcellence.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/alias_appartements.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/alouer_sherbrooke.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
added
docs/connecteurs/apartments_com.md
+79 −0
@@ -0,0 +1,79 @@ | ||
| 1 | +# Apartments.com (CoStar) — connecteur `apartments_com` | |
| 2 | + | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | + | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 615/615 | |
| 6 | + | |
| 7 | +## Description de la source | |
| 8 | + | |
| 9 | +Apartments.com (CoStar) — réseau US avec un vrai parc québécois (~500 propriétés / 8 400 unités via /qc/, surtout de grands gestionnaires). Le site est verrouillé par Akamai (403 en direct, via Scrapfly ET via Oxylabs — sondé 2026-08-18/22) : le scraping est délégué à l'ACTEUR APIFY MAISON gorgeous_thistle/ka-apartments-com (source : actors/ka-apartments-com de ce repo) qui passe par le Web Unlocker Bright Data — HTML server-rendered, pas de rendu JS. UNE annonce = UNE PROPRIÉTÉ (immeuble) : prix « à partir de » (minimum des plans d'unités), tous les plans dans details["plans"]. Les fiches détail sont lues en FRANÇAIS (/fr/) : description, GPS, commodités, galerie. Cache détail 30 j + CADENCE : l'inventaire CoStar bouge lentement, l'acteur ne tourne qu'aux LOUKA_APTS_INTERVAL_H heures ; entre deux runs on ré-émet les annonces actives depuis la BD (coût 0). | |
| 10 | + | |
| 11 | +- **Site** : https://www.apartments.com | |
| 12 | +- **Page des annonces** : https://www.apartments.com/qc/ | |
| 13 | +- **Secteurs couverts** : Toute la province via /qc/ (~500 propriétés / 8 400 unités, grands gestionnaires) — acteur Apify maison ka-apartments-com + Bright Data Web Unlocker | |
| 14 | +- **Module** : `louka/connectors/apartments_com.py` — classe `ApartmentsComConnector` | |
| 15 | + | |
| 16 | +## Accès | |
| 17 | + | |
| 18 | +- **Type d'accès** : API JSON interne du site | |
| 19 | +- **Endpoint de base** : https://api.apify.com/v2 | |
| 20 | +- **URLs de départ (constantes du module)** : https://api.apify.com/v2 · https://www.apartments.com/qc/ | |
| 21 | +- **Authentification** : aucune — contenu public | |
| 22 | +- **Pagination** : pagination par offset | |
| 23 | +- **Backend anti-bot / rendu** : requests direct | |
| 24 | +- **Politesse** : 1.0 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)` | |
| 25 | + | |
| 26 | +## Champs récupérés → schéma cible | |
| 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 615 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 29 | + | |
| 30 | +| Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | | |
| 31 | +|---|---|---|---| | |
| 32 | +| `title` | Titre de l'annonce | 100 % | Place Du Fort | | |
| 33 | +| `address` | Adresse civique | 100 % | 1411 St Du Fort | | |
| 34 | +| `city` | Ville (normalisée) | 100 % | Montréal | | |
| 35 | +| `sector` | Secteur / quartier | 0 % | — | | |
| 36 | +| `unit_type` | Type d'unité (3½, 4½…) | 58 % | — | | |
| 37 | +| `price` | Loyer mensuel ($) | 100 % | 1 250 $ | | |
| 38 | +| `bedrooms` | Chambres | 66 % | 4 | | |
| 39 | +| `bathrooms` | Salles de bain | 23 % | 1 | | |
| 40 | +| `area_sqft` | Superficie (pi²) | 2 % | — | | |
| 41 | +| `availability_date` | Date de disponibilité | 33 % | now | | |
| 42 | +| `lat` | GPS (lat/lng) | 40 % | 45.49181 | | |
| 43 | +| `description` | Description | 40 % | Place du Fort est un immeuble d'appartements situé au cœur de Montréal, une ville inspira… | | |
| 44 | +| `images` | Photos (JSON) | 100 % | 23 photo(s) — https://images1.apartments.com/i2/U8NaqvSrDRFxjRV-gt5W7Q4kjHyqkDFW9FxafM5yi… | | |
| 45 | +| `amenities` | Commodités (JSON) | 40 % | ["Cats Allowed", "Maintenance on site", "Controlled Access", "Elevator", "Laundry Facilit… | | |
| 46 | +| `details` | Détails additionnels (JSON) | 49 % | {"inclusions": {"heating": true, "hot_water": true, "internet": true, "cable": true}, "ap… | | |
| 47 | +| `url` | URL de l'annonce source | 100 % | https://www.apartments.com/fr/place-du-fort-montreal-qc/n28d2cm/ | | |
| 48 | + | |
| 49 | +## Fréquence & budget | |
| 50 | + | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : — | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:17 — 615 trouvées, +615 / ~0 / -0 | |
| 53 | +- **Throttling** : 1.0 s entre requêtes (constante de classe `request_delay`) | |
| 54 | +- **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées | |
| 55 | + | |
| 56 | +## Volumétrie & complétude | |
| 57 | + | |
| 58 | +- **Annonces en BD** : 615 au total, **615 actives** | |
| 59 | +- **Première ingestion** : 2026-08-22 · **Dernière observation** : 2026-08-22 | |
| 60 | +- **Complétude clé (actives)** : GPS 40 % · prix 100 % · photos 100 % · description 40 % | |
| 61 | +- **Runs journalisés (60 derniers)** : 1, dont 0 en erreur | |
| 62 | + | |
| 63 | +## Erreurs connues & dépannage | |
| 64 | + | |
| 65 | +Aucune erreur dans les 60 derniers runs journalisés. | |
| 66 | + | |
| 67 | +Rejouer la source seule : `python3 run.py sync apartments_com` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='apartments_com' ORDER BY ts DESC LIMIT 5;`). | |
| 68 | + | |
| 69 | +## Licence, attribution & conditions | |
| 70 | + | |
| 71 | +- Scraping poli d'annonces **publiques** (données factuelles : prix, adresse, disponibilité) publiées par le gestionnaire sur son propre site. | |
| 72 | +- User-Agent **identifiable** avec page d'information et contact : `LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai)` ; throttling 1.0 s ; cache détail pour minimiser les requêtes. | |
| 73 | +- Chaque annonce affichée sur Lou-Ka **pointe vers l'annonce d'origine** (colonne `url`) — la source garde le trafic de conversion. | |
| 74 | +- Retrait sur demande : contact@spboucher.ai. | |
| 75 | + | |
| 76 | +## Historique | |
| 77 | + | |
| 78 | +- 2026-08-22 — premières annonces de la source ingérées dans la BD. | |
| 79 | +- 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par `scripts/gen_connector_docs.py`). | |
modified
docs/connecteurs/app_urbains.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 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-22 17:28 — 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 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 17/21 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/appartements_rimouski.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 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-22 17:28 — 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 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/24 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/ascensio.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 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 | |
modified
docs/connecteurs/atimco.md
+3 −3
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 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 | |
@@ -58,7 +58,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 58 | 58 | - **Annonces en BD** : 299 au total, **299 actives** |
| 59 | 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)** : 45, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 46, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/atlas_immo.md
+2 −2
@@ -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-22 17:28 — 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 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 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 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 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 | |
modified
docs/connecteurs/aula.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # AULA Lévis — connecteur `aula` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 68/70 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 68 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 68 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 | |
modified
docs/connecteurs/axia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Axia Appartements — connecteur `axia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 2 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 | |
modified
docs/connecteurs/barnes_quebec.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # BARNES Québec (location) — connecteur `barnes_quebec` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 101/110 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 101 trouvées, +0 / ~2 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 101 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.25 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 | - **Caps / budgets du module** : `HITS_PER_PAGE` = 100, `MAX_PAGES` = 40 |
modified
docs/connecteurs/beaudoin.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Société Beaudoin Immobilier — connecteur `beaudoin` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 12 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/beaulieu_groupe.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Beaulieu Groupe Immobilier (BGI) — connecteur `beaulieu_groupe` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 5 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 | |
modified
docs/connecteurs/bestlife.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Gestions Bestlife — connecteur `bestlife` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 15/16 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 15 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 15 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 | |
modified
docs/connecteurs/boardwalk.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Boardwalk REIT — connecteur `boardwalk` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 100/100 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:20 — 100 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:46 — 100 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 | |
modified
docs/connecteurs/bons_locataires.md
+3 −3
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Bons Locataires — connecteur `bons_locataires` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Grand Montréal · Backend : direct · Annonces actives : 17/17 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 17 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 17 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
@@ -58,7 +58,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 58 | 58 | - **Annonces en BD** : 17 au total, **17 actives** |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 35 % · photos 94 % · description 94 % |
| 61 | −- **Runs journalisés (60 derniers)** : 51, dont 1 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 52, dont 1 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/boreal_abitibi.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Constructions Boréal Abitibi — connecteur `boreal_abitibi` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/6 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 3 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 | |
modified
docs/connecteurs/bribourg.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Bribourg — connecteur `bribourg` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 2 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 | |
modified
docs/connecteurs/brigil.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Brigil — connecteur `brigil` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 42/42 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 42 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 42 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/brio.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Brio — connecteur `brio` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 3 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 | |
modified
docs/connecteurs/brivia_1sp.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Brivia (1 Square Phillips) — connecteur `brivia_1sp` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 3 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 | |
modified
docs/connecteurs/brochu.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Immobilier Brochu — connecteur `brochu` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:24 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 7 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 | |
modified
docs/connecteurs/cap_gestion.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # CAP Gestion (CAP Immobilier) — connecteur `cap_gestion` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Laurentides / Lanaudière · Backend : direct · Annonces actives : 122/123 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 122 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 122 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 | |
modified
docs/connecteurs/capital_rdr.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Capital RDR — connecteur `capital_rdr` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 4 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 | |
modified
docs/connecteurs/capreit.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # CAPREIT — connecteur `capreit` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 116/123 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 116 trouvées, +0 / ~16 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 116 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 | |
modified
docs/connecteurs/carat_immobilier.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Carat Immobilier — connecteur `carat_immobilier` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 3 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 | |
modified
docs/connecteurs/centurion.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Centurion / CP Living (Quartier QB) — connecteur `centurion` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 4 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 | |
modified
docs/connecteurs/cite_immobilier.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Cité Immobilier — connecteur `cite_immobilier` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:25 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:50 — 2 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 | |
modified
docs/connecteurs/cogir.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Cogir Immobilier — connecteur `cogir` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 282/300 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:26 — 282 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:52 — 282 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 | |
modified
docs/connecteurs/contraste.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Contraste Immobilier — connecteur `contraste` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 208/234 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 208 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:52 — 208 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 | |
modified
docs/connecteurs/copley.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Copley — connecteur `copley` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 52/52 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 52 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 52 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 | |
modified
docs/connecteurs/cosoltec.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Cosoltec (Evado, Le Monroe, Natür) — connecteur `cosoltec` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 44/57 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 44 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 44 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/courtemanche.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Immobilière Courtemanche — connecteur `courtemanche` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 0/0 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 0 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 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 | |
modified
docs/connecteurs/cromwell.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Cromwell Management — connecteur `cromwell` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 12 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 | |
modified
docs/connecteurs/denux.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Denux — connecteur `denux` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 20/20 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 20 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 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 | |
modified
docs/connecteurs/desmarais.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles Desmarais — connecteur `desmarais` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 14/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:27 — 14 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 14 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/desroches.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles Claude Desroches — connecteur `desroches` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 6/6 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:28 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:53 — 6 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 | |
modified
docs/connecteurs/devcore.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Devcore Group — connecteur `devcore` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 14/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:28 — 14 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:54 — 14 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 | |
modified
docs/connecteurs/devimco.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Devimco Appartements — connecteur `devimco` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 238/576 | |
| 5 | +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 231/576 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Devimco Appartements (devimco.com/appartements — St Ann & Hexagone | ||
| 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 238 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 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 | |---|---|---|---| |
@@ -49,13 +49,13 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:28 — 238 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:54 — 231 trouvées, +0 / ~0 / -7 | |
| 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** : 576 au total, **238 actives** | |
| 58 | +- **Annonces en BD** : 576 au total, **231 actives** | |
| 59 | 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 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/dma_locago.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # DMA / Locago (Douville, Moffet & Associés) — connecteur `dma_locago` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 116/126 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:29 — 116 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:55 — 116 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 | |
modified
docs/connecteurs/duproprio.md
+3 −3
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # DuProprio (location) — connecteur `duproprio` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Province · Backend : direct · Annonces actives : 3894/4109 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:29 — 3894 trouvées, +0 / ~0 / -4 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:55 — 3894 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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,7 +58,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 58 | 58 | - **Annonces en BD** : 4109 au total, **3894 actives** |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 49, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 51, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/dynamic.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion immobilière Dynamic — connecteur `dynamic` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 44/55 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:18 — 44 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:44 — 44 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 | |
modified
docs/connecteurs/edifia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Edifia Groupe Immobilier — connecteur `edifia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 177/185 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:29 — 177 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:55 — 177 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 | |
modified
docs/connecteurs/elements.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Quartier les Éléments — connecteur `elements` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:30 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:56 — 2 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/elite.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Elite Immobilier — connecteur `elite` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 12/12 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:30 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:56 — 12 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/elk.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # ELK Property Management — connecteur `elk` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:30 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:56 — 3 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/equinoxe_batimo.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Batimo/EMD — Collection Équinoxe — connecteur `equinoxe_batimo` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 616/662 | |
| 5 | +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 626/662 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Collection Équinoxe (Batimo) (collectionequinoxe.com — Équinoxe S | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 616 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 626 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 | |---|---|---|---| |
@@ -49,13 +49,13 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:32 — 585 trouvées, +0 / ~0 / -10 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:58 — 591 trouvées, +0 / ~0 / -4 | |
| 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** : 662 au total, **616 actives** | |
| 58 | +- **Annonces en BD** : 662 au total, **626 actives** | |
| 59 | 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 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/evoludev.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Evoludev — connecteur `evoludev` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 134/134 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:32 — 134 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:58 — 134 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/fb_marketplace.md
+22 −22
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Facebook Marketplace (location) — connecteur `fb_marketplace` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 2387/22526 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 1732/23481 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,40 +25,40 @@ Facebook Marketplace — catégorie location (propertyrentals), TOUTE la provinc | ||
| 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 2387 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 1732 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 % | Appartement de 2 chambres et 1 salle de bain | | |
| 33 | −| `address` | Adresse civique | 0 % | — | | |
| 34 | −| `city` | Ville (normalisée) | 100 % | Mirabel | | |
| 32 | +| `title` | Titre de l'annonce | 100 % | 4 Beds 1 Bath - Apartment | | |
| 33 | +| `address` | Adresse civique | 18 % | — | | |
| 34 | +| `city` | Ville (normalisée) | 99 % | Montréal | | |
| 35 | 35 | | `sector` | Secteur / quartier | 0 % | — | |
| 36 | −| `unit_type` | Type d'unité (3½, 4½…) | 92 % | 4½ | | |
| 37 | −| `price` | Loyer mensuel ($) | 100 % | 1 800 $ | | |
| 38 | −| `bedrooms` | Chambres | 92 % | 2 | | |
| 39 | −| `bathrooms` | Salles de bain | 4 % | — | | |
| 40 | −| `area_sqft` | Superficie (pi²) | 3 % | — | | |
| 41 | −| `availability_date` | Date de disponibilité | 0 % | — | | |
| 42 | −| `lat` | GPS (lat/lng) | 23 % | 45.6977 | | |
| 43 | −| `description` | Description | 24 % | 🏠 CESSION DE BAIL — GRAND 4 ½ À LOUER – MIRABEL (SAINT-JANVIER) 📍 Situé dans le secteur S… | | |
| 44 | −| `images` | Photos (JSON) | 100 % | 13 photo(s) — https://scontent-lga3-2.xx.fbcdn.net/v/t39.30808-6/774008687_36617753439881… | | |
| 45 | −| `amenities` | Commodités (JSON) | 0 % | [] | | |
| 46 | −| `details` | Détails additionnels (JSON) | 21 % | {"appliances": {"fridge": true, "stove": true, "dishwasher": true, "washer_dryer": true},… | | |
| 47 | −| `url` | URL de l'annonce source | 100 % | https://www.facebook.com/marketplace/item/995082833486367/ | | |
| 36 | +| `unit_type` | Type d'unité (3½, 4½…) | 94 % | 6½+ | | |
| 37 | +| `price` | Loyer mensuel ($) | 100 % | 1 995 $ | | |
| 38 | +| `bedrooms` | Chambres | 95 % | 4 | | |
| 39 | +| `bathrooms` | Salles de bain | 24 % | 1 | | |
| 40 | +| `area_sqft` | Superficie (pi²) | 7 % | — | | |
| 41 | +| `availability_date` | Date de disponibilité | 13 % | — | | |
| 42 | +| `lat` | GPS (lat/lng) | 56 % | 45.5303 | | |
| 43 | +| `description` | Description | 56 % | 4 bedroom apartment in the Plateau. 1 bathroom. Close to Park Lafontain. Includes 4 appli… | | |
| 44 | +| `images` | Photos (JSON) | 100 % | 3 photo(s) — https://scontent.fyhu2-1.fna.fbcdn.net/v/t39.30808-6/773583100_1016459004951… | | |
| 45 | +| `amenities` | Commodités (JSON) | 14 % | [] | | |
| 46 | +| `details` | Détails additionnels (JSON) | 50 % | {"appliances": {"fridge": true}, "furnished": true} | | |
| 47 | +| `url` | URL de l'annonce source | 100 % | https://www.facebook.com/marketplace/item/3360053384156664/ | | |
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:23 — 1487 trouvées, +671 / ~526 / -807 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:25 — 1247 trouvées, +146 / ~778 / -739 | |
| 53 | 53 | - **Throttling** : 1.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** : 22526 au total, **2387 actives** | |
| 58 | +- **Annonces en BD** : 23481 au total, **1732 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22 |
| 60 | −- **Complétude clé (actives)** : GPS 23 % · prix 100 % · photos 100 % · description 24 % | |
| 61 | −- **Runs journalisés (60 derniers)** : 49, dont 0 en erreur | |
| 60 | +- **Complétude clé (actives)** : GPS 56 % · prix 100 % · photos 100 % · description 56 % | |
| 61 | +- **Runs journalisés (60 derniers)** : 54, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/ferrovia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ferrovia (condos locatifs Mirabel) — connecteur `ferrovia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 22/24 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 22 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:05 — 22 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 | |
modified
docs/connecteurs/firma.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Firma — connecteur `firma` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 12 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 | |
modified
docs/connecteurs/floria.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Floria — connecteur `floria` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 21/21 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 21 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 21 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 | |
modified
docs/connecteurs/forsa.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion immobilière Forsa — connecteur `forsa` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 10/13 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 10 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 10 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/fournelle.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Appartements Fournelle (Groupe Fournelle) — connecteur `fournelle` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 4 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 | |
modified
docs/connecteurs/garic.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Garic Gestion Immobilière — connecteur `garic` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 45/54 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 45 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 45 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/gesteco.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gesteco — connecteur `gesteco` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 9/15 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:42 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 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 | |
modified
docs/connecteurs/gestimmo_estrie.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestimmo Estrie — connecteur `gestimmo_estrie` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 41/41 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 41 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 41 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 | |
modified
docs/connecteurs/gestion_fauvel.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Fauvel — connecteur `gestion_fauvel` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 11/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 11 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 11 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 | |
modified
docs/connecteurs/gestion_habitation.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Habitation — connecteur `gestion_habitation` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 4 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 | |
modified
docs/connecteurs/gestion_isr.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion ISR — connecteur `gestion_isr` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 20/22 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 20 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 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 | |
modified
docs/connecteurs/gestion_jdm.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # JDM Gestion immobilière — connecteur `gestion_jdm` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 2 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 | |
modified
docs/connecteurs/gestion_laprise.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Laprise — connecteur `gestion_laprise` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:06 — 2 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 | - **Caps / budgets du module** : `MAX_PAGES` = 8 |
modified
docs/connecteurs/gestion_legrand.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Le Grand — connecteur `gestion_legrand` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 5 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 | |
modified
docs/connecteurs/gestion_montreal.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Montréal — connecteur `gestion_montreal` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 23/26 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 23 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 23 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 | |
modified
docs/connecteurs/gestion_tb.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion TB (portail Appartements TB) — connecteur `gestion_tb` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 30/36 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 30 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 30 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 | |
modified
docs/connecteurs/gestion_valco.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Valco — connecteur `gestion_valco` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 2 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 | |
modified
docs/connecteurs/gestipro.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestipro — connecteur `gestipro` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 103/124 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 103 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 103 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/gia_t.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # GIA-T — Gestion Immobilière Abitibi-Témiscamingue — connecteur `gia_t` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 5/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 5 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 | |
modified
docs/connecteurs/gimcote.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # GIM Côté — connecteur `gimcote` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 86/91 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 86 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 86 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 | |
modified
docs/connecteurs/gio.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Immobilière de l'Outaouais (GIO) — connecteur `gio` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 5 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 3.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 | |
modified
docs/connecteurs/girescom.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Girescom gestion immobilière — connecteur `girescom` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 40/41 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 40 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 40 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 | |
modified
docs/connecteurs/girs.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # GIRS — Gestion Immobilière de la Rive Sud — connecteur `girs` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 8/8 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 8 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 8 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 | |
modified
docs/connecteurs/gparadis.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # GParadis — connecteur `gparadis` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 22/22 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:43 — 22 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:07 — 22 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 | |
modified
docs/connecteurs/groupe_dallaire.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Dallaire (Faubourg du Moulin) — connecteur `groupe_dallaire` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif (dégradé)** · Région : Québec · Backend : Scrapfly · Annonces actives : 255/259 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (Scrapfly, API admin-ajax (WordPress)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:44 — 255 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 255 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 | |
modified
docs/connecteurs/groupe_jacques.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Jacques — connecteur `groupe_jacques` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 10/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:44 — 10 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 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 | |
modified
docs/connecteurs/groupe_maurice.md
+3 −3
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Groupe Maurice — connecteur `groupe_maurice` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Province · Backend : direct · Annonces actives : 203/203 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:45 — 203 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 203 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,7 +58,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 58 | 58 | - **Annonces en BD** : 203 au total, **203 actives** |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **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)** : 45, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 46, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/groupe_robin.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Robin — connecteur `groupe_robin` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 71/76 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:45 — 71 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 71 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | - **Caps / budgets du module** : `PER_PAGE` = 40 |
modified
docs/connecteurs/groupe_theoret.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Théorêt (Gestion Immobilière) — connecteur `groupe_theoret` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 24/24 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:45 — 24 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 24 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/habitations_jeanne.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Habitations Jeanne — connecteur `habitations_jeanne` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 14/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:45 — 14 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 14 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 | |
modified
docs/connecteurs/habitations_sf.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Habitations SF (S&F Gestion) — connecteur `habitations_sf` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:45 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:08 — 7 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/halfred.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Halfred — connecteur `halfred` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 165/171 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:46 — 165 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:09 — 165 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 10.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 | |
modified
docs/connecteurs/hazelview.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Hazelview Properties — connecteur `hazelview` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 6/6 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:46 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 6 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 | |
modified
docs/connecteurs/headway.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Corporation Headway — connecteur `headway` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:46 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 7 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 | |
modified
docs/connecteurs/heafey.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Heafey (Le We 2, Le We 3, Loggia sur le Parc) — connecteur `heafey` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 246/261 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:46 — 246 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 246 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 | |
modified
docs/connecteurs/hestia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Hestia Groupe immobilier — connecteur `hestia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:46 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 3 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 | |
modified
docs/connecteurs/huma.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # HUMĀ Condos locatifs — connecteur `huma` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 38/38 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 38 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 38 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/immeubles_aeb.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles AEB — connecteur `immeubles_aeb` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 26/26 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 26 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 26 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 | |
modified
docs/connecteurs/immeubles_bc.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Beaulieu et Collin — connecteur `immeubles_bc` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/30 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 20 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:10 — 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 | |
modified
docs/connecteurs/immeubles_bois.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Bois — connecteur `immeubles_bois` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 23/23 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 23 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 23 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 | |
modified
docs/connecteurs/immeubles_db.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles D.B. Busque-Massé — connecteur `immeubles_db` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 13/13 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 13 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 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 | |
modified
docs/connecteurs/immeubles_dcl.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles DCL — connecteur `immeubles_dcl` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 7/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 7 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 | |
modified
docs/connecteurs/immeubles_guillot.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Guillot — connecteur `immeubles_guillot` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 7 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 | |
modified
docs/connecteurs/immeubles_ouellet.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Vianney Ouellet & Fils — connecteur `immeubles_ouellet` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 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 | |
modified
docs/connecteurs/immeubles_pm.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles PM — connecteur `immeubles_pm` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 2 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 | |
modified
docs/connecteurs/immnasr.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Michel Nazair — connecteur `immnasr` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 3 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/immobilia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immobilia Rimouski — connecteur `immobilia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 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 | |
modified
docs/connecteurs/immogex.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immogex — connecteur `immogex` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 3 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 | |
modified
docs/connecteurs/immomarketing.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # IMMOMARKETING (Immoappart) — connecteur `immomarketing` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 83/94 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:47 — 83 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:11 — 83 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 | |
modified
docs/connecteurs/immostar.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immostar — connecteur `immostar` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 156/165 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:48 — 156 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:12 — 156 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 | |
modified
docs/connecteurs/info_logement.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Info-Logement — connecteur `info_logement` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 56/64 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:48 — 56 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:12 — 56 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 | |
modified
docs/connecteurs/interrent.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # InterRent REIT (CLV Group) — connecteur `interrent` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 194/215 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:48 — 194 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:12 — 194 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 | |
modified
docs/connecteurs/jutras.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Habitations Jutras — connecteur `jutras` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 35/35 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:48 — 35 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:12 — 35 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 | |
modified
docs/connecteurs/kangalou.md
+6 −6
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Kangalou — connecteur `kangalou` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 7774/8413 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 7776/8415 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Kangalou (kangalou.com) — portail locatif québécois géré (Solutions Kangal | ||
| 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 7774 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 7776 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 | |---|---|---|---| |
@@ -49,16 +49,16 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:50 — 7774 trouvées, +1 / ~1 / -12 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:14 — 7752 trouvées, +2 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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** : 8413 au total, **7774 actives** | |
| 58 | +- **Annonces en BD** : 8415 au total, **7776 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 78 % |
| 61 | −- **Runs journalisés (60 derniers)** : 39, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 40, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/kass.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # KASS Property Management — connecteur `kass` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:51 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:14 — 4 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/katasa.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Katasa — connecteur `katasa` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 14:51 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:15 — 4 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/kijiji.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Kijiji Québec (location) — connecteur `kijiji` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 5314/9379 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 5327/9432 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Kijiji (kijiji.ca) — petites annonces de LOCATION UNIQUEMENT les catégories l | ||
| 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 5314 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 5327 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 | |---|---|---|---| |
@@ -49,13 +49,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:00 — 5249 trouvées, +38 / ~5 / -72 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:25 — 5252 trouvées, +53 / ~18 / -42 | |
| 53 | 53 | - **Throttling** : 1.2 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** : 9379 au total, **5314 actives** | |
| 58 | +- **Annonces en BD** : 9432 au total, **5327 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 97 % · photos 99 % · description 100 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/la_cour.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Cour Appartements — connecteur `la_cour` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 19/21 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 17:19 — 19 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 17:45 — 19 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 | |
modified
docs/connecteurs/laberge.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Laberge — connecteur `laberge` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 57/62 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:00 — 57 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:25 — 57 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 | |
modified
docs/connecteurs/labonte.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Labonté — connecteur `labonte` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 18/18 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:00 — 18 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:25 — 18 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 | |
modified
docs/connecteurs/lachance.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Entreprises Lachance — connecteur `lachance` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 75/98 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:02 — 75 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:26 — 75 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 | |
modified
docs/connecteurs/lacite.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Cité Gatineau (Adam Real Estate) — connecteur `lacite` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 6/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:04 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:28 — 6 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 10.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 | |
modified
docs/connecteurs/lafrance_mathieu.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Lafrance & Mathieu — connecteur `lafrance_mathieu` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 37/41 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:04 — 37 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:29 — 37 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 | |
modified
docs/connecteurs/lakle.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Klé — connecteur `lakle` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 43/49 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 43 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:29 — 43 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/lambert.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Société Immobilière Lambert — connecteur `lambert` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:29 — 2 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 | |
modified
docs/connecteurs/laureat_richard.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logements Lauréat Richard — connecteur `laureat_richard` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 23/23 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 23 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:29 — 23 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 | |
modified
docs/connecteurs/le_baronet.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Baronet — connecteur `le_baronet` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 4/6 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 4 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 | |
modified
docs/connecteurs/le_st_georges.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le St-Georges — connecteur `le_st_georges` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 4 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 | |
modified
docs/connecteurs/leclif.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Clif — connecteur `leclif` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 10/10 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 10 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 10 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 | |
modified
docs/connecteurs/ledomaine.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Habitations Le Domaine — connecteur `ledomaine` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 5 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 | |
modified
docs/connecteurs/lelaureat.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Résidences Le Lauréat — connecteur `lelaureat` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 5 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 | |
modified
docs/connecteurs/lequerre.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Habitations L'Équerre — connecteur `lequerre` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:05 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:30 — 1 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 | |
modified
docs/connecteurs/lespac.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # LesPAC (location) — connecteur `lespac` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 2242/2882 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 2246/2891 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ LesPAC (lespac.com) — petites annonces du Québec UNIQUEMENT l'immobilier LOCA | ||
| 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 2242 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 2246 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 | |---|---|---|---| |
@@ -49,13 +49,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:08 — 2237 trouvées, +4 / ~1 / -4 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 2239 trouvées, +9 / ~1 / -5 | |
| 53 | 53 | - **Throttling** : 0.9 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** : 2882 au total, **2242 actives** | |
| 58 | +- **Annonces en BD** : 2891 au total, **2246 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 97 % · photos 93 % · description 99 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/leviu.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le VIU / VIU2 (Groupe Heafey) — connecteur `leviu` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:08 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 3 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/location_di.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Location DI (Groupe Sphère DI) — connecteur `location_di` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie / Lanaudière · Backend : direct · Annonces actives : 9/16 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:08 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 9 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 | |
modified
docs/connecteurs/location_saguenay.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Location Saguenay — connecteur `location_saguenay` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 21/21 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:08 — 21 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 21 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 10.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 | |
modified
docs/connecteurs/loftsmtl.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Lofts MTL — connecteur `loftsmtl` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 9/9 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 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 | |
modified
docs/connecteurs/logement_mauricie.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logement Mauricie (regroupement de propriétaires) — connecteur `logement_mauricie` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 1 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/logis_experts.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logis-Experts — connecteur `logis_experts` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 487/519 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 487 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 487 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/logisbourg.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logisbourg — connecteur `logisbourg` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 11/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 11 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 11 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 | |
modified
docs/connecteurs/logisco.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logisco — connecteur `logisco` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 160/184 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 160 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 160 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 | |
modified
docs/connecteurs/logisma.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Logisma — connecteur `logisma` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 12/20 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:33 — 12 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 | |
modified
docs/connecteurs/logispro.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # LogisPro Rimouski — connecteur `logispro` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:09 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:34 — 4 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 | |
modified
docs/connecteurs/logisquebec.md
+6 −6
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # LogisQuébec — connecteur `logisquebec` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 9668/10178 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 9702/10212 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ LogisQuébec (logisquebec.com) — portail locatif québécois (Réglisse Média | ||
| 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 9668 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 9702 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 | |---|---|---|---| |
@@ -49,16 +49,16 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:14 — 9668 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:39 — 9665 trouvées, +34 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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** : 10178 au total, **9668 actives** | |
| 58 | +- **Annonces en BD** : 10212 au total, **9702 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 43, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 44, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/lokalia.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Espaces Lokalia — connecteur `lokalia` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 130/141 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:15 — 130 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:40 — 130 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 | |
modified
docs/connecteurs/louer_ca.md
+10 −10
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Louer.ca — connecteur `louer_ca` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 4613/5908 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 4564/5908 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,40 +25,40 @@ Louer.ca — portail locatif 100 % Québec du réseau Rentals.ca. Accès par l'A | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 4613 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 4564 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 | 32 | | `title` | Titre de l'annonce | 100 % | 1225 Saint Marc Street | |
| 33 | 33 | | `address` | Adresse civique | 100 % | 1225 Saint Marc Street | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Montréal | |
| 35 | −| `sector` | Secteur / quartier | 17 % | — | | |
| 35 | +| `sector` | Secteur / quartier | 16 % | — | | |
| 36 | 36 | | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 100 % | 1 450 $ | |
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 1 | |
| 39 | 39 | | `bathrooms` | Salles de bain | 100 % | 1 | |
| 40 | −| `area_sqft` | Superficie (pi²) | 83 % | 400 | | |
| 41 | −| `availability_date` | Date de disponibilité | 99 % | now | | |
| 40 | +| `area_sqft` | Superficie (pi²) | 84 % | 400 | | |
| 41 | +| `availability_date` | Date de disponibilité | 100 % | now | | |
| 42 | 42 | | `lat` | GPS (lat/lng) | 100 % | 45.492189 | |
| 43 | 43 | | `description` | Description | 100 % | Le Marco Situé au 1225, rue Saint Marc, à proximité du métro Guy-Concordia, ce quartier o… | |
| 44 | 44 | | `images` | Photos (JSON) | 100 % | 12 photo(s) — https://images.rentals.ca/property-pictures/large/montreal-qc/809380/apartm… | |
| 45 | −| `amenities` | Commodités (JSON) | 94 % | ["Cuisinière", "Non-fumeur", "Balcon", "Réfrigérateur", "Électricité incluse", "Chauffage… | | |
| 45 | +| `amenities` | Commodités (JSON) | 95 % | ["Cuisinière", "Non-fumeur", "Balcon", "Réfrigérateur", "Électricité incluse", "Chauffage… | | |
| 46 | 46 | | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "appliances": {"fridge": true, "st… | |
| 47 | 47 | | `url` | URL de l'annonce source | 100 % | https://louer.ca/montreal/le-marco-1225-st-marc-st | |
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:21 — 4317 trouvées, +6 / ~14 / -260 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 5617 trouvées, +0 / ~1 / -292 | |
| 53 | 53 | - **Throttling** : 0.5 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** : 5908 au total, **4613 actives** | |
| 58 | +- **Annonces en BD** : 5908 au total, **4564 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **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)** : 41, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 42, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/louer_saguenay.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Louer Saguenay — connecteur `louer_saguenay` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:21 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 5 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 | |
modified
docs/connecteurs/louis14.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Quartier Louis Quatorze (Groupe Damco) — connecteur `louis14` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 17/18 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:21 — 17 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 17 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 | |
modified
docs/connecteurs/lr_gestion.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # LR Gestion immobilière (LR Location) — connecteur `lr_gestion` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 106/116 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:21 — 107 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 107 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 | |
modified
docs/connecteurs/luxuor.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Luxuor — connecteur `luxuor` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:22 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 4 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 | |
modified
docs/connecteurs/lynk_olymbec.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Lynk (Olymbec) — connecteur `lynk_olymbec` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : Firecrawl · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de l | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:22 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:47 — 4 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/m_immobilier.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # M Immobilier (location) — connecteur `m_immobilier` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 186/207 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:22 — 186 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:48 — 186 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 | |
modified
docs/connecteurs/majestic.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Majestic du Lac Boivin — connecteur `majestic` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:22 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:48 — 1 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 | |
modified
docs/connecteurs/matinale.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Matinale — connecteur `matinale` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 44/46 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:23 — 44 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:49 — 44 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 20.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 | |
modified
docs/connecteurs/may_bourg.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion May Bourg — connecteur `may_bourg` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 6/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:23 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:49 — 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 | |
modified
docs/connecteurs/medway.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Medway — connecteur `medway` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 482/499 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:24 — 482 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 482 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 | |
modified
docs/connecteurs/mellem.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Mellem (Groupe Mach) — connecteur `mellem` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 79/90 | |
| 5 | +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 78/90 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ connecteur Mellem (mellem.ca — Groupe Mach) Site Nuxt (rendu serveur) : un pro | ||
| 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 79 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 78 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 | |---|---|---|---| |
@@ -49,13 +49,13 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:24 — 78 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 78 trouvées, +0 / ~0 / -1 | |
| 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** : 90 au total, **79 actives** | |
| 58 | +- **Annonces en BD** : 90 au total, **78 actives** | |
| 59 | 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 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/mercini.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Mercini (Gestion Faleschini Mercier) — connecteur `mercini` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 45/53 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:24 — 45 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 45 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 | |
modified
docs/connecteurs/metcap.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # MetCap Living — connecteur `metcap` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 8/8 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:25 — 8 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 8 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 | |
modified
docs/connecteurs/minto.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Minto Apartments — connecteur `minto` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 19/20 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:25 — 19 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 19 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 | |
modified
docs/connecteurs/mkar.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Immobilière MKAR — connecteur `mkar` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:25 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 5 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 | |
modified
docs/connecteurs/moderno.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Moderno Construction — connecteur `moderno` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:25 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:50 — 7 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 | |
modified
docs/connecteurs/mondev.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Mondev — connecteur `mondev` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 43/49 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:26 — 43 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:51 — 43 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 | |
modified
docs/connecteurs/montagnais.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Montagnais, résidences étudiantes — connecteur `montagnais` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 31/31 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:26 — 31 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:51 — 31 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 | |
modified
docs/connecteurs/morin.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Constructions Morin — connecteur `morin` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 6/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:26 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:51 — 6 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 | |
modified
docs/connecteurs/msi.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # MSI Gestion immobilière — connecteur `msi` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 96/109 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 96 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 96 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/multi_logis.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Multi-Logis — connecteur `multi_logis` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 27/27 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 27 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 27 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 | |
modified
docs/connecteurs/niddamour.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Nid d'Amour — connecteur `niddamour` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 14/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 14 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 14 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 | |
modified
docs/connecteurs/novelo.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Appartements Novelo — connecteur `novelo` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 4 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 | |
modified
docs/connecteurs/oklouer.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # OK Louer (location temporaire) — connecteur `oklouer` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 41/41 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 41 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 41 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 | |
modified
docs/connecteurs/omhm.md
+3 −3
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # OMHM — logements abordables — connecteur `omhm` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 3/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:27 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 3 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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,7 +58,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 58 | 58 | - **Annonces en BD** : 4 au total, **3 actives** |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 0 % · description 0 % |
| 61 | −- **Runs journalisés (60 derniers)** : 41, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 42, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/osgoode.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Osgoode Properties — connecteur `osgoode` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:52 — 4 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/oxford.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Appartements Oxford — connecteur `oxford` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 2 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 | - **Caps / budgets du module** : `_MAX_FICHES` = 12 |
modified
docs/connecteurs/per.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Immeubles Paul-E. Richard — connecteur `per` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 3 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 | |
modified
docs/connecteurs/picard.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Picard Immobilier — connecteur `picard` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 29/34 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 29 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 29 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 | |
modified
docs/connecteurs/place_florimay.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Place Florimay — connecteur `place_florimay` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 0 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 0 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 | |
modified
docs/connecteurs/plan_a.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Plan A Immobilier — connecteur `plan_a` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 11/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 11 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 11 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 | |
modified
docs/connecteurs/progim.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Progim — connecteur `progim` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 65/73 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 65 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 63 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/projection_immo.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Projection Immobilière — connecteur `projection_immo` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/1 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:28 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:53 — 1 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 | |
modified
docs/connecteurs/promenade_des_forts.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Promenade des Forts — connecteur `promenade_des_forts` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 2 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 | |
modified
docs/connecteurs/proprio_direct.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Proprio Direct (location) — connecteur `proprio_direct` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Province · Backend : direct · Annonces actives : 183/193 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 183 trouvées, +1 / ~1 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 183 trouvées, +0 / ~1 / -0 | |
| 53 | 53 | - **Throttling** : 0.4 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 | - **Caps / budgets du module** : `MAX_PAGES` = 60 |
modified
docs/connecteurs/quanta.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Quanta — connecteur `quanta` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 2/2 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 2 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 2 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/quartier_mosaique.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Quartier Mosaïque (Constrobourg) — connecteur `quartier_mosaique` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 24/24 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 24 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 24 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 | |
modified
docs/connecteurs/quartier_oree.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Quartier Orée — connecteur `quartier_oree` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 28/31 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 28 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 28 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 | |
modified
docs/connecteurs/quartier_plus.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Quartier Plus — connecteur `quartier_plus` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 59/59 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 59 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 59 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 | |
modified
docs/connecteurs/quartier_sila.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Quartier Sila — connecteur `quartier_sila` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 198/200 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 198 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 198 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/realstar.md
+3 −4
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Realstar — connecteur `realstar` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 9/9 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:29 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 18:54 — 9 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
@@ -58,14 +58,13 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 58 | 58 | - **Annonces en BD** : 9 au total, **9 actives** |
| 59 | 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 2 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
| 65 | 65 | | Date | Message (sync_log) | |
| 66 | 66 | |---|---| |
| 67 | 67 | | 2026-08-21 01:15 | 502 Server Error: Bad Gateway for url: https://api.firecrawl.dev/v1/scrape | |
| 68 | −| 2026-08-15 21:53 | 502 Server Error: Bad Gateway for url: https://api.firecrawl.dev/v1/scrape | | |
| 69 | 68 | |
| 70 | 69 | Rejouer la source seule : `python3 run.py sync realstar` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='realstar' ORDER BY ts DESC LIMIT 5;`). |
| 71 | 70 | |
modified
docs/connecteurs/remax_quebec.md
+4 −4
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # RE/MAX Québec (location) — connecteur `remax_quebec` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 3227/3518 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 3227/3521 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -49,13 +49,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:35 — 3224 trouvées, +2 / ~2 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:00 — 3227 trouvées, +3 / ~0 / -3 | |
| 53 | 53 | - **Throttling** : 0.4 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** : 3518 au total, **3227 actives** | |
| 58 | +- **Annonces en BD** : 3521 au total, **3227 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 96 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/rentals_ca.md
+7 −7
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Rentals.ca (Québec) — connecteur `rentals_ca` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : Scrapfly · Annonces actives : 4439/5654 | |
| 5 | +**État : actif** · Région : Province · Backend : Scrapfly · Annonces actives : 4433/5654 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,14 +25,14 @@ Rentals.ca — portail locatif national, filtré PROVINCE DE QUÉBEC. Même plat | ||
| 25 | 25 | |
| 26 | 26 | ## Champs récupérés → schéma cible |
| 27 | 27 | |
| 28 | −Le connecteur (Scrapfly, API GraphQL interne) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 4439 annonces actives ; exemple tiré d'une ligne réelle de la BD. | |
| 28 | +Le connecteur (Scrapfly, API GraphQL interne) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 4433 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 | 32 | | `title` | Titre de l'annonce | 100 % | 1225 Saint Marc Street | |
| 33 | 33 | | `address` | Adresse civique | 100 % | 1225 Saint Marc Street | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Montréal | |
| 35 | −| `sector` | Secteur / quartier | 19 % | — | | |
| 35 | +| `sector` | Secteur / quartier | 18 % | — | | |
| 36 | 36 | | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 100 % | 1 450 $ | |
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 1 | |
@@ -49,16 +49,16 @@ Le connecteur (Scrapfly, API GraphQL interne) alimente les colonnes de la table | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:40 — 4072 trouvées, +3 / ~6 / -155 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:05 — 4097 trouvées, +0 / ~2 / -159 | |
| 53 | 53 | - **Throttling** : 0.3 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** : 5654 au total, **4439 actives** | |
| 58 | +- **Annonces en BD** : 5654 au total, **4433 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-18 · **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)** : 37, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 38, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/rentalys.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Rentalys — connecteur `rentalys` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 10/10 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:41 — 10 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:05 — 10 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 | |
modified
docs/connecteurs/rivero.md
+1 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Rivero — connecteur `rivero` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : désactivé (disabled=True)** · Région : Québec · Backend : direct · Annonces actives : 0/214 |
| 6 | 6 | |
modified
docs/connecteurs/roomies.md
+7 −7
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Roomies.ca — connecteur `roomies` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 281/306 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 279/308 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Roomies.ca — chambres et colocation (segment que les gestionnaires ne couvrent | ||
| 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 281 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 279 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 | |---|---|---|---| |
@@ -42,23 +42,23 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 42 | 42 | | `lat` | GPS (lat/lng) | 100 % | 45.4600610916329 | |
| 43 | 43 | | `description` | Description | 100 % | Cute, clean, bright and practical private room for a female at 690$ / month. It is 5 minu… | |
| 44 | 44 | | `images` | Photos (JSON) | 100 % | 10 photo(s) — https://cloudinary.roomies.pics/image/upload/c_fill,f_jpg,fl_lossy,g_auto,h… | |
| 45 | −| `amenities` | Commodités (JSON) | 98 % | ["Furnished", "Internet access"] | | |
| 45 | +| `amenities` | Commodités (JSON) | 97 % | ["Furnished", "Internet access"] | | |
| 46 | 46 | | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "hot_water": true, "internet": true}, "appliances": {"fr… | |
| 47 | 47 | | `url` | URL de l'annonce source | 100 % | https://www.roomies.ca/rooms/1024705 | |
| 48 | 48 | |
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:46 — 277 trouvées, +2 / ~47 / -1 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:07 — 276 trouvées, +2 / ~1 / -4 | |
| 53 | 53 | - **Throttling** : 0.8 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** : 306 au total, **281 actives** | |
| 58 | +- **Annonces en BD** : 308 au total, **279 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-17 · **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)** : 40, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 41, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/roussin.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles Roussin — connecteur `roussin` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 36/36 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:46 — 36 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:07 — 36 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 | |
modified
docs/connecteurs/royal_lepage.md
+7 −7
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Royal LePage (location) — connecteur `royal_lepage` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 954/1138 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 949/1138 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Royal LePage (royallepage.ca) — LOCATIONS Québec Le portail rend ses résulta | ||
| 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 954 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 949 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,9 +33,9 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 33 | 33 | | `address` | Adresse civique | 100 % | 3117 1210 Rue Jeanne Mance | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Montréal | |
| 35 | 35 | | `sector` | Secteur / quartier | 64 % | Ville Marie | |
| 36 | −| `unit_type` | Type d'unité (3½, 4½…) | 90 % | 3½ | | |
| 36 | +| `unit_type` | Type d'unité (3½, 4½…) | 91 % | 3½ | | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 100 % | 1 850 $ | |
| 38 | −| `bedrooms` | Chambres | 90 % | 1 | | |
| 38 | +| `bedrooms` | Chambres | 91 % | 1 | | |
| 39 | 39 | | `bathrooms` | Salles de bain | 93 % | 1 | |
| 40 | 40 | | `area_sqft` | Superficie (pi²) | 59 % | 527 | |
| 41 | 41 | | `availability_date` | Date de disponibilité | 0 % | — | |
@@ -49,14 +49,14 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 945 trouvées, +4 / ~0 / -2 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 946 trouvées, +0 / ~2 / -5 | |
| 53 | 53 | - **Throttling** : 0.4 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 | - **Caps / budgets du module** : `MAX_PAGES` = 30 |
| 56 | 56 | |
| 57 | 57 | ## Volumétrie & complétude |
| 58 | 58 | |
| 59 | −- **Annonces en BD** : 1138 au total, **954 actives** | |
| 59 | +- **Annonces en BD** : 1138 au total, **949 actives** | |
| 60 | 60 | - **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22 |
| 61 | 61 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 95 % |
| 62 | 62 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/savouet.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Groupe Savouet — connecteur `savouet` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 15/17 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 15 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 15 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 | |
modified
docs/connecteurs/sdg.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # SDG Immobilier — connecteur `sdg` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 9/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 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 | |
modified
docs/connecteurs/sentinelle.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # La Sentinelle (Groupe Immobilier Brochu) — connecteur `sentinelle` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 9/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 9 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 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 | |
modified
docs/connecteurs/sgiq.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # SGIQ (Société de gestion immobilière du Québec) — connecteur `sgiq` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 147/147 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 147 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 147 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/shdm.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # SHDM — connecteur `shdm` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 1/23 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `l | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 1 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 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 | |
modified
docs/connecteurs/siagi.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # SIA Gestion Immobilière — connecteur `siagi` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — 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 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 6 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 6 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 | |
modified
docs/connecteurs/sibelanger.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Société immobilière Bélanger — connecteur `sibelanger` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 12/22 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 12 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 | |
modified
docs/connecteurs/sig.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Société d'investissement Gilbert (résidences étudiantes) — connecteur `sig` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 4 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 | |
modified
docs/connecteurs/simard.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Immeubles Simard — connecteur `simard` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 5/5 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 5 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 5 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 | |
modified
docs/connecteurs/simplex.md
+3 −3
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Simplex Immobilier — connecteur `simplex` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 3/3 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 3 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 3 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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,7 +58,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 58 | 58 | - **Annonces en BD** : 3 au total, **3 actives** |
| 59 | 59 | - **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 % |
| 61 | −- **Runs journalisés (60 derniers)** : 36, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 37, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
modified
docs/connecteurs/somex_saintnicolas.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Somex Saint-Nicolas — connecteur `somex_saintnicolas` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 145/145 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 145 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 145 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/souleymane.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Souleymane — connecteur `souleymane` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 13/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 13 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 13 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 1.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 | |
modified
docs/connecteurs/stb_immobilier.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # STB Immobilier — connecteur `stb_immobilier` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 11/11 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 11 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 11 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 | |
modified
docs/connecteurs/summum.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion immobilière Summum — connecteur `summum` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 89/97 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:48 — 89 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:09 — 89 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 | |
modified
docs/connecteurs/sutton.md
+5 −5
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Groupe Sutton Québec (location) — connecteur `sutton` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 1200/1490 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 1205/1493 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Groupe Sutton Québec (suttonquebec.com) — LOCATIONS Couverture exhaustive via | ||
| 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 1200 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 1205 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 | |---|---|---|---| |
@@ -49,14 +49,14 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 1200 trouvées, +0 / ~16 / -1 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 1199 trouvées, +3 / ~17 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | - **Caps / budgets du module** : `SITEMAP_MAX_PAGES` = 40 |
| 56 | 56 | |
| 57 | 57 | ## Volumétrie & complétude |
| 58 | 58 | |
| 59 | −- **Annonces en BD** : 1490 au total, **1200 actives** | |
| 59 | +- **Annonces en BD** : 1493 au total, **1205 actives** | |
| 60 | 60 | - **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22 |
| 61 | 61 | - **Complétude clé (actives)** : GPS 99 % · prix 100 % · photos 100 % · description 98 % |
| 62 | 62 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/terater.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Les Constructions Tèratèr — connecteur `terater` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 12/14 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 12 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 12 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 | |
modified
docs/connecteurs/terra.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Terra Condos locatifs — connecteur `terra` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 28/51 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 28 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 28 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 | |
modified
docs/connecteurs/thrace.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestions Thrace — connecteur `thrace` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 162/182 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 162 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 162 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.8 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 | |
modified
docs/connecteurs/tri_logis.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Société immobilière Tri-Logis — connecteur `tri_logis` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 0/1 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 0 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 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 | |
modified
docs/connecteurs/trudel.md
+1 −1
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Trudel (Fleur de Lys, LGC) — connecteur `trudel` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : désactivé (disabled=True)** · Région : Québec · Backend : direct · Annonces actives : 0/30 |
| 6 | 6 | |
modified
docs/connecteurs/trylon.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Trylon Apartments — connecteur `trylon` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 7/7 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 7 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 7 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 | |
modified
docs/connecteurs/ubee.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Ubee (location) — connecteur `ubee` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Province · Backend : direct · Annonces actives : 243/249 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:49 — 243 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:10 — 243 trouvées, +0 / ~0 / -0 | |
| 53 | 53 | - **Throttling** : 0.5 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 | |
modified
docs/connecteurs/uptimo.md
+6 −6
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Uptimo Gestion immobilière — connecteur `uptimo` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 62/78 | |
| 5 | +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 60/78 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,14 +25,14 @@ connecteur Uptimo Gestion immobilière (uptimo.ca) Apparts à Sherbrooke (Fleuri | ||
| 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 62 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 60 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 | 32 | | `title` | Titre de l'annonce | 100 % | 1690 Rue de Courville | |
| 33 | 33 | | `address` | Adresse civique | 98 % | 1690 Rue de Courville | |
| 34 | 34 | | `city` | Ville (normalisée) | 100 % | Sherbrooke | |
| 35 | −| `sector` | Secteur / quartier | 94 % | Mont-Bellevue | | |
| 35 | +| `sector` | Secteur / quartier | 93 % | Mont-Bellevue | | |
| 36 | 36 | | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ | |
| 37 | 37 | | `price` | Loyer mensuel ($) | 98 % | 1 050 $ | |
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 2 | |
@@ -49,13 +49,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 49 trouvées, +0 / ~0 / -7 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 42 trouvées, +0 / ~0 / -8 | |
| 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** : 78 au total, **62 actives** | |
| 58 | +- **Annonces en BD** : 78 au total, **60 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 98 % · prix 98 % · photos 100 % · description 100 % |
| 61 | 61 | - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur |
modified
docs/connecteurs/urban_services.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Urban Services (Urban Tenant Solutions) — connecteur `urban_services` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 44/56 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 44 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 44 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 | |
modified
docs/connecteurs/utile.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # UTILE (logement étudiant) — connecteur `utile` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 28/28 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 28 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 28 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 | |
modified
docs/connecteurs/via_capitale.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Via Capitale (location) — connecteur `via_capitale` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Province · Backend : Firecrawl · Annonces actives : 192/217 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de l | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 192 trouvées, +0 / ~0 / -1 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 192 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 | |
modified
docs/connecteurs/viridi.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Le Viridi — connecteur `viridi` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Québec · Backend : direct · Annonces actives : 16/17 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 16 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 16 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 | |
modified
docs/connecteurs/wandji.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Gestion Immobilière Wandji — connecteur `wandji` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 26/31 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 26 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 26 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 | - **Caps / budgets du module** : `MAX_IMAGES` = 20 |
modified
docs/connecteurs/werkliv.md
+2 −2
@@ -1,6 +1,6 @@ | ||
| 1 | 1 | # Werkliv — connecteur `werkliv` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | 5 | **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 4/4 |
| 6 | 6 | |
@@ -49,7 +49,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t | ||
| 49 | 49 | ## Fréquence & budget |
| 50 | 50 | |
| 51 | 51 | - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:50 — 4 trouvées, +0 / ~0 / -0 | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:11 — 4 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 | |
modified
docs/connecteurs/zumper.md
+8 −8
@@ -1,8 +1,8 @@ | ||
| 1 | 1 | # Zumper (Québec) — connecteur `zumper` |
| 2 | 2 | |
| 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._ | |
| 3 | +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 19:27 — ne pas éditer à la main, régénérer._ | |
| 4 | 4 | |
| 5 | −**État : actif** · Région : Province · Backend : direct · Annonces actives : 4837/5095 | |
| 5 | +**État : actif** · Région : Province · Backend : direct · Annonces actives : 4811/5095 | |
| 6 | 6 | |
| 7 | 7 | ## Description de la source |
| 8 | 8 | |
@@ -25,7 +25,7 @@ Zumper (zumper.com) — portail locatif nord-américain, filtré PROVINCE DE QU | ||
| 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 4837 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 4811 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 | |---|---|---|---| |
@@ -38,7 +38,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab | ||
| 38 | 38 | | `bedrooms` | Chambres | 100 % | 0 | |
| 39 | 39 | | `bathrooms` | Salles de bain | 100 % | 1 | |
| 40 | 40 | | `area_sqft` | Superficie (pi²) | 75 % | 391 | |
| 41 | −| `availability_date` | Date de disponibilité | 21 % | — | | |
| 41 | +| `availability_date` | Date de disponibilité | 20 % | — | | |
| 42 | 42 | | `lat` | GPS (lat/lng) | 100 % | 45.51020505957441 | |
| 43 | 43 | | `description` | Description | 99 % | 3 Months Free* *Limited time offer. E & OE conditions apply. Advertised price reflects a … | |
| 44 | 44 | | `images` | Photos (JSON) | 100 % | 8 photo(s) — https://img.zumpercdn.com/907672238/1280x960 | |
@@ -48,17 +48,17 @@ 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.8 h | |
| 52 | −- **Dernier passage OK** : 2026-08-22 15:54 — 4811 trouvées, +2 / ~5 / -0 | |
| 51 | +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.9 h | |
| 52 | +- **Dernier passage OK** : 2026-08-22 19:16 — 4809 trouvées, +0 / ~1 / -26 | |
| 53 | 53 | - **Throttling** : 1.2 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** : 5095 au total, **4837 actives** | |
| 58 | +- **Annonces en BD** : 5095 au total, **4811 actives** | |
| 59 | 59 | - **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22 |
| 60 | 60 | - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 99 % |
| 61 | −- **Runs journalisés (60 derniers)** : 39, dont 0 en erreur | |
| 61 | +- **Runs journalisés (60 derniers)** : 40, dont 0 en erreur | |
| 62 | 62 | |
| 63 | 63 | ## Erreurs connues & dépannage |
| 64 | 64 | |
added
louka/connectors/apartments_com.py
+303 −0
@@ -0,0 +1,303 @@ | ||
| 1 | +# ----------------------------------------------------------------------------- | |
| 2 | +# Lou-Ka — Agrégateur de logements à louer (province de Québec) | |
| 3 | +# Auteur : Simon-Pierre Boucher — contact@spboucher.ai | |
| 4 | +# connectors/apartments_com.py : Apartments.com (CoStar) — réseau US avec un | |
| 5 | +# vrai parc québécois (~500 propriétés / 8 400 unités via /qc/, surtout de | |
| 6 | +# grands gestionnaires). Le site est verrouillé par Akamai (403 en direct, | |
| 7 | +# via Scrapfly ET via Oxylabs — sondé 2026-08-18/22) : le scraping est | |
| 8 | +# délégué à l'ACTEUR APIFY MAISON gorgeous_thistle/ka-apartments-com | |
| 9 | +# (source : actors/ka-apartments-com de ce repo) qui passe par le Web | |
| 10 | +# Unlocker Bright Data — HTML server-rendered, pas de rendu JS. | |
| 11 | +# UNE annonce = UNE PROPRIÉTÉ (immeuble) : prix « à partir de » (minimum | |
| 12 | +# des plans d'unités), tous les plans dans details["plans"]. Les fiches | |
| 13 | +# détail sont lues en FRANÇAIS (/fr/) : description, GPS, commodités, | |
| 14 | +# galerie. Cache détail 30 j + CADENCE : l'inventaire CoStar bouge | |
| 15 | +# lentement, l'acteur ne tourne qu'aux LOUKA_APTS_INTERVAL_H heures ; | |
| 16 | +# entre deux runs on ré-émet les annonces actives depuis la BD (coût 0). | |
| 17 | +# ----------------------------------------------------------------------------- | |
| 18 | +from __future__ import annotations | |
| 19 | + | |
| 20 | +import json | |
| 21 | +import os | |
| 22 | +import re | |
| 23 | +import time | |
| 24 | + | |
| 25 | +import requests as _requests | |
| 26 | + | |
| 27 | +from ..schema import Listing | |
| 28 | +from .base import BaseConnector | |
| 29 | +from . import _detailutil as du | |
| 30 | + | |
| 31 | +APIFY_API = "https://api.apify.com/v2" | |
| 32 | +ACTOR = os.environ.get("LOUKA_APTS_ACTOR", "gorgeous_thistle~ka-apartments-com") | |
| 33 | + | |
| 34 | +SEARCH_URLS = ["https://www.apartments.com/qc/"] # toute la province | |
| 35 | +MAX_PAGES = int(os.environ.get("LOUKA_APTS_MAX_PAGES", "25")) | |
| 36 | +DETAIL_LIMIT = int(os.environ.get("LOUKA_APTS_DETAIL_LIMIT", "250")) | |
| 37 | +TTL_DAYS = float(os.environ.get("LOUKA_APTS_TTL_DAYS", "30")) | |
| 38 | +INTERVAL_H = float(os.environ.get("LOUKA_APTS_INTERVAL_H", "12")) | |
| 39 | +CONCURRENCY = int(os.environ.get("LOUKA_APTS_CONCURRENCY", "4")) | |
| 40 | +RUN_TIMEOUT = int(os.environ.get("LOUKA_APTS_RUN_TIMEOUT", "3600")) # s | |
| 41 | + | |
| 42 | +DETAIL_KEY = "v1" | |
| 43 | +PRICE_MIN, PRICE_MAX = 300, 12000 # garde-fous de loyer mensuel | |
| 44 | + | |
| 45 | +_MONEY_RX = re.compile(r"\$\s*([\d\s, ]+)") | |
| 46 | +_BEDS_LABEL_RX = re.compile(r"(\d+)\s*(?:bed|lit|c\.?\s*à\.?\s*c)", re.I) | |
| 47 | +_SQFT_RX = re.compile(r"([\d\s, ]+)\s*(?:pi²|sq\s*ft)", re.I) | |
| 48 | + | |
| 49 | + | |
| 50 | +def _money(text: str | None) -> float | None: | |
| 51 | + m = _MONEY_RX.search(text or "") | |
| 52 | + if not m: | |
| 53 | + return None | |
| 54 | + try: | |
| 55 | + return float(re.sub(r"[^\d]", "", m.group(1))) | |
| 56 | + except ValueError: | |
| 57 | + return None | |
| 58 | + | |
| 59 | + | |
| 60 | +def _beds_count(label: str) -> float | None: | |
| 61 | + low = (label or "").casefold() | |
| 62 | + if "studio" in low or "bachelor" in low: | |
| 63 | + return 0.0 | |
| 64 | + m = _BEDS_LABEL_RX.search(low) | |
| 65 | + return float(m.group(1)) if m else None | |
| 66 | + | |
| 67 | + | |
| 68 | +def _unit_type(beds: float | None) -> str: | |
| 69 | + if beds is None: | |
| 70 | + return "" | |
| 71 | + if beds <= 0: | |
| 72 | + return "Studio" | |
| 73 | + return "6½+" if beds >= 4 else f"{int(beds) + 2}½" | |
| 74 | + | |
| 75 | + | |
| 76 | +def _fmt_price(price: float) -> str: | |
| 77 | + return f"{price:,.0f} $/mois".replace(",", " ") | |
| 78 | + | |
| 79 | + | |
| 80 | +def _split_address(addr: str) -> tuple[str, str]: | |
| 81 | + """« 1411 St Du Fort, Montréal, QC H3H 2N7 » -> (rue, ville).""" | |
| 82 | + parts = [p.strip() for p in (addr or "").split(",") if p.strip()] | |
| 83 | + if len(parts) >= 3: | |
| 84 | + return ", ".join(parts[:-2]), parts[-2] | |
| 85 | + return addr or "", "" | |
| 86 | + | |
| 87 | + | |
| 88 | +class ApartmentsComConnector(BaseConnector): | |
| 89 | + source_id = "apartments_com" | |
| 90 | + request_delay = 1.0 | |
| 91 | + | |
| 92 | + # -- orchestration de l'acteur Apify -------------------------------------- | |
| 93 | + def _run_actor(self, payload: dict, token: str) -> list[dict]: | |
| 94 | + """Lance l'acteur, attend la fin, retourne les items du dataset.""" | |
| 95 | + r = _requests.post( | |
| 96 | + f"{APIFY_API}/acts/{ACTOR}/runs?waitForFinish=120", | |
| 97 | + json=payload, timeout=180, | |
| 98 | + headers={"Authorization": f"Bearer {token}"}) | |
| 99 | + r.raise_for_status() | |
| 100 | + run = r.json()["data"] | |
| 101 | + deadline = time.time() + RUN_TIMEOUT | |
| 102 | + while run["status"] in ("READY", "RUNNING") and time.time() < deadline: | |
| 103 | + time.sleep(10) | |
| 104 | + run = _requests.get( | |
| 105 | + f"{APIFY_API}/actor-runs/{run['id']}", timeout=60, | |
| 106 | + headers={"Authorization": f"Bearer {token}"}).json()["data"] | |
| 107 | + if run["status"] != "SUCCEEDED": | |
| 108 | + raise RuntimeError(f"acteur {ACTOR} : run {run['id']} " | |
| 109 | + f"terminé en {run['status']}") | |
| 110 | + items: list[dict] = [] | |
| 111 | + offset = 0 | |
| 112 | + while True: | |
| 113 | + batch = _requests.get( | |
| 114 | + f"{APIFY_API}/datasets/{run['defaultDatasetId']}/items" | |
| 115 | + f"?limit=1000&offset={offset}", timeout=120, | |
| 116 | + headers={"Authorization": f"Bearer {token}"}).json() | |
| 117 | + items.extend(batch) | |
| 118 | + if len(batch) < 1000: | |
| 119 | + return items | |
| 120 | + offset += 1000 | |
| 121 | + | |
| 122 | + # -- cadence / ré-émission ------------------------------------------------- | |
| 123 | + def _last_ok_sync(self, cache: du.TtlDetailCache) -> float: | |
| 124 | + row = cache.con.execute( | |
| 125 | + "SELECT MAX(ts) AS t FROM sync_log WHERE source=? AND ok=1" | |
| 126 | + " AND found > 0", (self.source_id,)).fetchone() | |
| 127 | + return row["t"] or 0.0 | |
| 128 | + | |
| 129 | + def _active_rows(self, cache: du.TtlDetailCache) -> list: | |
| 130 | + return cache.con.execute( | |
| 131 | + "SELECT external_id, url, title, address, sector, city, unit_type," | |
| 132 | + " bedrooms, bathrooms, price, price_label, availability," | |
| 133 | + " availability_date, area_sqft, pets, furnished, description," | |
| 134 | + " amenities, details, images, lat, lng" | |
| 135 | + " FROM listings WHERE source=? AND active=1", (self.source_id,) | |
| 136 | + ).fetchall() | |
| 137 | + | |
| 138 | + def _listing_from_row(self, r) -> Listing: | |
| 139 | + def js(s, default): | |
| 140 | + try: | |
| 141 | + return json.loads(s) if s else default | |
| 142 | + except ValueError: | |
| 143 | + return default | |
| 144 | + return Listing( | |
| 145 | + source=self.source_id, external_id=r["external_id"], | |
| 146 | + url=r["url"], title=r["title"] or "", address=r["address"] or "", | |
| 147 | + sector=r["sector"] or "", city=r["city"] or "", | |
| 148 | + unit_type=r["unit_type"] or "", bedrooms=r["bedrooms"], | |
| 149 | + bathrooms=r["bathrooms"], price=r["price"], | |
| 150 | + price_label=r["price_label"] or "", | |
| 151 | + availability=r["availability"] or "", | |
| 152 | + availability_date=r["availability_date"], | |
| 153 | + area_sqft=r["area_sqft"], pets=r["pets"], | |
| 154 | + furnished=(None if r["furnished"] is None else bool(r["furnished"])), | |
| 155 | + description=r["description"] or "", | |
| 156 | + amenities=js(r["amenities"], []), details=js(r["details"], {}), | |
| 157 | + images=js(r["images"], []), lat=r["lat"], lng=r["lng"], | |
| 158 | + ) | |
| 159 | + | |
| 160 | + # -- payload détail -> champs Listing --------------------------------------- | |
| 161 | + @staticmethod | |
| 162 | + def _std_detail(d: dict) -> dict: | |
| 163 | + std = {k: d[k] for k in ("description", "images", "lat", "lng", | |
| 164 | + "amenities") if d.get(k)} | |
| 165 | + if d.get("street"): | |
| 166 | + std["address"] = d["street"] | |
| 167 | + if d.get("city"): | |
| 168 | + std["city"] = d["city"] | |
| 169 | + plans, seen = [], set() | |
| 170 | + for pl in d.get("plans") or []: # grille dupliquée desktop/mobile | |
| 171 | + sig = (pl.get("key"), pl.get("name"), pl.get("rent")) | |
| 172 | + if sig not in seen: | |
| 173 | + seen.add(sig) | |
| 174 | + plans.append(pl) | |
| 175 | + rents = [p for p in (_money(pl.get("rent")) for pl in plans) | |
| 176 | + if p is not None and PRICE_MIN <= p <= PRICE_MAX] | |
| 177 | + if rents: | |
| 178 | + std["price"] = min(rents) | |
| 179 | + std["price_label"] = (f"à partir de {_fmt_price(min(rents))}" | |
| 180 | + if len(plans) > 1 else _fmt_price(min(rents))) | |
| 181 | + # immeuble multi-plans : minimum, cohérent avec le prix « à partir | |
| 182 | + # de » — et ça évite que finalize() devine n'importe quoi dans la | |
| 183 | + # description marketing (« appartements de 1 à 4 chambres ») | |
| 184 | + beds = {pl.get("beds") for pl in plans if pl.get("beds") is not None} | |
| 185 | + baths = {pl.get("baths") for pl in plans if pl.get("baths") is not None} | |
| 186 | + if beds: | |
| 187 | + std["bedrooms"] = min(beds) | |
| 188 | + if len(beds) == 1: | |
| 189 | + std["unit_type"] = _unit_type(std["bedrooms"]) | |
| 190 | + if baths: | |
| 191 | + std["bathrooms"] = min(baths) | |
| 192 | + if len(plans) == 1: | |
| 193 | + m = _SQFT_RX.search(" ".join(plans[0].get("details") or [])) | |
| 194 | + if m: | |
| 195 | + try: | |
| 196 | + std["area_sqft"] = float(re.sub(r"[^\d]", "", m.group(1))) | |
| 197 | + except ValueError: | |
| 198 | + pass | |
| 199 | + avails = [pl.get("availability") or "" for pl in plans] | |
| 200 | + now = next((a for a in avails | |
| 201 | + if "maintenant" in a.casefold() or "now" in a.casefold()), | |
| 202 | + "") | |
| 203 | + if now or any(avails): | |
| 204 | + std["availability"] = now or next(a for a in avails if a) | |
| 205 | + if plans: | |
| 206 | + std["details"] = {"plans": [ | |
| 207 | + {k: pl[k] for k in ("name", "rent", "beds", "baths", | |
| 208 | + "details", "availability") if k in pl} | |
| 209 | + for pl in plans]} | |
| 210 | + return std | |
| 211 | + | |
| 212 | + # -- pipeline principal ------------------------------------------------------ | |
| 213 | + def fetch(self) -> list[Listing]: | |
| 214 | + token = os.environ.get("APIFY_TOKEN") | |
| 215 | + bd_token = os.environ.get("BRIGHTDATA_API_KEY") | |
| 216 | + if not token: | |
| 217 | + raise RuntimeError("APIFY_TOKEN manquant (voir .env)") | |
| 218 | + if not bd_token: | |
| 219 | + raise RuntimeError("BRIGHTDATA_API_KEY manquant (voir .env)") | |
| 220 | + | |
| 221 | + cache = du.TtlDetailCache(self, budget=0, ttl_days=TTL_DAYS, | |
| 222 | + key=DETAIL_KEY, fetch_html=lambda _u: "") | |
| 223 | + try: | |
| 224 | + # inventaire lent + acteur payant : entre deux vrais runs on | |
| 225 | + # ré-émet les actives telles quelles (aucune requête réseau) | |
| 226 | + age_h = (time.time() - self._last_ok_sync(cache)) / 3600 | |
| 227 | + actives = self._active_rows(cache) | |
| 228 | + if actives and age_h < INTERVAL_H: | |
| 229 | + return [self._listing_from_row(r) for r in actives] | |
| 230 | + | |
| 231 | + fresh = {r["external_id"] for r in cache.con.execute( | |
| 232 | + "SELECT external_id FROM detail_cache" | |
| 233 | + " WHERE source=? AND key=? AND fetched_at > ?", | |
| 234 | + (self.source_id, DETAIL_KEY, | |
| 235 | + time.time() - TTL_DAYS * 86400)).fetchall()} | |
| 236 | + # rattrapage : actives jamais enrichies (sans GPS ou description) | |
| 237 | + extra = [f'{r["external_id"]}|{r["url"]}' for r in actives | |
| 238 | + if r["external_id"] not in fresh | |
| 239 | + and (r["lat"] is None or not (r["description"] or "").strip())] | |
| 240 | + | |
| 241 | + items = self._run_actor({ | |
| 242 | + "searchUrls": SEARCH_URLS, | |
| 243 | + "maxPages": MAX_PAGES, | |
| 244 | + "getDetails": True, | |
| 245 | + "maxDetails": DETAIL_LIMIT, | |
| 246 | + "skipDetailIds": sorted(fresh), | |
| 247 | + "extraDetailIds": extra[:DETAIL_LIMIT], | |
| 248 | + "brightdataToken": bd_token, | |
| 249 | + "brightdataZone": os.environ.get("BRIGHTDATA_ZONE", | |
| 250 | + "web_unlocker1"), | |
| 251 | + "concurrency": CONCURRENCY, | |
| 252 | + }, token) | |
| 253 | + | |
| 254 | + for it in items: | |
| 255 | + if it.get("kind") == "detail" and it.get("id"): | |
| 256 | + payload = {k: v for k, v in it.items() | |
| 257 | + if k not in ("kind",) and v is not None} | |
| 258 | + cache.put(str(it["id"]), payload) | |
| 259 | + | |
| 260 | + out: dict[str, Listing] = {} | |
| 261 | + for it in items: | |
| 262 | + if it.get("kind") != "listing": | |
| 263 | + continue | |
| 264 | + pid = str(it["id"]) | |
| 265 | + street, city = _split_address(it.get("address") or "") | |
| 266 | + rents = [(r.get("beds") or "", _money(r.get("price"))) | |
| 267 | + for r in it.get("rents") or []] | |
| 268 | + prices = [p for _b, p in rents | |
| 269 | + if p is not None and PRICE_MIN <= p <= PRICE_MAX] | |
| 270 | + from_price = any("+" in (r.get("price") or "") | |
| 271 | + for r in it.get("rents") or []) | |
| 272 | + beds = {b for b in (_beds_count(lbl) for lbl, _p in rents) | |
| 273 | + if b is not None} | |
| 274 | + lst = Listing( | |
| 275 | + source=self.source_id, | |
| 276 | + external_id=pid, | |
| 277 | + url=(it.get("url") or "").replace( | |
| 278 | + "www.apartments.com/", "www.apartments.com/fr/", 1), | |
| 279 | + title=(it.get("title") or street)[:200], | |
| 280 | + address=street, | |
| 281 | + city=city, | |
| 282 | + price=min(prices) if prices else None, | |
| 283 | + price_label=((f"à partir de {_fmt_price(min(prices))}" | |
| 284 | + if from_price or len(prices) > 1 | |
| 285 | + else _fmt_price(min(prices))) | |
| 286 | + if prices else ""), | |
| 287 | + unit_type=_unit_type(beds.pop() if len(beds) == 1 | |
| 288 | + else None), | |
| 289 | + amenities=it.get("amenities") or [], | |
| 290 | + images=[it["image"]] if it.get("image") else [], | |
| 291 | + ) | |
| 292 | + detail, _f = cache.peek(pid) | |
| 293 | + if detail: | |
| 294 | + du.apply_detail(lst, self._std_detail(detail)) | |
| 295 | + if detail.get("name"): | |
| 296 | + lst.title = detail["name"][:200] | |
| 297 | + if lst.price is None or not (PRICE_MIN <= lst.price | |
| 298 | + <= PRICE_MAX): | |
| 299 | + continue # « Call for Rent » : pas affichable | |
| 300 | + out[pid] = lst | |
| 301 | + return list(out.values()) | |
| 302 | + finally: | |
| 303 | + cache.close() | |
modified
louka/connectors/fb_marketplace.py
+75 −13
@@ -124,6 +124,54 @@ def _non_qc(payload: dict) -> bool: | ||
| 124 | 124 | return False |
| 125 | 125 | |
| 126 | 126 | |
| 127 | +# version des payloads détail : bump quand parse_detail (acteur) apprend de | |
| 128 | +# nouveaux champs, pour re-visiter progressivement les fiches déjà en cache | |
| 129 | +PAYLOAD_VERSION = 3 | |
| 130 | + | |
| 131 | +_TYPE_LABELS = {"apartment", "house", "townhouse", "condo", "room", "flat", | |
| 132 | + "appartement", "maison", "maison de ville", "chambre", "loft"} | |
| 133 | +_BEDS_RX = re.compile(r"(\d+(?:[.,]\d+)?)\s*(?:beds?\b|chambres?\b|lits?\b)", | |
| 134 | + re.I) | |
| 135 | +_BATHS_RX = re.compile(r"(\d+(?:[.,]\d+)?)\s*(?:baths?\b|salles?\b)", re.I) | |
| 136 | + | |
| 137 | + | |
| 138 | +def _std_detail(d: dict) -> dict: | |
| 139 | + """Payload acteur -> dict pour du.apply_detail (labels PDP en/fr).""" | |
| 140 | + std = {k: d[k] for k in ("description", "images", "lat", "lng", | |
| 141 | + "city", "address") if d.get(k)} | |
| 142 | + amen: list[str] = [] | |
| 143 | + for lbl in d.get("unit_fields") or []: | |
| 144 | + mb = _BEDS_RX.search(lbl) | |
| 145 | + if mb: # « 2 beds · 1 bath » | |
| 146 | + std["bedrooms"] = float(mb.group(1).replace(",", ".")) | |
| 147 | + ms = _BATHS_RX.search(lbl) | |
| 148 | + if ms: | |
| 149 | + std["bathrooms"] = float(ms.group(1).replace(",", ".")) | |
| 150 | + continue | |
| 151 | + low = lbl.casefold() | |
| 152 | + if low in _TYPE_LABELS: | |
| 153 | + continue # type générique : _unit_type (titre/desc) fait mieux | |
| 154 | + if "furnish" in low or "meublé" in low: | |
| 155 | + std["furnished"] = not ("unfurnish" in low or "non meublé" in low) | |
| 156 | + if "pet" in low or "animaux" in low: | |
| 157 | + std["pets"] = ("non" if "no pet" in low or "pas d" in low | |
| 158 | + else "oui") | |
| 159 | + amen.append(lbl) | |
| 160 | + if amen: | |
| 161 | + std["amenities"] = amen | |
| 162 | + for part in (d.get("listed_text") or "").split("·"): | |
| 163 | + p = part.strip() | |
| 164 | + if p.casefold().startswith(("available", "disponible")): | |
| 165 | + std["availability"] = p | |
| 166 | + extras = {k: d[k] for k in ("walk_score", "transit_score", "bike_score") | |
| 167 | + if d.get(k) is not None} | |
| 168 | + if d.get("virtual_tour_url"): | |
| 169 | + extras["virtual_tour"] = d["virtual_tour_url"] | |
| 170 | + if extras: | |
| 171 | + std["details"] = extras | |
| 172 | + return std | |
| 173 | + | |
| 174 | + | |
| 127 | 175 | class FacebookMarketplaceConnector(BaseConnector): |
| 128 | 176 | source_id = "fb_marketplace" |
| 129 | 177 | request_delay = 1.0 |
@@ -189,9 +237,12 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 189 | 237 | l'acteur ne les revisitera pas.""" |
| 190 | 238 | rows = cache.con.execute( |
| 191 | 239 | "SELECT external_id FROM detail_cache" |
| 192 | − " WHERE source=? AND key=? AND fetched_at > ?", | |
| 240 | + " WHERE source=? AND key=? AND fetched_at > ?" | |
| 241 | + " AND (json_extract(payload,'$.pv') >= ?" | |
| 242 | + " OR json_extract(payload,'$.nopdp') IS NOT NULL" | |
| 243 | + " OR json_extract(payload,'$.gone') IS NOT NULL)", | |
| 193 | 244 | (self.source_id, DETAIL_KEY, |
| 194 | − time.time() - TTL_DAYS * 86400)).fetchall() | |
| 245 | + time.time() - TTL_DAYS * 86400, PAYLOAD_VERSION)).fetchall() | |
| 195 | 246 | return [r["external_id"] for r in rows] |
| 196 | 247 | |
| 197 | 248 | def _poor_active_rows(self, cache: du.TtlDetailCache) -> list: |
@@ -210,7 +261,9 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 210 | 261 | except ValueError: |
| 211 | 262 | n_img = 0 |
| 212 | 263 | return (not (r["description"] or "").strip() |
| 213 | − or r["lat"] is None or n_img <= 1) | |
| 264 | + or r["lat"] is None or n_img <= 1 | |
| 265 | + or not (r["address"] or "").strip() | |
| 266 | + or r["bedrooms"] is None) | |
| 214 | 267 | return [r for r in rows if poor(r)] |
| 215 | 268 | |
| 216 | 269 | def _listing_from_row(self, r) -> Listing: |
@@ -241,19 +294,23 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 241 | 294 | """Rattrapage : ré-émet les fiches actives pauvres dont le cache |
| 242 | 295 | (rempli par l'acteur via extraDetailIds) apporte du neuf. Les |
| 243 | 296 | annonces mortes suivent le cycle normal miss_count → retrait.""" |
| 244 | − def adds(r, d: dict) -> bool: | |
| 245 | − if d.get("description") and len(d["description"]) > \ | |
| 297 | + def adds(r, s: dict) -> bool: | |
| 298 | + if s.get("description") and len(s["description"]) > \ | |
| 246 | 299 | len(r["description"] or ""): |
| 247 | 300 | return True |
| 248 | − if d.get("lat") is not None and r["lat"] is None: | |
| 301 | + if s.get("lat") is not None and r["lat"] is None: | |
| 249 | 302 | return True |
| 250 | 303 | try: |
| 251 | 304 | n_img = len(json.loads(r["images"] or "[]")) |
| 252 | 305 | except ValueError: |
| 253 | 306 | n_img = 0 |
| 254 | − if len(d.get("images") or []) > n_img: | |
| 307 | + if len(s.get("images") or []) > n_img: | |
| 308 | + return True | |
| 309 | + if s.get("address") and not (r["address"] or "").strip(): | |
| 310 | + return True | |
| 311 | + if s.get("bedrooms") is not None and r["bedrooms"] is None: | |
| 255 | 312 | return True |
| 256 | − return bool(d.get("city")) and not (r["city"] or "") | |
| 313 | + return bool(s.get("city")) and not (r["city"] or "") | |
| 257 | 314 | |
| 258 | 315 | out: list[Listing] = [] |
| 259 | 316 | for r in poor_rows: |
@@ -262,12 +319,11 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 262 | 319 | d, _fresh = cache.peek(r["external_id"]) |
| 263 | 320 | if not _usable(d) or d.get("gone") or _non_qc(d): |
| 264 | 321 | continue # morte / hors QC / rien de neuf |
| 265 | − if not adds(r, d): | |
| 322 | + std = _std_detail(d) | |
| 323 | + if not adds(r, std): | |
| 266 | 324 | continue # rien à apporter : laisser vivre son cycle |
| 267 | 325 | lst = self._listing_from_row(r) |
| 268 | − du.apply_detail(lst, {k: v for k, v in d.items() | |
| 269 | − if k in ("description", "images", | |
| 270 | − "lat", "lng")}) | |
| 326 | + du.apply_detail(lst, std) | |
| 271 | 327 | if d.get("city"): # reverse geocode FB : autoritaire |
| 272 | 328 | lst.city = d["city"] |
| 273 | 329 | if not lst.unit_type: |
@@ -319,6 +375,8 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 319 | 375 | continue # échec réseau acteur : pas de cache |
| 320 | 376 | payload = {k: v for k, v in it.items() |
| 321 | 377 | if k not in ("kind", "id", "ok") and v is not None} |
| 378 | + if payload and not payload.get("nopdp"): | |
| 379 | + payload["pv"] = PAYLOAD_VERSION | |
| 322 | 380 | cache.put(str(it["id"]), payload or {"nopdp": True}) |
| 323 | 381 | |
| 324 | 382 | out: dict[str, Listing] = {} |
@@ -345,7 +403,7 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 345 | 403 | images = detail.get("images") or ([photo] if photo else []) |
| 346 | 404 | city = (detail.get("city") or it.get("city") |
| 347 | 405 | or city_by_url.get(it.get("source_url") or "", "")) |
| 348 | − out[lid] = Listing( | |
| 406 | + lst = Listing( | |
| 349 | 407 | source=self.source_id, |
| 350 | 408 | external_id=lid, |
| 351 | 409 | url=f"{BASE}/item/{lid}/", |
@@ -359,6 +417,10 @@ class FacebookMarketplaceConnector(BaseConnector): | ||
| 359 | 417 | lat=detail.get("lat"), |
| 360 | 418 | lng=detail.get("lng"), |
| 361 | 419 | ) |
| 420 | + # champs structurés du PDP : adresse, chambres/sdb, commodités, | |
| 421 | + # disponibilité, scores de marche/transport | |
| 422 | + du.apply_detail(lst, _std_detail(detail)) | |
| 423 | + out[lid] = lst | |
| 362 | 424 | |
| 363 | 425 | listings = list(out.values()) |
| 364 | 426 | # rattrapage des fiches actives pauvres sorties de la recherche |
| 365 | 427 | |