SPB Git forge

spb/lou-ka

Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

232commits 1branches 0releases
172.9 MBsize
maindefault branch
2 days agolast push
HTML 98.9% Python 0.6%

fb_marketplace : acteur Apify maison ka-fb-marketplace (33 villes, tout le Québec)

Remplace la chaîne Scrapfly par un acteur Apify maison (curl_cffi sans rendu
JS, proxy Oxylabs résidentiel CA via proxyUrlTemplate) : recherche 116 URLs
(10 grandes villes × 7 tranches de prix + 23 régions par ID Marketplace),
fiches détail (GPS, description, statut) et galerie complète via le
MediaViewer préchargé. Filtre hors-Québec à deux niveaux : state du
reverse_geocode dès la recherche + filet bbox GPS côté connecteur (FB glisse
des suggestions d'autres provinces dans le flux public). Coût ~100× moindre.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Simon-Pierre Boucher committed 1 mo ago (Aug 22, 2026) parent cebcc31

227 changed files +2,615 −2,173

added actors/ka-fb-marketplace/.actor/Dockerfile +10 −0
@@ -0,0 +1,10 @@
1 +# ==============================================================================
2 +# Author: Simon-Pierre Boucher <contact@spboucher.ai>
3 +# File: Dockerfile (ka-fb-marketplace)
4 +# Desc: Acteur Apify KA — Dockerfile
5 +# ==============================================================================
6 +FROM apify/actor-python:3.12
7 +COPY requirements.txt ./
8 +RUN pip install --no-cache-dir -r requirements.txt
9 +COPY . ./
10 +CMD ["python3", "-m", "src"]
added actors/ka-fb-marketplace/.actor/actor.json +10 −0
@@ -0,0 +1,10 @@
1 +{
2 + "actorSpecification": 1,
3 + "name": "ka-fb-marketplace",
4 + "title": "KA Facebook Marketplace — locations QC",
5 + "description": "Logements à louer (propertyrentals) sur Facebook Marketplace, Québec. Scraping public déconnecté sans rendu JS : recherche + fiches détail (GPS, description, statut, galerie via MediaViewer préchargé) depuis le JSON du HTML brut. Proxy résidentiel CA obligatoire.",
6 + "version": "0.1",
7 + "buildTag": "latest",
8 + "input": "./input_schema.json",
9 + "dockerfile": "./Dockerfile"
10 +}
added actors/ka-fb-marketplace/.actor/input_schema.json +74 −0
@@ -0,0 +1,74 @@
1 +{
2 + "title": "KA Facebook Marketplace input",
3 + "type": "object",
4 + "schemaVersion": 1,
5 + "properties": {
6 + "searchUrls": {
7 + "title": "URLs de recherche",
8 + "type": "array",
9 + "editor": "stringList",
10 + "description": "URLs de recherche Marketplace (ville × tranche de prix). Vide = couverture Québec par défaut (33 villes intégrées).",
11 + "prefill": []
12 + },
13 + "getDetails": {
14 + "title": "Visiter les fiches détail",
15 + "type": "boolean",
16 + "default": true,
17 + "description": "Visite /marketplace/item/<id> pour GPS, ville, description, statut et galerie complète."
18 + },
19 + "maxDetails": {
20 + "title": "Budget fiches détail",
21 + "type": "integer",
22 + "default": 200,
23 + "minimum": 0,
24 + "description": "Nombre maximal de fiches détail visitées par run."
25 + },
26 + "skipDetailIds": {
27 + "title": "IDs à NE PAS détailler",
28 + "type": "array",
29 + "editor": "stringList",
30 + "description": "IDs d'annonces dont la fiche détail est déjà connue de l'appelant (cache) : la recherche les liste quand même, mais aucune requête détail.",
31 + "prefill": []
32 + },
33 + "extraDetailIds": {
34 + "title": "IDs détail additionnels (rattrapage)",
35 + "type": "array",
36 + "editor": "stringList",
37 + "description": "Fiches à visiter MÊME si absentes des résultats de recherche (rattrapage d'annonces actives pauvres).",
38 + "prefill": []
39 + },
40 + "requestDelay": {
41 + "title": "Délai entre requêtes (s)",
42 + "type": "integer",
43 + "default": 1,
44 + "minimum": 0,
45 + "description": "Pause minimale entre deux requêtes sortantes, en secondes."
46 + },
47 + "concurrency": {
48 + "title": "Requêtes simultanées",
49 + "type": "integer",
50 + "default": 8,
51 + "minimum": 1,
52 + "maximum": 16,
53 + "description": "Nombre de requêtes menées en parallèle."
54 + },
55 + "proxyUrlTemplate": {
56 + "title": "Proxy externe (gabarit d'URL)",
57 + "type": "string",
58 + "editor": "textfield",
59 + "isSecret": true,
60 + "description": "Optionnel : URL de proxy externe avec placeholder {session} (ex. Oxylabs résidentiel http://user-cc-CA-sessid-{session}:pass@pr.oxylabs.io:7777). Si présent, remplace le proxy Apify — utile pour consommer un abonnement résidentiel existant."
61 + },
62 + "proxyConfiguration": {
63 + "title": "Proxy Apify",
64 + "type": "object",
65 + "editor": "proxy",
66 + "description": "Résidentiel obligatoire (Facebook rejette les IP datacenter). Ignoré si un gabarit de proxy externe est fourni.",
67 + "prefill": {
68 + "useApifyProxy": true,
69 + "apifyProxyGroups": ["RESIDENTIAL"],
70 + "apifyProxyCountry": "CA"
71 + }
72 + }
73 + }
74 +}
added actors/ka-fb-marketplace/requirements.txt +7 −0
@@ -0,0 +1,7 @@
1 +# ==============================================================================
2 +# Author: Simon-Pierre Boucher <contact@spboucher.ai>
3 +# File: requirements.txt (ka-fb-marketplace)
4 +# Desc: Acteur Apify KA — requirements.txt
5 +# ==============================================================================
6 +apify
7 +curl_cffi>=0.9
added actors/ka-fb-marketplace/src/__main__.py +10 −0
@@ -0,0 +1,10 @@
1 +# ==============================================================================
2 +# Author: Simon-Pierre Boucher <contact@spboucher.ai>
3 +# File: src/__main__.py (ka-fb-marketplace)
4 +# Desc: Point d'entrée de l'acteur (asyncio.run).
5 +# ==============================================================================
6 +import asyncio
7 +
8 +from .main import main
9 +
10 +asyncio.run(main())
added actors/ka-fb-marketplace/src/main.py +325 −0
@@ -0,0 +1,325 @@
1 +# ==============================================================================
2 +# Author: Simon-Pierre Boucher <contact@spboucher.ai>
3 +# File: src/main.py (ka-fb-marketplace)
4 +# Desc: Facebook Marketplace — logements à louer (propertyrentals), Québec.
5 +# Scraping public DÉCONNECTÉ, AUCUN rendu JS : les données vivent dans
6 +# les <script type="application/json"> du HTML brut.
7 +# - Recherche : objets marketplace_listing_title (~25/URL, on multiplie
8 +# les URLs ville × tranche de prix pour élargir).
9 +# - Fiche /marketplace/item/<id> : le target GraphQL préchargé
10 +# (marketplace_product_details_page) expose GPS, ville
11 +# (reverse_geocode_detailed), description, statut is_live/is_sold ;
12 +# la GALERIE complète vient du target MediaViewer préchargé
13 +# (listing_photos du même id) — validé live, aucun rendu requis.
14 +# Sortie dataset : {kind:"listing"} (recherche) et {kind:"detail"}.
15 +# ⚠️ Données personnelles (Loi 25) : ne jamais republier nom/téléphone
16 +# du vendeur ; le champ seller n'est PAS extrait.
17 +# ==============================================================================
18 +from __future__ import annotations
19 +
20 +import asyncio
21 +import html as _html
22 +import json
23 +import re
24 +
25 +from apify import Actor
26 +
27 +from .net import Fetcher
28 +
29 +BASE = "https://www.facebook.com/marketplace"
30 +
31 +# Couverture Québec par défaut (mode autonome, sans searchUrls) :
32 +# slug vanity OU id numérique Marketplace (validés live 2026-08-22 — les slugs
33 +# inventés retombent sur des villes aléatoires, seuls ceux-ci sont sûrs).
34 +# Chaque recherche couvre un rayon d'environ 65 km.
35 +BIG_CITIES = { # gros parcs : tranches de prix fines (flux ~25 annonces/URL)
36 + "montreal": "Montréal", "laval": "Laval", "longueuil": "Longueuil",
37 + "quebec": "Québec", "gatineau": "Gatineau", "sherbrooke": "Sherbrooke",
38 + "trois-rivieres": "Trois-Rivières", "levis": "Lévis",
39 + "saguenay": "Saguenay", "drummondville": "Drummondville",
40 +}
41 +REGIONAL_CITIES = { # couverture régions : ids numériques (Serper + validation)
42 + "105790762794728": "Rimouski", "110925022261358": "Rivière-du-Loup",
43 + "106528256049537": "Matane", "109502305742889": "Gaspé",
44 + "100246746683723": "Sept-Îles", "105615529471535": "Baie-Comeau",
45 + "106016152771864": "Rouyn-Noranda", "110594102301488": "Val-d'Or",
46 + "105598479473872": "Amos", "109699385723610": "Saint-Georges",
47 + "110304502331480": "Thetford Mines", "111938355489908": "Granby",
48 + "108126699220609": "Victoriaville", "109753249050671": "Joliette",
49 + "109429165750459": "Saint-Hyacinthe",
50 + "108645709159963": "Saint-Jean-sur-Richelieu",
51 + "112946182053396": "Saint-Jérôme", "113011352052118": "Salaberry-de-Valleyfield",
52 + "107992819229760": "Magog", "109514615734434": "Alma",
53 + "109664672393669": "Mont-Laurier", "108557812502323": "La Tuque",
54 + "108296932538245": "Dolbeau-Mistassini",
55 +}
56 +PRICE_BANDS = [(0, 800), (800, 1100), (1100, 1400), (1400, 1700),
57 + (1700, 2100), (2100, 2800), (2800, 6000)]
58 +REGIONAL_BANDS = [(0, 1200), (1200, 6000)] # parcs plus petits : 2 tranches
59 +
60 +_SCRIPT_RE = re.compile(
61 + r'<script type="application/json"[^>]*>(.*?)</script>', re.S)
62 +
63 +
64 +def default_search_urls() -> list[str]:
65 + urls = []
66 + for slug in BIG_CITIES:
67 + for lo, hi in PRICE_BANDS:
68 + urls.append(f"{BASE}/{slug}/propertyrentals"
69 + f"?minPrice={lo}&maxPrice={hi}"
70 + f"&sortBy=creation_time_descend")
71 + for cid in REGIONAL_CITIES:
72 + for lo, hi in REGIONAL_BANDS:
73 + urls.append(f"{BASE}/{cid}/propertyrentals"
74 + f"?minPrice={lo}&maxPrice={hi}"
75 + f"&sortBy=creation_time_descend")
76 + return urls
77 +
78 +
79 +def _iter_json_scripts(html: str):
80 + for m in _SCRIPT_RE.finditer(html):
81 + try:
82 + yield json.loads(m.group(1))
83 + except ValueError:
84 + continue
85 +
86 +
87 +def walk_listings(html: str) -> dict:
88 + """Objets d'annonce (marketplace_listing_title) des <script> JSON."""
89 + out: dict = {}
90 +
91 + def walk(o):
92 + if isinstance(o, dict):
93 + if "marketplace_listing_title" in o and o.get("id"):
94 + out.setdefault(str(o["id"]), o)
95 + for v in o.values():
96 + walk(v)
97 + elif isinstance(o, list):
98 + for v in o:
99 + walk(v)
100 +
101 + for data in _iter_json_scripts(html):
102 + walk(data)
103 + return out
104 +
105 +
106 +def price_of(obj: dict) -> float | None:
107 + """Montant du loyer depuis listing_price (offset en cents géré)."""
108 + pr = obj.get("listing_price") or {}
109 + for k in ("amount", "amount_with_offset_in_currency"):
110 + v = pr.get(k)
111 + if v is None:
112 + continue
113 + try:
114 + val = float(v)
115 + except (TypeError, ValueError):
116 + continue
117 + if k == "amount_with_offset_in_currency" and val > 100000:
118 + val /= 100.0
119 + if val > 0:
120 + return round(val, 0)
121 + return None
122 +
123 +
124 +def _pdp_target(html: str) -> dict | None:
125 + """Nœud cible le plus RICHE (description/GPS/statut) parmi les targets
126 + marketplace_product_details_page préchargés (stubs inclus)."""
127 + found: list[dict] = []
128 +
129 + def walk(o):
130 + if isinstance(o, dict):
131 + pdp = o.get("marketplace_product_details_page")
132 + if isinstance(pdp, dict) and isinstance(pdp.get("target"), dict):
133 + found.append(pdp["target"])
134 + for v in o.values():
135 + walk(v)
136 + elif isinstance(o, list):
137 + for v in o:
138 + walk(v)
139 +
140 + for data in _iter_json_scripts(html):
141 + walk(data)
142 +
143 + def score(t: dict) -> tuple:
144 + desc = (t.get("redacted_description") or {}).get("text") or ""
145 + loc = t.get("location") or {}
146 + return (1 if desc else 0) + (1 if loc.get("latitude") else 0), len(t)
147 + return max(found, key=score) if found else None
148 +
149 +
150 +def _gallery(html: str, lid: str) -> list[str]:
151 + """Galerie complète : plus grand tableau listing_photos porté par un objet
152 + du MÊME id (le target MediaViewer préchargé la contient hors connexion)."""
153 + best: list[str] = []
154 +
155 + def walk(o):
156 + nonlocal best
157 + if isinstance(o, dict):
158 + lp = o.get("listing_photos")
159 + if (isinstance(lp, list) and lp
160 + and str(o.get("id") or "") == lid):
161 + uris = []
162 + for p in lp:
163 + uri = ((p.get("image") or {}).get("uri")
164 + if isinstance(p, dict) else "") or ""
165 + if uri and uri not in uris:
166 + uris.append(uri)
167 + if len(uris) > len(best):
168 + best = uris
169 + for v in o.values():
170 + walk(v)
171 + elif isinstance(o, list):
172 + for v in o:
173 + walk(v)
174 +
175 + for data in _iter_json_scripts(html):
176 + walk(data)
177 + return best
178 +
179 +
180 +def _clean_desc(text: str) -> str:
181 + t = text.replace("\r", "\n")
182 + t = re.sub(r"[ \t ]+", " ", t)
183 + t = re.sub(r" ?\n ?", "\n", t)
184 + t = re.sub(r"\n{3,}", "\n\n", t)
185 + return t.strip()
186 +
187 +
188 +def parse_detail(html: str, lid: str) -> dict:
189 + """Champs riches d'une fiche /marketplace/item/<id> hors connexion.
190 +
191 + {} si la page n'a pas pu être rendue (échec réseau : l'appelant ne doit
192 + PAS mettre en cache), {"nopdp": True} si rendue mais sans objet cible
193 + (fiche supprimée / mur de login : cacher pour ne pas boucler)."""
194 + if not html:
195 + return {}
196 + o = _pdp_target(html)
197 + if not o:
198 + return {"nopdp": True}
199 + out: dict = {}
200 + if o.get("is_sold") or o.get("is_pending") or o.get("is_live") is False:
201 + out["gone"] = True # loué / en attente / retiré
202 + loc = o.get("location") or {}
203 + if loc.get("latitude") and loc.get("longitude"):
204 + out["lat"] = loc["latitude"]
205 + out["lng"] = loc["longitude"]
206 + geo = loc.get("reverse_geocode_detailed") or {}
207 + if geo.get("city"):
208 + out["city"] = geo["city"]
209 + if geo.get("state"):
210 + out["state"] = geo["state"]
211 + lt = (o.get("location_text") or {}).get("text") or ""
212 + if lt: # ex. « Québec, QC » / « Norfolk, ON »
213 + out["location_text"] = lt
214 + parts = [p.strip() for p in lt.split(",") if p.strip()]
215 + if parts and not out.get("city"):
216 + out["city"] = parts[0]
217 + if len(parts) > 1 and not out.get("state"):
218 + out["state"] = parts[1]
219 + desc = (o.get("redacted_description") or {}).get("text") or ""
220 + if desc:
221 + out["description"] = _clean_desc(desc)[:6000]
222 + photos = _gallery(html, lid)
223 + if photos:
224 + out["images"] = photos
225 + return out
226 +
227 +
228 +async def main() -> None:
229 + async with Actor:
230 + inp = await Actor.get_input() or {}
231 + search_urls = [u for u in (inp.get("searchUrls") or []) if u]
232 + if not search_urls:
233 + search_urls = default_search_urls()
234 + get_details = inp.get("getDetails", True)
235 + max_details = int(inp.get("maxDetails") or 200)
236 + skip_ids = {str(i) for i in (inp.get("skipDetailIds") or [])}
237 + extra_ids = [str(i) for i in (inp.get("extraDetailIds") or [])]
238 + template = (inp.get("proxyUrlTemplate") or "").strip() or None
239 + proxy = None
240 + if not template:
241 + proxy = await Actor.create_proxy_configuration(
242 + actor_proxy_input=inp.get("proxyConfiguration"))
243 + fetcher = Fetcher(proxy, delay=float(inp.get("requestDelay") or 1),
244 + proxy_template=template)
245 + sem = asyncio.Semaphore(int(inp.get("concurrency") or 8))
246 +
247 + # -- phase recherche ---------------------------------------------------
248 + found: dict[str, tuple[dict, str]] = {} # id -> (objet, source_url)
249 + fails = 0
250 +
251 + async def search(url: str) -> None:
252 + nonlocal fails
253 + async with sem:
254 + try:
255 + resp = await fetcher.get(url, session_id=f"q{hash(url)}")
256 + except Exception as exc:
257 + fails += 1
258 + Actor.log.warning(f"recherche KO {url} : {exc}")
259 + return
260 + if resp.status_code != 200:
261 + fails += 1
262 + return
263 + for lid, obj in walk_listings(resp.text).items():
264 + found.setdefault(lid, (obj, url))
265 +
266 + await asyncio.gather(*[search(u) for u in search_urls])
267 + Actor.log.info(f"recherche : {len(found)} annonces uniques "
268 + f"({len(search_urls)} URLs, {fails} échecs)")
269 +
270 + for lid, (obj, src) in found.items():
271 + photo = ((obj.get("primary_listing_photo") or {})
272 + .get("image") or {}).get("uri") or ""
273 + loc = obj.get("location") or {}
274 + geo = loc.get("reverse_geocode") or {}
275 + await Actor.push_data({
276 + "kind": "listing",
277 + "id": lid,
278 + "title": (obj.get("marketplace_listing_title") or "")[:300],
279 + "price": price_of(obj),
280 + "city": (geo.get("city")
281 + or (geo.get("city_page") or {}).get("display_name")
282 + or ""),
283 + "state": geo.get("state") or "",
284 + "primary_photo": photo,
285 + "is_sold": bool(obj.get("is_sold")),
286 + "is_pending": bool(obj.get("is_pending")),
287 + "source_url": src,
288 + "url": f"{BASE}/item/{lid}/",
289 + })
290 +
291 + # -- phase détail ------------------------------------------------------
292 + if not get_details or max_details <= 0:
293 + return
294 + todo: list[str] = []
295 + for lid, (obj, _src) in found.items():
296 + if lid in skip_ids or obj.get("is_sold") or obj.get("is_pending"):
297 + continue
298 + if price_of(obj) is None:
299 + continue # sans prix : jamais publiable, épargner
300 + # le flux public glisse des annonces d'autres provinces (suggestions)
301 + geo = (obj.get("location") or {}).get("reverse_geocode") or {}
302 + st = (geo.get("state") or "").strip().lower()
303 + if st and st not in ("qc", "quebec", "québec"):
304 + continue
305 + todo.append(lid)
306 + for lid in extra_ids: # rattrapage : après les nouveautés
307 + if lid not in todo and lid not in skip_ids:
308 + todo.append(lid)
309 + todo = todo[:max_details]
310 +
311 + async def detail(lid: str) -> None:
312 + async with sem:
313 + try:
314 + resp = await fetcher.get(f"{BASE}/item/{lid}/",
315 + session_id=f"d{lid}")
316 + payload = parse_detail(
317 + resp.text if resp.status_code == 200 else "", lid)
318 + except Exception as exc:
319 + Actor.log.warning(f"détail KO {lid} : {exc}")
320 + payload = {}
321 + await Actor.push_data({"kind": "detail", "id": lid,
322 + "ok": bool(payload), **payload})
323 +
324 + await asyncio.gather(*[detail(lid) for lid in todo])
325 + Actor.log.info(f"détail : {len(todo)} fiches visitées")
added actors/ka-fb-marketplace/src/net.py +97 −0
@@ -0,0 +1,97 @@
1 +# ==============================================================================
2 +# Author: Simon-Pierre Boucher <contact@spboucher.ai>
3 +# File: src/net.py (ka-fb-marketplace)
4 +# Desc: Fetch commun des acteurs KA — curl_cffi (empreinte TLS Chrome) +
5 +# proxy Apify (résidentiel par défaut) OU gabarit de proxy externe
6 +# ({session} → id de session, nouvelle IP par tentative), throttling
7 +# poli, retries à backoff exponentiel + jitter sur 403/407/408/425/
8 +# 429/500/502/503/504.
9 +# ==============================================================================
10 +from __future__ import annotations
11 +
12 +import asyncio
13 +import random
14 +import re
15 +
16 +from apify import Actor
17 +from curl_cffi import requests as cffi
18 +
19 +UA = ("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 "
20 + "(KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36")
21 +
22 +# statuts transitoires : mur anti-bot, proxy, rate-limit, erreurs serveur
23 +RETRY_STATUSES = frozenset({403, 407, 408, 425, 429, 500, 502, 503, 504})
24 +
25 +
26 +def _backoff(attempt: int) -> float:
27 + """Backoff exponentiel plafonné + jitter (anti-troupeau)."""
28 + return min(1.2 * (2 ** attempt), 12.0) + random.uniform(0.0, 0.8)
29 +
30 +
31 +class Fetcher:
32 + """HTTP poli : proxy Apify ou externe + impersonation Chrome + retries."""
33 +
34 + def __init__(self, proxy_configuration, delay: float = 1.0,
35 + proxy_template: str | None = None) -> None:
36 + self.proxy_configuration = proxy_configuration
37 + self.proxy_template = proxy_template or None
38 + self.delay = delay
39 + self._lock = asyncio.Lock()
40 + self._last = 0.0
41 +
42 + async def _throttle(self) -> None:
43 + async with self._lock:
44 + now = asyncio.get_event_loop().time()
45 + wait = self.delay - (now - self._last)
46 + if wait > 0:
47 + await asyncio.sleep(wait)
48 + self._last = asyncio.get_event_loop().time()
49 +
50 + async def _proxy_url(self, session_id: str | None, attempt: int) -> str | None:
51 + sid = session_id or f"s{random.randint(1, 999_999)}"
52 + sid = re.sub(r"[^\w._~]", "", sid)[:40] or "s"
53 + # nouvelle session proxy (nouvelle IP) à chaque tentative
54 + sid = f"{sid}r{attempt}"
55 + if self.proxy_template:
56 + return self.proxy_template.replace("{session}", sid)
57 + if self.proxy_configuration:
58 + return await self.proxy_configuration.new_url(session_id=sid)
59 + return None
60 +
61 + async def request(self, method: str, url: str,
62 + headers: dict | None = None, data=None,
63 + retries: int = 4, session_id: str | None = None,
64 + impersonate: str | None = "chrome"):
65 + hdrs = {"User-Agent": UA,
66 + "Accept-Language": "fr-CA,fr;q=0.9,en;q=0.8"}
67 + if headers:
68 + hdrs.update(headers)
69 + last_exc: Exception | None = None
70 + for attempt in range(retries):
71 + await self._throttle()
72 + proxy = await self._proxy_url(session_id, attempt)
73 + try:
74 + resp = await asyncio.to_thread(
75 + cffi.request, method, url, headers=hdrs, data=data,
76 + impersonate=impersonate, timeout=60, allow_redirects=True,
77 + proxies={"http": proxy, "https": proxy} if proxy else None)
78 + if resp.status_code in RETRY_STATUSES \
79 + and attempt < retries - 1:
80 + Actor.log.warning(
81 + f"HTTP {resp.status_code} {url} — retry {attempt + 1}")
82 + await asyncio.sleep(_backoff(attempt))
83 + continue
84 + return resp
85 + except Exception as exc: # réseau/proxy : on retente
86 + last_exc = exc
87 + await asyncio.sleep(_backoff(attempt))
88 + if last_exc:
89 + raise last_exc
90 + raise RuntimeError(f"échec après {retries} tentatives : {url}")
91 +
92 + async def get(self, url: str, headers: dict | None = None,
93 + retries: int = 4, session_id: str | None = None,
94 + impersonate: str | None = "chrome"):
95 + return await self.request("GET", url, headers=headers,
96 + retries=retries, session_id=session_id,
97 + impersonate=impersonate)
modified data/sources.json +1 −1
@@ -2724,7 +2724,7 @@
2724 2724 "name": "Facebook Marketplace (location)",
2725 2725 "url": "https://www.facebook.com/marketplace",
2726 2726 "listing_url": "https://www.facebook.com/marketplace/montreal/propertyrentals",
2727 − "sectors": "Grandes villes QC — annonces de particuliers (Scrapfly)",
2727 + "sectors": "Toute la province (33 villes, rayon ~65 km chacune) — annonces de particuliers (acteur Apify maison ka-fb-marketplace)",
2728 2728 "connector": "fb_marketplace",
2729 2729 "status": "actif",
2730 2730 "region": "Province"
modified docs/connecteurs/INDEX.md +217 −217
@@ -1,228 +1,228 @@
1 1 # Lou-Ka — Index des connecteurs
2 2
3 −_Généré automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Généré automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**217 connecteurs documentés** (215 activés, 2 désactivés) · **58112 annonces actives** au total · registre : 281 entrées.
5 +**217 connecteurs documentés** (215 activés, 2 désactivés) · **60703 annonces actives** au total · registre : 281 entrées.
6 6
7 7 | Connecteur | Nom | Région | Type d'accès | Backend | Actives/Total | GPS | Prix | Photos | État | Dernier sync OK |
8 8 |---|---|---|---|---|---|---|---|---|---|---|
9 −| [`aalto`](aalto.md) | Aalto Suites (Zibi / Dream) | Outaouais | API JSON interne du site | direct | 26/33 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:00 |
10 −| [`acceslogis_gb`](acceslogis_gb.md) | Accès Logis GB | Lanaudière / Mauric… | pages HTML (rendu serveur) | direct | 10/11 | 20 % | 100 % | 100 % | actif | 2026-08-18 06:00 |
11 −| [`agence_sherbrooke`](agence_sherbrooke.md) | Agence de location Sherbrooke (groupe P… | Estrie | sitemap XML + pages HTML | direct | 14/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
12 −| [`akelius`](akelius.md) | Akelius Montréal | Montréal | pages HTML (rendu serveur) | direct | 242/290 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
13 −| [`alexcellence`](alexcellence.md) | Immeubles Alexcellence | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 50 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
14 −| [`alias_appartements`](alias_appartements.md) | Alias Appartements | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
15 −| [`alouer_sherbrooke`](alouer_sherbrooke.md) | À Louer Sherbrooke | Estrie | API admin-ajax (WordPress) | direct | 1/1 | 0 % | 0 % | 100 % | actif | 2026-08-18 06:01 |
16 −| [`app_urbains`](app_urbains.md) | Appartements Urbains | Québec | sitemap XML + pages HTML | direct | 18/21 | 100 % | 83 % | 100 % | actif | 2026-08-18 06:01 |
17 −| [`appartements_rimouski`](appartements_rimouski.md) | Appartements Rimouski (Immeubles DTM) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 19/20 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
18 −| [`ascensio`](ascensio.md) | Groupe Ascensio | Estrie | pages HTML (rendu serveur) | direct | 9/10 | 44 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
19 −| [`atimco`](atimco.md) | Atimco | Montérégie | sitemap XML + pages HTML | direct | 299/299 | 100 % | 99 % | 96 % | actif | 2026-08-18 06:19 |
20 −| [`atlas_immo`](atlas_immo.md) | Atlas société immobilière | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 0/0 | — | — | — | actif | 2026-08-18 06:01 |
21 −| [`aula`](aula.md) | AULA Lévis | Québec | API REST WordPress (wp-json) | direct | 68/70 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
22 −| [`axia`](axia.md) | Axia Appartements | Montréal | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
23 −| [`barnes_quebec`](barnes_quebec.md) | BARNES Québec (location) | Montréal | API JSON interne du site | direct | 101/103 | 99 % | 98 % | 100 % | actif | 2026-08-18 06:01 |
24 −| [`beaudoin`](beaudoin.md) | Société Beaudoin Immobilier | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
25 −| [`beaulieu_groupe`](beaulieu_groupe.md) | Beaulieu Groupe Immobilier (BGI) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 0 % | 100 % | actif | 2026-08-18 06:01 |
26 −| [`bestlife`](bestlife.md) | Les Gestions Bestlife | Estrie | pages HTML (rendu serveur) | direct | 12/13 | 92 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
27 −| [`boardwalk`](boardwalk.md) | Boardwalk REIT | Montréal | pages HTML (rendu serveur) | direct | 100/100 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:02 |
28 −| [`bons_locataires`](bons_locataires.md) | Bons Locataires | Grand Montréal | sitemap XML + pages HTML | direct | 14/14 | 100 % | 21 % | 93 % | actif | 2026-08-18 06:03 |
29 −| [`boreal_abitibi`](boreal_abitibi.md) | Constructions Boréal Abitibi | Abitibi-Témiscaming… | API admin-ajax (WordPress) | direct | 3/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:03 |
30 −| [`bribourg`](bribourg.md) | Bribourg | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:03 |
31 −| [`brigil`](brigil.md) | Brigil | Outaouais | API JSON interne du site | direct | 42/42 | 98 % | 24 % | 100 % | actif | 2026-08-18 06:05 |
32 −| [`brio`](brio.md) | Les Immeubles Brio | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
33 −| [`brivia_1sp`](brivia_1sp.md) | Groupe Brivia (1 Square Phillips) | Montréal | API JSON interne du site | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
34 −| [`brochu`](brochu.md) | Groupe Immobilier Brochu | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 57 % | 100 % | actif | 2026-08-18 06:05 |
35 −| [`cap_gestion`](cap_gestion.md) | CAP Gestion (CAP Immobilier) | Laurentides / Lanau… | pages HTML (rendu serveur) | direct | 122/122 | 98 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
36 −| [`capital_rdr`](capital_rdr.md) | Gestion Capital RDR | Mauricie | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
37 −| [`capreit`](capreit.md) | CAPREIT | Québec | API admin-ajax (WordPress) | direct | 117/122 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
38 −| [`carat_immobilier`](carat_immobilier.md) | Carat Immobilier | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 3/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:05 |
39 −| [`centurion`](centurion.md) | Centurion / CP Living (Quartier QB) | Québec | API JSON interne du site | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-18 06:05 |
40 −| [`cite_immobilier`](cite_immobilier.md) | Cité Immobilier | Centre-du-Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 0 % | actif | 2026-08-18 06:05 |
41 −| [`cogir`](cogir.md) | Cogir Immobilier | Québec | pages HTML (rendu serveur) | direct | 285/300 | 89 % | 96 % | 100 % | actif | 2026-08-18 06:07 |
42 −| [`contraste`](contraste.md) | Contraste Immobilier | Québec | pages HTML (rendu serveur) | direct | 221/234 | 100 % | 86 % | 100 % | actif | 2026-08-18 06:07 |
43 −| [`copley`](copley.md) | Groupe Copley | Montréal | pages HTML (rendu serveur) | direct | 52/52 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:07 |
44 −| [`cosoltec`](cosoltec.md) | Cosoltec (Evado, Le Monroe, Natür) | Laurentides | API JSON interne du site | direct | 44/52 | 98 % | 80 % | 100 % | actif | 2026-08-18 06:07 |
45 −| [`courtemanche`](courtemanche.md) | Gestion Immobilière Courtemanche | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 0/0 | — | — | — | actif | 2026-08-18 06:07 |
46 −| [`cromwell`](cromwell.md) | Cromwell Management | Montréal | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:07 |
47 −| [`denux`](denux.md) | Groupe Denux | Montréal | API JSON interne du site | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:08 |
48 −| [`desmarais`](desmarais.md) | Immeubles Desmarais | Outaouais | pages HTML (rendu serveur) | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:08 |
49 −| [`desroches`](desroches.md) | Immeubles Claude Desroches | Montérégie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 50 % | actif | 2026-08-18 06:08 |
50 −| [`devcore`](devcore.md) | Devcore Group | Côte-Nord | API REST WordPress (wp-json) | direct | 14/14 | 0 % | 7 % | 100 % | actif | 2026-08-18 06:08 |
51 −| [`devimco`](devimco.md) | Devimco Appartements | Montréal | API JSON interne du site | direct | 480/575 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:09 |
52 −| [`dma_locago`](dma_locago.md) | DMA / Locago (Douville, Moffet & Associ… | Québec | pages HTML (rendu serveur) | direct | 118/124 | 29 % | 98 % | 100 % | actif | 2026-08-18 06:09 |
53 −| [`duproprio`](duproprio.md) | DuProprio (location) | Province | sitemap XML + pages HTML | direct | 3890/3896 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 |
54 −| [`dynamic`](dynamic.md) | Gestion immobilière Dynamic | Estrie | pages HTML (rendu serveur) | direct | 48/53 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
55 −| [`edifia`](edifia.md) | Edifia Groupe Immobilier | Québec | pages HTML (rendu serveur) | direct | 180/185 | 100 % | 94 % | 100 % | actif | 2026-08-18 06:10 |
56 −| [`elements`](elements.md) | Quartier les Éléments | Québec | pages HTML (rendu serveur) | direct | 2/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 |
57 −| [`elite`](elite.md) | Elite Immobilier | Outaouais | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:10 |
58 −| [`elk`](elk.md) | ELK Property Management | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 06:10 |
59 −| [`equinoxe_batimo`](equinoxe_batimo.md) | Batimo/EMD — Collection Équinoxe | Montréal | API admin-ajax (WordPress) | direct | 615/662 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:12 |
60 −| [`evoludev`](evoludev.md) | Groupe Evoludev | Lanaudière | pages HTML (rendu serveur) | direct | 134/134 | 100 % | 99 % | 100 % | actif | 2026-08-18 06:12 |
61 −| [`fb_marketplace`](fb_marketplace.md) | Facebook Marketplace (location) | Province | pages HTML (rendu serveur) | direct | 2270/6308 | 15 % | 100 % | 100 % | actif | 2026-08-18 06:19 |
62 −| [`ferrovia`](ferrovia.md) | Ferrovia (condos locatifs Mirabel) | Laurentides | pages HTML (rendu serveur) | direct | 23/24 | 0 % | 0 % | 0 % | actif | 2026-08-18 06:19 |
63 −| [`firma`](firma.md) | Groupe Firma | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 75 % | 8 % | 100 % | actif | 2026-08-18 06:20 |
64 −| [`floria`](floria.md) | Gestion Floria | Estrie | pages HTML (rendu serveur) | direct | 21/21 | 100 % | 24 % | 95 % | actif | 2026-08-18 06:20 |
65 −| [`forsa`](forsa.md) | Gestion immobilière Forsa | Lanaudière | pages HTML (rendu serveur) | direct | 13/13 | 92 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
66 −| [`fournelle`](fournelle.md) | Appartements Fournelle (Groupe Fournell… | Centre-du-Québec | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
67 −| [`garic`](garic.md) | Garic Gestion Immobilière | Outaouais | API admin-ajax (WordPress) | direct | 45/54 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
68 −| [`gesteco`](gesteco.md) | Gesteco | Montérégie | API JSON interne du site | direct | 10/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
69 −| [`gestimmo_estrie`](gestimmo_estrie.md) | Gestimmo Estrie | Estrie | pages HTML (rendu serveur) | direct | 41/41 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
70 −| [`gestion_fauvel`](gestion_fauvel.md) | Gestion Fauvel | Centre-du-Québec | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-18 06:20 |
71 −| [`gestion_habitation`](gestion_habitation.md) | Gestion Habitation | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
72 −| [`gestion_isr`](gestion_isr.md) | Gestion ISR | Centre-du-Québec | pages HTML (rendu serveur) | direct | 20/22 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
73 −| [`gestion_jdm`](gestion_jdm.md) | JDM Gestion immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 2/2 | 100 % | 0 % | 100 % | actif | 2026-08-18 06:20 |
74 −| [`gestion_laprise`](gestion_laprise.md) | Gestion Laprise | Côte-Nord | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-18 06:20 |
75 −| [`gestion_legrand`](gestion_legrand.md) | Gestion Le Grand | Centre-du-Québec | API REST WordPress (wp-json) | direct | 5/5 | 40 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
76 −| [`gestion_montreal`](gestion_montreal.md) | Gestion Montréal | Montréal | pages HTML (rendu serveur) | direct | 22/24 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
77 −| [`gestion_tb`](gestion_tb.md) | Gestion TB (portail Appartements TB) | Centre-du-Québec | pages HTML (rendu serveur) | direct | 31/35 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:20 |
78 −| [`gestion_valco`](gestion_valco.md) | Gestion Valco | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 50 % | actif | 2026-08-18 06:20 |
79 −| [`gestipro`](gestipro.md) | Gestipro | Québec | pages HTML (rendu serveur) | direct | 98/116 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:34 |
80 −| [`gia_t`](gia_t.md) | GIA-T — Gestion Immobilière Abitibi-Tém… | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 3/4 | 67 % | 100 % | 100 % | actif | 2026-08-18 03:34 |
81 −| [`gimcote`](gimcote.md) | GIM Côté | Québec | pages HTML (rendu serveur) | direct | 85/89 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 |
82 −| [`gio`](gio.md) | Gestion Immobilière de l'Outaouais (GIO) | Outaouais | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 |
83 −| [`girescom`](girescom.md) | Girescom gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 40/41 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:35 |
84 −| [`girs`](girs.md) | GIRS — Gestion Immobilière de la Rive S… | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 8/8 | 100 % | 0 % | 100 % | actif | 2026-08-18 03:35 |
85 −| [`gparadis`](gparadis.md) | GParadis | Québec | pages HTML (rendu serveur) | direct | 22/22 | 82 % | 0 % | 100 % | actif | 2026-08-18 03:35 |
86 −| [`groupe_dallaire`](groupe_dallaire.md) | Groupe Dallaire (Faubourg du Moulin) | Québec | API admin-ajax (WordPress) | Scrapfly | 255/259 | 100 % | 100 % | 100 % | actif (dégradé) | 2026-08-18 03:41 |
87 −| [`groupe_jacques`](groupe_jacques.md) | Groupe Jacques | Centre-du-Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 60 % | 100 % | actif | 2026-08-18 03:41 |
88 −| [`groupe_maurice`](groupe_maurice.md) | Le Groupe Maurice | Province | API REST WordPress (wp-json) | direct | 203/203 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:41 |
89 −| [`groupe_robin`](groupe_robin.md) | Groupe Robin | Mauricie | API admin-ajax (WordPress) | direct | 72/74 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:41 |
90 −| [`groupe_theoret`](groupe_theoret.md) | Groupe Théorêt (Gestion Immobilière) | Mauricie | pages HTML (rendu serveur) | direct | 24/24 | 83 % | 100 % | 0 % | actif | 2026-08-18 03:41 |
91 −| [`habitations_jeanne`](habitations_jeanne.md) | Les Habitations Jeanne | Côte-Nord | sitemap XML + pages HTML | direct | 14/14 | 100 % | 0 % | 100 % | actif | 2026-08-18 03:41 |
92 −| [`habitations_sf`](habitations_sf.md) | Les Habitations SF (S&F Gestion) | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 43 % | 86 % | 100 % | actif | 2026-08-18 03:41 |
93 −| [`halfred`](halfred.md) | Halfred | Outaouais | pages HTML (rendu serveur) | direct | 164/169 | 93 % | 100 % | 100 % | actif | 2026-08-18 03:42 |
94 −| [`hazelview`](hazelview.md) | Hazelview Properties | Montréal | API JSON interne du site | direct | 6/6 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:42 |
95 −| [`headway`](headway.md) | La Corporation Headway | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 0 % | 100 % | actif | 2026-08-18 03:42 |
96 −| [`heafey`](heafey.md) | Groupe Heafey (Le We 2, Le We 3, Loggia… | Outaouais | API JSON interne du site | direct | 246/255 | 15 % | 0 % | 100 % | actif | 2026-08-18 03:43 |
97 −| [`hestia`](hestia.md) | Hestia Groupe immobilier | Mauricie | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
98 −| [`huma`](huma.md) | HUMĀ Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 38/38 | 26 % | 0 % | 100 % | actif | 2026-08-18 03:43 |
99 −| [`immeubles_aeb`](immeubles_aeb.md) | Immeubles AEB | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 26/26 | 100 % | 100 % | 81 % | actif | 2026-08-18 03:43 |
100 −| [`immeubles_bc`](immeubles_bc.md) | Les Immeubles Beaulieu et Collin | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/26 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
101 −| [`immeubles_bois`](immeubles_bois.md) | Les Immeubles Bois | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 23/23 | 83 % | 0 % | 100 % | actif | 2026-08-18 03:43 |
102 −| [`immeubles_db`](immeubles_db.md) | Les Immeubles D.B. Busque-Massé | Estrie | pages HTML (rendu serveur) | direct | 13/13 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
103 −| [`immeubles_dcl`](immeubles_dcl.md) | Les Immeubles DCL | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 8/11 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
104 −| [`immeubles_guillot`](immeubles_guillot.md) | Les Immeubles Guillot | Québec | pages HTML (rendu serveur) | direct | 7/7 | 57 % | 0 % | 100 % | actif | 2026-08-18 03:43 |
105 −| [`immeubles_ouellet`](immeubles_ouellet.md) | Les Immeubles Vianney Ouellet & Fils | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
106 −| [`immeubles_pm`](immeubles_pm.md) | Les Immeubles PM | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
107 −| [`immnasr`](immnasr.md) | Les Immeubles Michel Nazair | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
108 −| [`immobilia`](immobilia.md) | Immobilia Rimouski | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
109 −| [`immogex`](immogex.md) | Immogex | Centre-du-Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:43 |
110 −| [`immomarketing`](immomarketing.md) | IMMOMARKETING (Immoappart) | Québec | pages HTML (rendu serveur) | direct | 83/90 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:44 |
111 −| [`immostar`](immostar.md) | Immostar | Québec | API REST WordPress (wp-json) | direct | 156/165 | 72 % | 99 % | 100 % | actif | 2026-08-18 03:44 |
112 −| [`info_logement`](info_logement.md) | Info-Logement | Lanaudière | pages HTML (rendu serveur) | direct | 50/56 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:45 |
113 −| [`interrent`](interrent.md) | InterRent REIT (CLV Group) | Montréal | pages HTML (rendu serveur) | direct | 200/211 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:45 |
114 −| [`jutras`](jutras.md) | Habitations Jutras | Centre-du-Québec | pages HTML (rendu serveur) | direct | 35/35 | 0 % | 54 % | 100 % | actif | 2026-08-18 03:45 |
115 −| [`kangalou`](kangalou.md) | Kangalou | Province | API JSON interne du site | direct | 7916/7916 | 100 % | 100 % | 99 % | actif | 2026-08-18 03:54 |
116 −| [`kass`](kass.md) | KASS Property Management | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 03:54 |
117 −| [`katasa`](katasa.md) | Groupe Katasa | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 03:54 |
118 −| [`kijiji`](kijiji.md) | Kijiji Québec (location) | Province | pages HTML (rendu serveur) | direct | 5251/7409 | 100 % | 97 % | 99 % | actif | 2026-08-18 04:02 |
119 −| [`la_cour`](la_cour.md) | La Cour Appartements | Québec | API REST WordPress (wp-json) | direct | 20/21 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:01 |
120 −| [`laberge`](laberge.md) | Groupe Laberge | Québec | pages HTML (rendu serveur) | direct | 55/58 | 93 % | 100 % | 100 % | actif | 2026-08-18 04:02 |
121 −| [`labonte`](labonte.md) | Gestion Labonté | Estrie | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:02 |
122 −| [`lachance`](lachance.md) | Les Entreprises Lachance | Estrie | sitemap XML + pages HTML | direct | 65/86 | 95 % | 100 % | 100 % | actif | 2026-08-18 04:04 |
123 −| [`lacite`](lacite.md) | La Cité Gatineau (Adam Real Estate) | Outaouais | pages HTML (rendu serveur) | direct | 6/7 | 0 % | 0 % | 100 % | actif | 2026-08-18 04:06 |
124 −| [`lafrance_mathieu`](lafrance_mathieu.md) | Lafrance & Mathieu | Québec | pages HTML (rendu serveur) | direct | 37/40 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:06 |
125 −| [`lakle`](lakle.md) | La Klé | Québec | API REST WordPress (wp-json) | direct | 45/49 | 100 % | 56 % | 96 % | actif | 2026-08-18 04:07 |
126 −| [`lambert`](lambert.md) | Société Immobilière Lambert | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-18 04:07 |
127 −| [`laureat_richard`](laureat_richard.md) | Logements Lauréat Richard | Estrie | pages HTML (rendu serveur) | direct | 23/23 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:07 |
128 −| [`le_baronet`](le_baronet.md) | Le Baronet | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
129 −| [`le_st_georges`](le_st_georges.md) | Le St-Georges | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
130 −| [`leclif`](leclif.md) | Le Clif | Québec | pages HTML (rendu serveur) | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
131 −| [`ledomaine`](ledomaine.md) | Les Habitations Le Domaine | Montréal | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
132 −| [`lelaureat`](lelaureat.md) | Résidences Le Lauréat | Estrie | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
133 −| [`lequerre`](lequerre.md) | Habitations L'Équerre | Estrie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:07 |
134 −| [`lespac`](lespac.md) | LesPAC (location) | Province | pages HTML (rendu serveur) | direct | 2270/2568 | 47 % | 87 % | 93 % | actif | 2026-08-18 04:10 |
135 −| [`leviu`](leviu.md) | Le VIU / VIU2 (Groupe Heafey) | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:10 |
136 −| [`location_di`](location_di.md) | Location DI (Groupe Sphère DI) | Mauricie / Lanaudiè… | pages HTML (rendu serveur) | direct | 9/12 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 |
137 −| [`location_saguenay`](location_saguenay.md) | Location Saguenay | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 21/21 | 76 % | 0 % | 100 % | actif | 2026-08-18 04:10 |
138 −| [`loftsmtl`](loftsmtl.md) | Lofts MTL | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 |
139 −| [`logement_mauricie`](logement_mauricie.md) | Logement Mauricie (regroupement de prop… | Mauricie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:10 |
140 −| [`logis_experts`](logis_experts.md) | Logis-Experts | Québec | API JSON interne du site | direct | 498/517 | 100 % | 100 % | 39 % | actif | 2026-08-18 04:10 |
141 −| [`logisbourg`](logisbourg.md) | Logisbourg | Québec | pages HTML (rendu serveur) | direct | 11/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:11 |
142 −| [`logisco`](logisco.md) | Logisco | Québec | pages HTML (rendu serveur) | direct | 157/174 | 99 % | 100 % | 100 % | actif | 2026-08-18 04:11 |
143 −| [`logisma`](logisma.md) | Logisma | Québec | API REST WordPress (wp-json) | direct | 15/19 | 80 % | 100 % | 100 % | actif | 2026-08-18 04:11 |
144 −| [`logispro`](logispro.md) | LogisPro Rimouski | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-18 04:11 |
145 −| [`logisquebec`](logisquebec.md) | LogisQuébec | Province | sitemap XML + pages HTML | direct | 6791/6794 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:20 |
146 −| [`lokalia`](lokalia.md) | Espaces Lokalia | Québec | API admin-ajax (WordPress) | direct | 131/135 | 100 % | 82 % | 100 % | actif | 2026-08-18 04:21 |
147 −| [`louer_ca`](louer_ca.md) | Louer.ca | Province | API GraphQL interne | direct | 4576/5357 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 |
148 −| [`louer_saguenay`](louer_saguenay.md) | Louer Saguenay | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 |
149 −| [`louis14`](louis14.md) | Quartier Louis Quatorze (Groupe Damco) | Québec | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 |
150 −| [`lr_gestion`](lr_gestion.md) | LR Gestion immobilière (LR Location) | Outaouais | pages HTML (rendu serveur) | direct | 111/116 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:33 |
151 −| [`luxuor`](luxuor.md) | Les Immeubles Luxuor | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 0 % | 100 % | actif | 2026-08-18 04:34 |
152 −| [`lynk_olymbec`](lynk_olymbec.md) | Lynk (Olymbec) | Montréal | pages HTML (rendu serveur) | Firecrawl | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:34 |
153 −| [`m_immobilier`](m_immobilier.md) | M Immobilier (location) | Montréal | pages HTML (rendu serveur) | direct | 193/199 | 59 % | 100 % | 100 % | actif | 2026-08-18 04:34 |
154 −| [`majestic`](majestic.md) | Le Majestic du Lac Boivin | Montérégie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 0 % | actif | 2026-08-18 04:34 |
155 −| [`matinale`](matinale.md) | Gestion Matinale | Estrie | pages HTML (rendu serveur) | direct | 44/45 | 57 % | 100 % | 100 % | actif | 2026-08-18 04:35 |
156 −| [`may_bourg`](may_bourg.md) | Gestion May Bourg | Centre-du-Québec | API REST WordPress (wp-json) | direct | 6/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:35 |
157 −| [`medway`](medway.md) | Groupe Medway | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 488/498 | 91 % | 100 % | 100 % | actif | 2026-08-18 04:36 |
158 −| [`mellem`](mellem.md) | Mellem (Groupe Mach) | Outaouais | sitemap XML + pages HTML | direct | 78/87 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:36 |
159 −| [`mercini`](mercini.md) | Groupe Mercini (Gestion Faleschini Merc… | Québec | pages HTML (rendu serveur) | direct | 47/52 | 94 % | 100 % | 100 % | actif | 2026-08-18 04:37 |
160 −| [`metcap`](metcap.md) | MetCap Living | Montréal | pages HTML (rendu serveur) | direct | 8/8 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:37 |
161 −| [`minto`](minto.md) | Minto Apartments | Montréal | pages HTML (rendu serveur) | direct | 19/20 | 84 % | 100 % | 100 % | actif | 2026-08-18 04:37 |
162 −| [`mkar`](mkar.md) | Gestion Immobilière MKAR | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:37 |
163 −| [`moderno`](moderno.md) | Moderno Construction | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:37 |
164 −| [`mondev`](mondev.md) | Mondev | Montréal | pages HTML (rendu serveur) | direct | 47/49 | 49 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
165 −| [`montagnais`](montagnais.md) | Le Montagnais, résidences étudiantes | Estrie | API admin-ajax (WordPress) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
166 −| [`morin`](morin.md) | Constructions Morin | Estrie | pages HTML (rendu serveur) | direct | 6/7 | 83 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
167 −| [`msi`](msi.md) | MSI Gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 96/105 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
168 −| [`multi_logis`](multi_logis.md) | Multi-Logis | Côte-Nord | sitemap XML + pages HTML | direct | 27/27 | 100 % | 96 % | 70 % | actif | 2026-08-18 04:38 |
169 −| [`niddamour`](niddamour.md) | Nid d'Amour | Montréal | API JSON interne du site | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
170 −| [`novelo`](novelo.md) | Les Appartements Novelo | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:38 |
171 −| [`oklouer`](oklouer.md) | OK Louer (location temporaire) | Québec | pages HTML (rendu serveur) | direct | 41/41 | 95 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
172 −| [`omhm`](omhm.md) | OMHM — logements abordables | Montréal | pages HTML (rendu serveur) | direct | 3/3 | 0 % | 100 % | 0 % | actif | 2026-08-18 04:39 |
173 −| [`osgoode`](osgoode.md) | Osgoode Properties | Outaouais | API JSON interne du site | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
174 −| [`oxford`](oxford.md) | Appartements Oxford | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
175 −| [`per`](per.md) | Les Immeubles Paul-E. Richard | Québec | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
176 −| [`picard`](picard.md) | Picard Immobilier | Québec | pages HTML (rendu serveur) | direct | 34/34 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
177 −| [`place_florimay`](place_florimay.md) | Place Florimay | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 0/0 | — | — | — | actif | 2026-08-18 04:39 |
178 −| [`plan_a`](plan_a.md) | Plan A Immobilier | Montréal | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-18 04:39 |
179 −| [`progim`](progim.md) | Progim | Montréal | pages HTML (rendu serveur) | direct | 62/68 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:39 |
180 −| [`projection_immo`](projection_immo.md) | Projection Immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 1/1 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:40 |
181 −| [`promenade_des_forts`](promenade_des_forts.md) | Promenade des Forts | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
182 −| [`proprio_direct`](proprio_direct.md) | Proprio Direct (location) | Province | API JSON interne du site | direct | 190/190 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
183 −| [`quanta`](quanta.md) | Gestion Quanta | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
184 −| [`quartier_mosaique`](quartier_mosaique.md) | Quartier Mosaïque (Constrobourg) | Québec | pages HTML (rendu serveur) | direct | 24/24 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
185 −| [`quartier_oree`](quartier_oree.md) | Quartier Orée | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
186 −| [`quartier_plus`](quartier_plus.md) | Le Quartier Plus | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 59/59 | 100 % | 0 % | 100 % | actif | 2026-08-18 04:40 |
187 −| [`quartier_sila`](quartier_sila.md) | Quartier Sila | Québec | pages HTML (rendu serveur) | direct | 199/200 | 100 % | 26 % | 100 % | actif | 2026-08-18 04:40 |
188 −| [`realstar`](realstar.md) | Realstar | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:40 |
189 −| [`remax_quebec`](remax_quebec.md) | RE/MAX Québec (location) | Province | pages HTML (rendu serveur) | direct | 3237/3379 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:43 |
190 −| [`rentals_ca`](rentals_ca.md) | Rentals.ca (Québec) | Province | API GraphQL interne | Scrapfly | 4906/4906 | 100 % | 100 % | 90 % | actif | 2026-08-18 04:49 |
191 −| [`rentalys`](rentalys.md) | Rentalys | Montréal | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:49 |
9 +| [`aalto`](aalto.md) | Aalto Suites (Zibi / Dream) | Outaouais | API JSON interne du site | direct | 24/35 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
10 +| [`acceslogis_gb`](acceslogis_gb.md) | Accès Logis GB | Lanaudière / Mauric… | pages HTML (rendu serveur) | direct | 10/11 | 20 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
11 +| [`agence_sherbrooke`](agence_sherbrooke.md) | Agence de location Sherbrooke (groupe P… | Estrie | sitemap XML + pages HTML | direct | 13/19 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
12 +| [`akelius`](akelius.md) | Akelius Montréal | Montréal | pages HTML (rendu serveur) | direct | 231/302 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
13 +| [`alexcellence`](alexcellence.md) | Immeubles Alexcellence | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 50 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
14 +| [`alias_appartements`](alias_appartements.md) | Alias Appartements | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
15 +| [`alouer_sherbrooke`](alouer_sherbrooke.md) | À Louer Sherbrooke | Estrie | API admin-ajax (WordPress) | direct | 1/1 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:18 |
16 +| [`app_urbains`](app_urbains.md) | Appartements Urbains | Québec | sitemap XML + pages HTML | direct | 17/21 | 100 % | 82 % | 100 % | actif | 2026-08-22 17:18 |
17 +| [`appartements_rimouski`](appartements_rimouski.md) | Appartements Rimouski (Immeubles DTM) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/24 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
18 +| [`ascensio`](ascensio.md) | Groupe Ascensio | Estrie | pages HTML (rendu serveur) | direct | 9/10 | 44 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
19 +| [`atimco`](atimco.md) | Atimco | Montérégie | sitemap XML + pages HTML | direct | 299/299 | 100 % | 99 % | 96 % | actif | 2026-08-22 17:19 |
20 +| [`atlas_immo`](atlas_immo.md) | Atlas société immobilière | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 0/0 | — | — | — | actif | 2026-08-22 17:19 |
21 +| [`aula`](aula.md) | AULA Lévis | Québec | API REST WordPress (wp-json) | direct | 68/70 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 |
22 +| [`axia`](axia.md) | Axia Appartements | Montréal | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 |
23 +| [`barnes_quebec`](barnes_quebec.md) | BARNES Québec (location) | Montréal | API JSON interne du site | direct | 101/110 | 100 % | 99 % | 100 % | actif | 2026-08-22 17:19 |
24 +| [`beaudoin`](beaudoin.md) | Société Beaudoin Immobilier | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 |
25 +| [`beaulieu_groupe`](beaulieu_groupe.md) | Beaulieu Groupe Immobilier (BGI) | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-22 17:19 |
26 +| [`bestlife`](bestlife.md) | Les Gestions Bestlife | Estrie | pages HTML (rendu serveur) | direct | 15/16 | 87 % | 100 % | 100 % | actif | 2026-08-22 17:19 |
27 +| [`boardwalk`](boardwalk.md) | Boardwalk REIT | Montréal | pages HTML (rendu serveur) | direct | 100/100 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:20 |
28 +| [`bons_locataires`](bons_locataires.md) | Bons Locataires | Grand Montréal | sitemap XML + pages HTML | direct | 17/17 | 100 % | 35 % | 94 % | actif | 2026-08-22 17:24 |
29 +| [`boreal_abitibi`](boreal_abitibi.md) | Constructions Boréal Abitibi | Abitibi-Témiscaming… | API admin-ajax (WordPress) | direct | 3/6 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 |
30 +| [`bribourg`](bribourg.md) | Bribourg | Québec | pages HTML (rendu serveur) | direct | 2/5 | 0 % | 0 % | 100 % | actif | 2026-08-22 17:24 |
31 +| [`brigil`](brigil.md) | Brigil | Outaouais | API JSON interne du site | direct | 42/42 | 98 % | 24 % | 100 % | actif | 2026-08-22 17:24 |
32 +| [`brio`](brio.md) | Les Immeubles Brio | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 |
33 +| [`brivia_1sp`](brivia_1sp.md) | Groupe Brivia (1 Square Phillips) | Montréal | API JSON interne du site | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:24 |
34 +| [`brochu`](brochu.md) | Groupe Immobilier Brochu | Québec | pages HTML (rendu serveur) | direct | 7/7 | 86 % | 57 % | 100 % | actif | 2026-08-22 17:24 |
35 +| [`cap_gestion`](cap_gestion.md) | CAP Gestion (CAP Immobilier) | Laurentides / Lanau… | pages HTML (rendu serveur) | direct | 122/123 | 98 % | 100 % | 100 % | actif | 2026-08-22 17:25 |
36 +| [`capital_rdr`](capital_rdr.md) | Gestion Capital RDR | Mauricie | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 |
37 +| [`capreit`](capreit.md) | CAPREIT | Québec | API admin-ajax (WordPress) | direct | 116/123 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 |
38 +| [`carat_immobilier`](carat_immobilier.md) | Carat Immobilier | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 3/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:25 |
39 +| [`centurion`](centurion.md) | Centurion / CP Living (Quartier QB) | Québec | API JSON interne du site | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-22 17:25 |
40 +| [`cite_immobilier`](cite_immobilier.md) | Cité Immobilier | Centre-du-Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 0 % | actif | 2026-08-22 17:25 |
41 +| [`cogir`](cogir.md) | Cogir Immobilier | Québec | pages HTML (rendu serveur) | direct | 282/300 | 92 % | 96 % | 100 % | actif | 2026-08-22 17:26 |
42 +| [`contraste`](contraste.md) | Contraste Immobilier | Québec | pages HTML (rendu serveur) | direct | 208/234 | 100 % | 86 % | 100 % | actif | 2026-08-22 17:27 |
43 +| [`copley`](copley.md) | Groupe Copley | Montréal | pages HTML (rendu serveur) | direct | 52/52 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 |
44 +| [`cosoltec`](cosoltec.md) | Cosoltec (Evado, Le Monroe, Natür) | Laurentides | API JSON interne du site | direct | 44/57 | 100 % | 80 % | 100 % | actif | 2026-08-22 17:27 |
45 +| [`courtemanche`](courtemanche.md) | Gestion Immobilière Courtemanche | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 0/0 | — | — | — | actif | 2026-08-22 17:27 |
46 +| [`cromwell`](cromwell.md) | Cromwell Management | Montréal | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 |
47 +| [`denux`](denux.md) | Groupe Denux | Montréal | API JSON interne du site | direct | 20/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 |
48 +| [`desmarais`](desmarais.md) | Immeubles Desmarais | Outaouais | pages HTML (rendu serveur) | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:27 |
49 +| [`desroches`](desroches.md) | Immeubles Claude Desroches | Montérégie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 50 % | actif | 2026-08-22 17:28 |
50 +| [`devcore`](devcore.md) | Devcore Group | Côte-Nord | API REST WordPress (wp-json) | direct | 14/14 | 0 % | 7 % | 100 % | actif | 2026-08-22 14:28 |
51 +| [`devimco`](devimco.md) | Devimco Appartements | Montréal | API JSON interne du site | direct | 238/576 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:28 |
52 +| [`dma_locago`](dma_locago.md) | DMA / Locago (Douville, Moffet & Associ… | Québec | pages HTML (rendu serveur) | direct | 116/126 | 28 % | 98 % | 100 % | actif | 2026-08-22 14:29 |
53 +| [`duproprio`](duproprio.md) | DuProprio (location) | Province | sitemap XML + pages HTML | direct | 3894/4109 | 100 % | 100 % | 99 % | actif | 2026-08-22 14:29 |
54 +| [`dynamic`](dynamic.md) | Gestion immobilière Dynamic | Estrie | pages HTML (rendu serveur) | direct | 44/55 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:18 |
55 +| [`edifia`](edifia.md) | Edifia Groupe Immobilier | Québec | pages HTML (rendu serveur) | direct | 177/185 | 100 % | 94 % | 100 % | actif | 2026-08-22 14:29 |
56 +| [`elements`](elements.md) | Quartier les Éléments | Québec | pages HTML (rendu serveur) | direct | 2/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:30 |
57 +| [`elite`](elite.md) | Elite Immobilier | Outaouais | pages HTML (rendu serveur) | direct | 12/12 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:30 |
58 +| [`elk`](elk.md) | ELK Property Management | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 67 % | 100 % | 100 % | actif | 2026-08-22 14:30 |
59 +| [`equinoxe_batimo`](equinoxe_batimo.md) | Batimo/EMD — Collection Équinoxe | Montréal | API admin-ajax (WordPress) | direct | 616/662 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:32 |
60 +| [`evoludev`](evoludev.md) | Groupe Evoludev | Lanaudière | pages HTML (rendu serveur) | direct | 134/134 | 100 % | 99 % | 100 % | actif | 2026-08-22 14:32 |
61 +| [`fb_marketplace`](fb_marketplace.md) | Facebook Marketplace (location) | Province | API JSON interne du site | direct | 2387/22526 | 23 % | 100 % | 100 % | actif | 2026-08-22 17:23 |
62 +| [`ferrovia`](ferrovia.md) | Ferrovia (condos locatifs Mirabel) | Laurentides | pages HTML (rendu serveur) | direct | 22/24 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:42 |
63 +| [`firma`](firma.md) | Groupe Firma | Montréal | API REST WordPress (wp-json) | direct | 12/12 | 75 % | 8 % | 100 % | actif | 2026-08-22 14:42 |
64 +| [`floria`](floria.md) | Gestion Floria | Estrie | pages HTML (rendu serveur) | direct | 21/21 | 100 % | 24 % | 95 % | actif | 2026-08-22 14:42 |
65 +| [`forsa`](forsa.md) | Gestion immobilière Forsa | Lanaudière | pages HTML (rendu serveur) | direct | 10/13 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 |
66 +| [`fournelle`](fournelle.md) | Appartements Fournelle (Groupe Fournell… | Centre-du-Québec | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:42 |
67 +| [`garic`](garic.md) | Garic Gestion Immobilière | Outaouais | API admin-ajax (WordPress) | direct | 45/54 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 |
68 +| [`gesteco`](gesteco.md) | Gesteco | Montérégie | API JSON interne du site | direct | 9/15 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:42 |
69 +| [`gestimmo_estrie`](gestimmo_estrie.md) | Gestimmo Estrie | Estrie | pages HTML (rendu serveur) | direct | 41/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
70 +| [`gestion_fauvel`](gestion_fauvel.md) | Gestion Fauvel | Centre-du-Québec | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-22 14:43 |
71 +| [`gestion_habitation`](gestion_habitation.md) | Gestion Habitation | Abitibi-Témiscaming… | sitemap XML + pages HTML | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
72 +| [`gestion_isr`](gestion_isr.md) | Gestion ISR | Centre-du-Québec | pages HTML (rendu serveur) | direct | 20/22 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
73 +| [`gestion_jdm`](gestion_jdm.md) | JDM Gestion immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 2/2 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:43 |
74 +| [`gestion_laprise`](gestion_laprise.md) | Gestion Laprise | Côte-Nord | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 14:43 |
75 +| [`gestion_legrand`](gestion_legrand.md) | Gestion Le Grand | Centre-du-Québec | API REST WordPress (wp-json) | direct | 5/5 | 40 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
76 +| [`gestion_montreal`](gestion_montreal.md) | Gestion Montréal | Montréal | pages HTML (rendu serveur) | direct | 23/26 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
77 +| [`gestion_tb`](gestion_tb.md) | Gestion TB (portail Appartements TB) | Centre-du-Québec | pages HTML (rendu serveur) | direct | 30/36 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
78 +| [`gestion_valco`](gestion_valco.md) | Gestion Valco | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 0 % | 50 % | actif | 2026-08-22 14:43 |
79 +| [`gestipro`](gestipro.md) | Gestipro | Québec | pages HTML (rendu serveur) | direct | 103/124 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
80 +| [`gia_t`](gia_t.md) | GIA-T — Gestion Immobilière Abitibi-Tém… | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 5/7 | 80 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
81 +| [`gimcote`](gimcote.md) | GIM Côté | Québec | pages HTML (rendu serveur) | direct | 86/91 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
82 +| [`gio`](gio.md) | Gestion Immobilière de l'Outaouais (GIO) | Outaouais | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
83 +| [`girescom`](girescom.md) | Girescom gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 40/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:43 |
84 +| [`girs`](girs.md) | GIRS — Gestion Immobilière de la Rive S… | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 8/8 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:43 |
85 +| [`gparadis`](gparadis.md) | GParadis | Québec | pages HTML (rendu serveur) | direct | 22/22 | 82 % | 0 % | 100 % | actif | 2026-08-22 14:43 |
86 +| [`groupe_dallaire`](groupe_dallaire.md) | Groupe Dallaire (Faubourg du Moulin) | Québec | API admin-ajax (WordPress) | Scrapfly | 255/259 | 100 % | 100 % | 100 % | actif (dégradé) | 2026-08-22 14:44 |
87 +| [`groupe_jacques`](groupe_jacques.md) | Groupe Jacques | Centre-du-Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 60 % | 100 % | actif | 2026-08-22 14:44 |
88 +| [`groupe_maurice`](groupe_maurice.md) | Le Groupe Maurice | Province | API REST WordPress (wp-json) | direct | 203/203 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:45 |
89 +| [`groupe_robin`](groupe_robin.md) | Groupe Robin | Mauricie | API admin-ajax (WordPress) | direct | 71/76 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:45 |
90 +| [`groupe_theoret`](groupe_theoret.md) | Groupe Théorêt (Gestion Immobilière) | Mauricie | pages HTML (rendu serveur) | direct | 24/24 | 83 % | 100 % | 0 % | actif | 2026-08-22 14:45 |
91 +| [`habitations_jeanne`](habitations_jeanne.md) | Les Habitations Jeanne | Côte-Nord | sitemap XML + pages HTML | direct | 14/14 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:45 |
92 +| [`habitations_sf`](habitations_sf.md) | Les Habitations SF (S&F Gestion) | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 43 % | 86 % | 100 % | actif | 2026-08-22 14:45 |
93 +| [`halfred`](halfred.md) | Halfred | Outaouais | pages HTML (rendu serveur) | direct | 165/171 | 93 % | 100 % | 100 % | actif | 2026-08-22 14:46 |
94 +| [`hazelview`](hazelview.md) | Hazelview Properties | Montréal | API JSON interne du site | direct | 6/6 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 |
95 +| [`headway`](headway.md) | La Corporation Headway | Québec | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:46 |
96 +| [`heafey`](heafey.md) | Groupe Heafey (Le We 2, Le We 3, Loggia… | Outaouais | API JSON interne du site | direct | 246/261 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 |
97 +| [`hestia`](hestia.md) | Hestia Groupe immobilier | Mauricie | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:46 |
98 +| [`huma`](huma.md) | HUMĀ Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 38/38 | 100 % | 0 % | 100 % | actif | 2026-08-22 14:47 |
99 +| [`immeubles_aeb`](immeubles_aeb.md) | Immeubles AEB | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 26/26 | 100 % | 100 % | 81 % | actif | 2026-08-22 14:47 |
100 +| [`immeubles_bc`](immeubles_bc.md) | Les Immeubles Beaulieu et Collin | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 20/30 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
101 +| [`immeubles_bois`](immeubles_bois.md) | Les Immeubles Bois | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 23/23 | 87 % | 0 % | 100 % | actif | 2026-08-22 14:47 |
102 +| [`immeubles_db`](immeubles_db.md) | Les Immeubles D.B. Busque-Massé | Estrie | pages HTML (rendu serveur) | direct | 13/13 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
103 +| [`immeubles_dcl`](immeubles_dcl.md) | Les Immeubles DCL | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 7/11 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
104 +| [`immeubles_guillot`](immeubles_guillot.md) | Les Immeubles Guillot | Québec | pages HTML (rendu serveur) | direct | 7/7 | 57 % | 0 % | 100 % | actif | 2026-08-22 14:47 |
105 +| [`immeubles_ouellet`](immeubles_ouellet.md) | Les Immeubles Vianney Ouellet & Fils | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
106 +| [`immeubles_pm`](immeubles_pm.md) | Les Immeubles PM | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
107 +| [`immnasr`](immnasr.md) | Les Immeubles Michel Nazair | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
108 +| [`immobilia`](immobilia.md) | Immobilia Rimouski | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 1/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
109 +| [`immogex`](immogex.md) | Immogex | Centre-du-Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
110 +| [`immomarketing`](immomarketing.md) | IMMOMARKETING (Immoappart) | Québec | pages HTML (rendu serveur) | direct | 83/94 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:47 |
111 +| [`immostar`](immostar.md) | Immostar | Québec | API REST WordPress (wp-json) | direct | 156/165 | 78 % | 99 % | 100 % | actif | 2026-08-22 14:48 |
112 +| [`info_logement`](info_logement.md) | Info-Logement | Lanaudière | pages HTML (rendu serveur) | direct | 56/64 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:48 |
113 +| [`interrent`](interrent.md) | InterRent REIT (CLV Group) | Montréal | pages HTML (rendu serveur) | direct | 194/215 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:48 |
114 +| [`jutras`](jutras.md) | Habitations Jutras | Centre-du-Québec | pages HTML (rendu serveur) | direct | 35/35 | 0 % | 60 % | 100 % | actif | 2026-08-22 14:48 |
115 +| [`kangalou`](kangalou.md) | Kangalou | Province | API JSON interne du site | direct | 7774/8413 | 100 % | 100 % | 99 % | actif | 2026-08-22 14:50 |
116 +| [`kass`](kass.md) | KASS Property Management | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 14:51 |
117 +| [`katasa`](katasa.md) | Groupe Katasa | Outaouais | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 14:51 |
118 +| [`kijiji`](kijiji.md) | Kijiji Québec (location) | Province | pages HTML (rendu serveur) | direct | 5314/9379 | 100 % | 97 % | 99 % | actif | 2026-08-22 15:00 |
119 +| [`la_cour`](la_cour.md) | La Cour Appartements | Québec | API REST WordPress (wp-json) | direct | 19/21 | 100 % | 100 % | 100 % | actif | 2026-08-22 17:19 |
120 +| [`laberge`](laberge.md) | Groupe Laberge | Québec | pages HTML (rendu serveur) | direct | 57/62 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:00 |
121 +| [`labonte`](labonte.md) | Gestion Labonté | Estrie | pages HTML (rendu serveur) | direct | 18/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:00 |
122 +| [`lachance`](lachance.md) | Les Entreprises Lachance | Estrie | sitemap XML + pages HTML | direct | 75/98 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:02 |
123 +| [`lacite`](lacite.md) | La Cité Gatineau (Adam Real Estate) | Outaouais | pages HTML (rendu serveur) | direct | 6/7 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:04 |
124 +| [`lafrance_mathieu`](lafrance_mathieu.md) | Lafrance & Mathieu | Québec | pages HTML (rendu serveur) | direct | 37/41 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:04 |
125 +| [`lakle`](lakle.md) | La Klé | Québec | API REST WordPress (wp-json) | direct | 43/49 | 100 % | 53 % | 100 % | actif | 2026-08-22 15:05 |
126 +| [`lambert`](lambert.md) | Société Immobilière Lambert | Mauricie | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 50 % | 100 % | actif | 2026-08-22 15:05 |
127 +| [`laureat_richard`](laureat_richard.md) | Logements Lauréat Richard | Estrie | pages HTML (rendu serveur) | direct | 23/23 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:05 |
128 +| [`le_baronet`](le_baronet.md) | Le Baronet | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 4/6 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
129 +| [`le_st_georges`](le_st_georges.md) | Le St-Georges | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
130 +| [`leclif`](leclif.md) | Le Clif | Québec | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
131 +| [`ledomaine`](ledomaine.md) | Les Habitations Le Domaine | Montréal | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
132 +| [`lelaureat`](lelaureat.md) | Résidences Le Lauréat | Estrie | pages HTML (rendu serveur) | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
133 +| [`lequerre`](lequerre.md) | Habitations L'Équerre | Estrie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:05 |
134 +| [`lespac`](lespac.md) | LesPAC (location) | Province | pages HTML (rendu serveur) | direct | 2242/2882 | 100 % | 97 % | 93 % | actif | 2026-08-22 15:08 |
135 +| [`leviu`](leviu.md) | Le VIU / VIU2 (Groupe Heafey) | Outaouais | pages HTML (rendu serveur) | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:08 |
136 +| [`location_di`](location_di.md) | Location DI (Groupe Sphère DI) | Mauricie / Lanaudiè… | pages HTML (rendu serveur) | direct | 9/16 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:08 |
137 +| [`location_saguenay`](location_saguenay.md) | Location Saguenay | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 21/21 | 76 % | 0 % | 100 % | actif | 2026-08-22 15:08 |
138 +| [`loftsmtl`](loftsmtl.md) | Lofts MTL | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 |
139 +| [`logement_mauricie`](logement_mauricie.md) | Logement Mauricie (regroupement de prop… | Mauricie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 |
140 +| [`logis_experts`](logis_experts.md) | Logis-Experts | Québec | API JSON interne du site | direct | 487/519 | 100 % | 100 % | 38 % | actif | 2026-08-22 15:09 |
141 +| [`logisbourg`](logisbourg.md) | Logisbourg | Québec | pages HTML (rendu serveur) | direct | 11/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 |
142 +| [`logisco`](logisco.md) | Logisco | Québec | pages HTML (rendu serveur) | direct | 160/184 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:09 |
143 +| [`logisma`](logisma.md) | Logisma | Québec | API REST WordPress (wp-json) | direct | 12/20 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:09 |
144 +| [`logispro`](logispro.md) | LogisPro Rimouski | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 4/4 | 100 % | 75 % | 100 % | actif | 2026-08-22 15:09 |
145 +| [`logisquebec`](logisquebec.md) | LogisQuébec | Province | sitemap XML + pages HTML | direct | 9668/10178 | 100 % | 99 % | 100 % | actif | 2026-08-22 15:14 |
146 +| [`lokalia`](lokalia.md) | Espaces Lokalia | Québec | API admin-ajax (WordPress) | direct | 130/141 | 100 % | 82 % | 100 % | actif | 2026-08-22 15:15 |
147 +| [`louer_ca`](louer_ca.md) | Louer.ca | Province | API GraphQL interne | direct | 4613/5908 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 |
148 +| [`louer_saguenay`](louer_saguenay.md) | Louer Saguenay | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 |
149 +| [`louis14`](louis14.md) | Quartier Louis Quatorze (Groupe Damco) | Québec | pages HTML (rendu serveur) | direct | 17/18 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 |
150 +| [`lr_gestion`](lr_gestion.md) | LR Gestion immobilière (LR Location) | Outaouais | pages HTML (rendu serveur) | direct | 106/116 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:21 |
151 +| [`luxuor`](luxuor.md) | Les Immeubles Luxuor | Saguenay–Lac-Saint-… | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 0 % | 100 % | actif | 2026-08-22 15:22 |
152 +| [`lynk_olymbec`](lynk_olymbec.md) | Lynk (Olymbec) | Montréal | pages HTML (rendu serveur) | Firecrawl | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:22 |
153 +| [`m_immobilier`](m_immobilier.md) | M Immobilier (location) | Montréal | pages HTML (rendu serveur) | direct | 186/207 | 58 % | 100 % | 100 % | actif | 2026-08-22 15:22 |
154 +| [`majestic`](majestic.md) | Le Majestic du Lac Boivin | Montérégie | pages HTML (rendu serveur) | direct | 1/1 | 100 % | 100 % | 0 % | actif | 2026-08-22 15:22 |
155 +| [`matinale`](matinale.md) | Gestion Matinale | Estrie | pages HTML (rendu serveur) | direct | 44/46 | 59 % | 100 % | 100 % | actif | 2026-08-22 15:23 |
156 +| [`may_bourg`](may_bourg.md) | Gestion May Bourg | Centre-du-Québec | API REST WordPress (wp-json) | direct | 6/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:23 |
157 +| [`medway`](medway.md) | Groupe Medway | Bas-Saint-Laurent | pages HTML (rendu serveur) | direct | 482/499 | 91 % | 100 % | 100 % | actif | 2026-08-22 15:24 |
158 +| [`mellem`](mellem.md) | Mellem (Groupe Mach) | Outaouais | sitemap XML + pages HTML | direct | 79/90 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:24 |
159 +| [`mercini`](mercini.md) | Groupe Mercini (Gestion Faleschini Merc… | Québec | pages HTML (rendu serveur) | direct | 45/53 | 96 % | 100 % | 100 % | actif | 2026-08-22 15:24 |
160 +| [`metcap`](metcap.md) | MetCap Living | Montréal | pages HTML (rendu serveur) | direct | 8/8 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:25 |
161 +| [`minto`](minto.md) | Minto Apartments | Montréal | pages HTML (rendu serveur) | direct | 19/20 | 84 % | 100 % | 100 % | actif | 2026-08-22 15:25 |
162 +| [`mkar`](mkar.md) | Gestion Immobilière MKAR | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 5/5 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:25 |
163 +| [`moderno`](moderno.md) | Moderno Construction | Lanaudière | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:25 |
164 +| [`mondev`](mondev.md) | Mondev | Montréal | pages HTML (rendu serveur) | direct | 43/49 | 47 % | 100 % | 100 % | actif | 2026-08-22 15:26 |
165 +| [`montagnais`](montagnais.md) | Le Montagnais, résidences étudiantes | Estrie | API admin-ajax (WordPress) | direct | 31/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:26 |
166 +| [`morin`](morin.md) | Constructions Morin | Estrie | pages HTML (rendu serveur) | direct | 6/7 | 83 % | 100 % | 100 % | actif | 2026-08-22 15:26 |
167 +| [`msi`](msi.md) | MSI Gestion immobilière | Québec | pages HTML (rendu serveur) | direct | 96/109 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 |
168 +| [`multi_logis`](multi_logis.md) | Multi-Logis | Côte-Nord | sitemap XML + pages HTML | direct | 27/27 | 100 % | 96 % | 70 % | actif | 2026-08-22 15:27 |
169 +| [`niddamour`](niddamour.md) | Nid d'Amour | Montréal | API JSON interne du site | direct | 14/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 |
170 +| [`novelo`](novelo.md) | Les Appartements Novelo | Saguenay–Lac-Saint-… | sitemap XML + pages HTML | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:27 |
171 +| [`oklouer`](oklouer.md) | OK Louer (location temporaire) | Québec | pages HTML (rendu serveur) | direct | 41/41 | 98 % | 100 % | 100 % | actif | 2026-08-22 15:27 |
172 +| [`omhm`](omhm.md) | OMHM — logements abordables | Montréal | pages HTML (rendu serveur) | direct | 3/4 | 67 % | 100 % | 0 % | actif | 2026-08-22 15:27 |
173 +| [`osgoode`](osgoode.md) | Osgoode Properties | Outaouais | API JSON interne du site | direct | 4/4 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 |
174 +| [`oxford`](oxford.md) | Appartements Oxford | Estrie | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:28 |
175 +| [`per`](per.md) | Les Immeubles Paul-E. Richard | Québec | pages HTML (rendu serveur) | direct | 3/3 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 |
176 +| [`picard`](picard.md) | Picard Immobilier | Québec | pages HTML (rendu serveur) | direct | 29/34 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 |
177 +| [`place_florimay`](place_florimay.md) | Place Florimay | Chaudière-Appalaches | API REST WordPress (wp-json) | direct | 0/0 | — | — | — | actif | 2026-08-22 15:28 |
178 +| [`plan_a`](plan_a.md) | Plan A Immobilier | Montréal | pages HTML (rendu serveur) | direct | 11/11 | 91 % | 91 % | 100 % | actif | 2026-08-22 15:28 |
179 +| [`progim`](progim.md) | Progim | Montréal | pages HTML (rendu serveur) | direct | 65/73 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:28 |
180 +| [`projection_immo`](projection_immo.md) | Projection Immobilière | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 1/1 | 100 % | 0 % | 100 % | actif | 2026-08-22 15:28 |
181 +| [`promenade_des_forts`](promenade_des_forts.md) | Promenade des Forts | Québec | pages HTML (rendu serveur) | direct | 2/2 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
182 +| [`proprio_direct`](proprio_direct.md) | Proprio Direct (location) | Province | API JSON interne du site | direct | 183/193 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
183 +| [`quanta`](quanta.md) | Gestion Quanta | Outaouais | pages HTML (rendu serveur) | direct | 2/2 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
184 +| [`quartier_mosaique`](quartier_mosaique.md) | Quartier Mosaïque (Constrobourg) | Québec | pages HTML (rendu serveur) | direct | 24/24 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
185 +| [`quartier_oree`](quartier_oree.md) | Quartier Orée | Chaudière-Appalaches | pages HTML (rendu serveur) | direct | 28/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
186 +| [`quartier_plus`](quartier_plus.md) | Le Quartier Plus | Chaudière-Appalaches | sitemap XML + pages HTML | direct | 59/59 | 100 % | 97 % | 100 % | actif | 2026-08-22 15:29 |
187 +| [`quartier_sila`](quartier_sila.md) | Quartier Sila | Québec | pages HTML (rendu serveur) | direct | 198/200 | 100 % | 26 % | 100 % | actif | 2026-08-22 15:29 |
188 +| [`realstar`](realstar.md) | Realstar | Montréal | API JSON interne du site | direct | 9/9 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:29 |
189 +| [`remax_quebec`](remax_quebec.md) | RE/MAX Québec (location) | Province | pages HTML (rendu serveur) | direct | 3227/3518 | 100 % | 100 % | 99 % | actif | 2026-08-22 15:35 |
190 +| [`rentals_ca`](rentals_ca.md) | Rentals.ca (Québec) | Province | API GraphQL interne | Scrapfly | 4439/5654 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:40 |
191 +| [`rentalys`](rentalys.md) | Rentalys | Montréal | pages HTML (rendu serveur) | direct | 10/10 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:41 |
192 192 | [`rivero`](rivero.md) | Le Rivero | Québec | pages HTML (rendu serveur) | direct | 0/214 | — | — | — | désactivé (disabled=True) | — |
193 −| [`roomies`](roomies.md) | Roomies.ca | Province | sitemap XML + pages HTML | direct | 277/278 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:50 |
194 −| [`roussin`](roussin.md) | Immeubles Roussin | Québec | pages HTML (rendu serveur) | direct | 36/36 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:50 |
195 −| [`royal_lepage`](royal_lepage.md) | Royal LePage (location) | Province | pages HTML (rendu serveur) | direct | 951/1043 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
196 −| [`savouet`](savouet.md) | Groupe Savouet | Estrie | pages HTML (rendu serveur) | direct | 15/17 | 93 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
197 −| [`sdg`](sdg.md) | SDG Immobilier | Québec | pages HTML (rendu serveur) | direct | 9/11 | 89 % | 0 % | 100 % | actif | 2026-08-18 04:53 |
198 −| [`sentinelle`](sentinelle.md) | La Sentinelle (Groupe Immobilier Brochu) | Québec | pages HTML (rendu serveur) | direct | 10/11 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
199 −| [`sgiq`](sgiq.md) | SGIQ (Société de gestion immobilière du… | Québec | pages HTML (rendu serveur) | direct | 147/147 | 99 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
200 −| [`shdm`](shdm.md) | SHDM | Montréal | API GraphQL interne | direct | 2/21 | 50 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
201 −| [`siagi`](siagi.md) | SIA Gestion Immobilière | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 0 % | actif | 2026-08-18 04:53 |
202 −| [`sibelanger`](sibelanger.md) | Société immobilière Bélanger | Québec | pages HTML (rendu serveur) | direct | 12/19 | 83 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
203 −| [`sig`](sig.md) | Société d'investissement Gilbert (résid… | Québec | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
204 −| [`simard`](simard.md) | Immeubles Simard | Québec | pages HTML (rendu serveur) | direct | 5/5 | 20 % | 40 % | 100 % | actif | 2026-08-18 04:53 |
205 −| [`simplex`](simplex.md) | Simplex Immobilier | Mauricie | API JSON interne du site | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-18 06:19 |
206 −| [`somex_saintnicolas`](somex_saintnicolas.md) | Somex Saint-Nicolas | Québec | pages HTML (rendu serveur) | direct | 145/145 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
207 −| [`souleymane`](souleymane.md) | Gestion Souleymane | Outaouais | pages HTML (rendu serveur) | direct | 13/14 | 92 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
208 −| [`stb_immobilier`](stb_immobilier.md) | STB Immobilier | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 11/11 | 91 % | 73 % | 100 % | actif | 2026-08-18 04:53 |
209 −| [`summum`](summum.md) | Gestion immobilière Summum | Laurentides | pages HTML (rendu serveur) | direct | 89/95 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:53 |
210 −| [`sutton`](sutton.md) | Groupe Sutton Québec (location) | Province | sitemap XML + pages HTML | direct | 1226/1393 | 70 % | 73 % | 73 % | actif | 2026-08-18 04:54 |
211 −| [`terater`](terater.md) | Les Constructions Tèratèr | Estrie | pages HTML (rendu serveur) | direct | 12/14 | 67 % | 100 % | 100 % | actif | 2026-08-18 04:54 |
212 −| [`terra`](terra.md) | Terra Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 29/51 | 100 % | 90 % | 100 % | actif | 2026-08-18 04:54 |
213 −| [`thrace`](thrace.md) | Gestions Thrace | Mauricie | sitemap XML + pages HTML | direct | 172/182 | 100 % | 66 % | 100 % | actif | 2026-08-18 04:54 |
214 −| [`tri_logis`](tri_logis.md) | Société immobilière Tri-Logis | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 0/1 | — | — | — | actif | 2026-08-18 04:54 |
193 +| [`roomies`](roomies.md) | Roomies.ca | Province | sitemap XML + pages HTML | direct | 281/306 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:46 |
194 +| [`roussin`](roussin.md) | Immeubles Roussin | Québec | pages HTML (rendu serveur) | direct | 36/36 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:46 |
195 +| [`royal_lepage`](royal_lepage.md) | Royal LePage (location) | Province | pages HTML (rendu serveur) | direct | 954/1138 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
196 +| [`savouet`](savouet.md) | Groupe Savouet | Estrie | pages HTML (rendu serveur) | direct | 15/17 | 93 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
197 +| [`sdg`](sdg.md) | SDG Immobilier | Québec | pages HTML (rendu serveur) | direct | 9/11 | 89 % | 0 % | 100 % | actif | 2026-08-22 15:48 |
198 +| [`sentinelle`](sentinelle.md) | La Sentinelle (Groupe Immobilier Brochu) | Québec | pages HTML (rendu serveur) | direct | 9/11 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
199 +| [`sgiq`](sgiq.md) | SGIQ (Société de gestion immobilière du… | Québec | pages HTML (rendu serveur) | direct | 147/147 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
200 +| [`shdm`](shdm.md) | SHDM | Montréal | API GraphQL interne | direct | 1/23 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
201 +| [`siagi`](siagi.md) | SIA Gestion Immobilière | Estrie | pages HTML (rendu serveur) | direct | 6/6 | 100 % | 100 % | 0 % | actif | 2026-08-22 15:48 |
202 +| [`sibelanger`](sibelanger.md) | Société immobilière Bélanger | Québec | pages HTML (rendu serveur) | direct | 12/22 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
203 +| [`sig`](sig.md) | Société d'investissement Gilbert (résid… | Québec | pages HTML (rendu serveur) | direct | 4/4 | 75 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
204 +| [`simard`](simard.md) | Immeubles Simard | Québec | pages HTML (rendu serveur) | direct | 5/5 | 20 % | 40 % | 100 % | actif | 2026-08-22 15:48 |
205 +| [`simplex`](simplex.md) | Simplex Immobilier | Mauricie | API JSON interne du site | direct | 3/3 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
206 +| [`somex_saintnicolas`](somex_saintnicolas.md) | Somex Saint-Nicolas | Québec | pages HTML (rendu serveur) | direct | 145/145 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
207 +| [`souleymane`](souleymane.md) | Gestion Souleymane | Outaouais | pages HTML (rendu serveur) | direct | 13/14 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
208 +| [`stb_immobilier`](stb_immobilier.md) | STB Immobilier | Bas-Saint-Laurent | sitemap XML + pages HTML | direct | 11/11 | 91 % | 73 % | 100 % | actif | 2026-08-22 15:48 |
209 +| [`summum`](summum.md) | Gestion immobilière Summum | Laurentides | pages HTML (rendu serveur) | direct | 89/97 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:48 |
210 +| [`sutton`](sutton.md) | Groupe Sutton Québec (location) | Province | sitemap XML + pages HTML | direct | 1200/1490 | 99 % | 100 % | 100 % | actif | 2026-08-22 15:49 |
211 +| [`terater`](terater.md) | Les Constructions Tèratèr | Estrie | pages HTML (rendu serveur) | direct | 12/14 | 67 % | 100 % | 100 % | actif | 2026-08-22 15:49 |
212 +| [`terra`](terra.md) | Terra Condos locatifs | Québec | pages HTML (rendu serveur) | direct | 28/51 | 100 % | 89 % | 100 % | actif | 2026-08-22 15:49 |
213 +| [`thrace`](thrace.md) | Gestions Thrace | Mauricie | sitemap XML + pages HTML | direct | 162/182 | 100 % | 65 % | 100 % | actif | 2026-08-22 15:49 |
214 +| [`tri_logis`](tri_logis.md) | Société immobilière Tri-Logis | Abitibi-Témiscaming… | pages HTML (rendu serveur) | direct | 0/1 | — | — | — | actif | 2026-08-22 15:49 |
215 215 | [`trudel`](trudel.md) | Trudel (Fleur de Lys, LGC) | Québec | pages HTML (rendu serveur) | direct | 0/30 | — | — | — | désactivé (disabled=True) | — |
216 −| [`trylon`](trylon.md) | Trylon Apartments | Montréal | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:54 |
217 −| [`ubee`](ubee.md) | Ubee (location) | Province | API JSON interne du site | direct | 243/246 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 |
218 −| [`uptimo`](uptimo.md) | Uptimo Gestion immobilière | Estrie | pages HTML (rendu serveur) | direct | 63/78 | 98 % | 98 % | 100 % | actif | 2026-08-18 04:55 |
219 −| [`urban_services`](urban_services.md) | Urban Services (Urban Tenant Solutions) | Outaouais | pages HTML (rendu serveur) | direct | 52/56 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 |
220 −| [`utile`](utile.md) | UTILE (logement étudiant) | Montréal | pages HTML (rendu serveur) | direct | 28/28 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:55 |
221 −| [`via_capitale`](via_capitale.md) | Via Capitale (location) | Province | pages HTML (rendu serveur) | Firecrawl | 196/213 | 55 % | 100 % | 100 % | actif | 2026-08-18 04:56 |
222 −| [`viridi`](viridi.md) | Le Viridi | Québec | pages HTML (rendu serveur) | direct | 16/17 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:56 |
223 −| [`wandji`](wandji.md) | Gestion Immobilière Wandji | Outaouais | API JSON interne du site | direct | 26/31 | 100 % | 100 % | 100 % | actif | 2026-08-18 04:56 |
224 −| [`werkliv`](werkliv.md) | Werkliv | Montréal | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-18 04:56 |
225 −| [`zumper`](zumper.md) | Zumper (Québec) | Province | API JSON interne du site | direct | 4345/4345 | 100 % | 100 % | 100 % | actif | 2026-08-18 06:19 |
216 +| [`trylon`](trylon.md) | Trylon Apartments | Montréal | pages HTML (rendu serveur) | direct | 7/7 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:49 |
217 +| [`ubee`](ubee.md) | Ubee (location) | Province | API JSON interne du site | direct | 243/249 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:49 |
218 +| [`uptimo`](uptimo.md) | Uptimo Gestion immobilière | Estrie | pages HTML (rendu serveur) | direct | 62/78 | 98 % | 98 % | 100 % | actif | 2026-08-22 15:50 |
219 +| [`urban_services`](urban_services.md) | Urban Services (Urban Tenant Solutions) | Outaouais | pages HTML (rendu serveur) | direct | 44/56 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
220 +| [`utile`](utile.md) | UTILE (logement étudiant) | Montréal | pages HTML (rendu serveur) | direct | 28/28 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
221 +| [`via_capitale`](via_capitale.md) | Via Capitale (location) | Province | pages HTML (rendu serveur) | Firecrawl | 192/217 | 54 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
222 +| [`viridi`](viridi.md) | Le Viridi | Québec | pages HTML (rendu serveur) | direct | 16/17 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
223 +| [`wandji`](wandji.md) | Gestion Immobilière Wandji | Outaouais | API JSON interne du site | direct | 26/31 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
224 +| [`werkliv`](werkliv.md) | Werkliv | Montréal | pages HTML (rendu serveur) | direct | 4/4 | 0 % | 100 % | 100 % | actif | 2026-08-22 15:50 |
225 +| [`zumper`](zumper.md) | Zumper (Québec) | Province | API JSON interne du site | direct | 4837/5095 | 100 % | 100 % | 100 % | actif | 2026-08-22 15:54 |
226 226
227 227 ## Entrées du registre sans module connecteur
228 228
modified docs/connecteurs/aalto.md +15 −9
@@ -1,8 +1,8 @@
1 1 # Aalto Suites (Zibi / Dream) — connecteur `aalto`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 26/33
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 24/35
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Aalto Suites (aaltosuites.ca — Zibi, Hull) Tours locatives Aalto et
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 26 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 24 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,21 +48,27 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:00 — 26 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 24 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 2.0 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 33 au total, **26 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 35 au total, **24 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 5 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:44 | database is locked |
68 +| 2026-08-18 15:37 | database is locked |
69 +| 2026-08-18 15:35 | database is locked |
70 +| 2026-08-18 15:28 | database is locked |
71 +| 2026-08-18 15:25 | database is locked |
66 72
67 73 Rejouer la source seule : `python3 run.py sync aalto` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='aalto' ORDER BY ts DESC LIMIT 5;`).
68 74
modified docs/connecteurs/acceslogis_gb.md +6 −5
@@ -1,6 +1,6 @@
1 1 # Accès Logis GB — connecteur `acceslogis_gb`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Lanaudière / Mauricie · Backend : direct · Annonces actives : 10/11
6 6
@@ -48,22 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:00 — 10 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 10 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **10 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 20 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 65 | Date | Message (sync_log) |
66 66 |---|---|
67 +| 2026-08-18 15:29 | database is locked |
67 68 | 2026-08-17 17:46 | HTTPSConnectionPool(host='acceslogisgb.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPSConnection(host='acceslogisgb.com'… |
68 69
69 70 Rejouer la source seule : `python3 run.py sync acceslogis_gb` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='acceslogis_gb' ORDER BY ts DESC LIMIT 5;`).
modified docs/connecteurs/agence_sherbrooke.md +27 −23
@@ -1,8 +1,8 @@
1 1 # Agence de location Sherbrooke (groupe Prestiplex) — connecteur `agence_sherbrooke`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 14/18
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 13/19
6 6
7 7 ## Description de la source
8 8
@@ -25,44 +25,48 @@ connecteur Agence de location Sherbrooke (agencedelocationsherbrooke.com) — le
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 14 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 13 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 −| `title` | Titre de l'annonce | 100 % | 905 Courcelette |
33 −| `address` | Adresse civique | 100 % | Rue de Courcelette, Mont-Bellevue |
34 −| `city` | Ville (normalisée) | 100 % | Sherbrooke |
35 −| `sector` | Secteur / quartier | 79 % | Les Nations |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 795 $ |
38 −| `bedrooms` | Chambres | 100 % | 1 |
32 +| `title` | Titre de l'annonce | 100 % | 89 des pins #4, East Angus |
33 +| `address` | Adresse civique | 100 % | 89, Rue des Pins |
34 +| `city` | Ville (normalisée) | 100 % | East Angus |
35 +| `sector` | Secteur / quartier | 69 % | — |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 +| `price` | Loyer mensuel ($) | 100 % | 895 $ |
38 +| `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 7 % | — |
40 +| `area_sqft` | Superficie (pi²) | 8 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 100 % | 45.388177 |
43 −| `description` | Description | 100 % | 3 ½ à louer – Disponible dès maintenant! Caractéristiques : 1 espace de stationnement inc… |
44 −| `images` | Photos (JSON) | 100 % | 8 photo(s) — https://agencedelocationsherbrooke.com/wp-content/uploads/2026/07/image-2026… |
45 −| `amenities` | Commodités (JSON) | 100 % | ["1 Chambre", "1 Salle de bain", "Chat permis", "Déneigement", "Entré laveuse/sécheuse"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "appliances": {"washer_dryer": tru… |
47 −| `url` | URL de l'annonce source | 100 % | https://agencedelocationsherbrooke.com/property/905-courcelette/ |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.4879551 |
43 +| `description` | Description | 100 % | À louer – 4 ½ au 89 des pins, East Angus Disponible dès maintenant – logement situé au 1e… |
44 +| `images` | Photos (JSON) | 100 % | 8 photo(s) — https://agencedelocationsherbrooke.com/wp-content/uploads/2026/04/image-2026… |
45 +| `amenities` | Commodités (JSON) | 100 % | ["2 Chambres", "1 Salle de bain", "Chat permis", "Déneigement", "Entré lave-vaisselle", "… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": false, "electricity": false, "hot_water": false}, "appliances"… |
47 +| `url` | URL de l'annonce source | 100 % | https://agencedelocationsherbrooke.com/property/89-des-pins-4-east-angus/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 14 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 13 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 18 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 19 au total, **13 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 3 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 16:05 | database is locked |
68 +| 2026-08-18 15:42 | database is locked |
69 +| 2026-08-18 15:38 | database is locked |
66 70
67 71 Rejouer la source seule : `python3 run.py sync agence_sherbrooke` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='agence_sherbrooke' ORDER BY ts DESC LIMIT 5;`).
68 72
modified docs/connecteurs/akelius.md +11 −9
@@ -1,8 +1,8 @@
1 1 # Akelius Montréal — connecteur `akelius`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 242/290
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 231/302
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Akelius Residential (rent.akelius.com) Page de recherche Canada rendu
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 242 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 231 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,21 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 242 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 231 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 290 au total, **242 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 302 au total, **231 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 16:06 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync akelius` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='akelius' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/alexcellence.md +4 −4
@@ -1,6 +1,6 @@
1 1 # Immeubles Alexcellence — connecteur `alexcellence`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 6/6
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 6 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 6 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 6 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 50 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/alias_appartements.md +8 −6
@@ -1,6 +1,6 @@
1 1 # Alias Appartements — connecteur `alias_appartements`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 1 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 1 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:30 | HTTPSConnectionPool(host='www.aliasappartements.com', port=443): Max retries exceeded with url: / (Caused by NewConnectionError("HTTPSConnection(host='www.alia… |
66 68
67 69 **Note du registre** : actif — 1 annonce « catalogue » à granularité projet (type 4½, à partir de 1575 $, caractéristiques, photos) ; disponibilités par formulaire seulement
68 70
modified docs/connecteurs/alouer_sherbrooke.md +8 −6
@@ -1,6 +1,6 @@
1 1 # À Louer Sherbrooke — connecteur `alouer_sherbrooke`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 1 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 1 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 0 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:49 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync alouer_sherbrooke` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='alouer_sherbrooke' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/app_urbains.md +13 −13
@@ -1,8 +1,8 @@
1 1 # Appartements Urbains — connecteur `app_urbains`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 18/21
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 17/21
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Appartements Urbains (appartementsurbains.ca — Ste-Foy, Montcalm, L
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 18 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 17 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -33,12 +33,12 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
33 33 | `address` | Adresse civique | 100 % | 1385 Rue Monseigneur-Plessis, Québec, QC |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 35 | `sector` | Secteur / quartier | 100 % | Limoilou |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 89 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 83 % | 1 630 $ |
38 −| `bedrooms` | Chambres | 89 % | 1 |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 88 % | 3½ |
37 +| `price` | Loyer mensuel ($) | 82 % | 1 630 $ |
38 +| `bedrooms` | Chambres | 88 % | 1 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 89 % | 915 |
41 −| `availability_date` | Date de disponibilité | 33 % | now |
40 +| `area_sqft` | Superficie (pi²) | 88 % | 915 |
41 +| `availability_date` | Date de disponibilité | 29 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.8175411 |
43 43 | `description` | Description | 100 % | Le Charlie est un projet de condos locatifs modernes et branchés. 90 unités construites p… |
44 44 | `images` | Photos (JSON) | 100 % | 16 photo(s) — https://lecharlie.ca/wp-content/uploads/vf-off-caneva-charlie-condo.jpg |
@@ -48,16 +48,16 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 18 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 17 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 21 au total, **18 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 83 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 21 au total, **17 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 82 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/appartements_rimouski.md +17 −11
@@ -1,8 +1,8 @@
1 1 # Appartements Rimouski (Immeubles DTM) — connecteur `appartements_rimouski`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 19/20
5 +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/24
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Appartements Rimouski (Immeubles DTM — appartementsrimouski.com, Ri
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 19 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 20 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -36,33 +36,39 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 95 % | 5½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 750 $ |
38 38 | `bedrooms` | Chambres | 100 % | 3 |
39 −| `bathrooms` | Salles de bain | 89 % | 1 |
39 +| `bathrooms` | Salles de bain | 85 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 48.3760046 |
43 43 | `description` | Description | 100 % | Nous avons un beau logement 5 1/2 neuf de qualité supérieure à vous proposer, parfait pou… |
44 44 | `images` | Photos (JSON) | 100 % | 13 photo(s) — https://www.appartementsrimouski.com/wp-content/uploads/sites/334/2026/08/i… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["3 chambre(s)", "1 SDB"] |
46 −| `details` | Détails additionnels (JSON) | 89 % | {"inclusions": {"heating": false, "electricity": false, "internet": true}, "appliances": … |
46 +| `details` | Détails additionnels (JSON) | 85 % | {"inclusions": {"heating": false, "electricity": false, "internet": true}, "appliances": … |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.appartementsrimouski.com/logements/5-1-2-neuf-dans-le-secteur-du-bic |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 19 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 20 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 20 au total, **19 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 24 au total, **20 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 8 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-22 13:06 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… |
68 +| 2026-08-22 04:40 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… |
69 +| 2026-08-21 11:30 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… |
70 +| 2026-08-21 08:34 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… |
71 +| 2026-08-20 21:18 | HTTPSConnectionPool(host='www.appartementsrimouski.com', port=443): Max retries exceeded with url: /choisir-mon-logement (Caused by SSLError(SSLEOFError(8, '[S… |
66 72
67 73 Rejouer la source seule : `python3 run.py sync appartements_rimouski` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='appartements_rimouski' ORDER BY ts DESC LIMIT 5;`).
68 74
modified docs/connecteurs/ascensio.md +5 −5
@@ -1,6 +1,6 @@
1 1 # Groupe Ascensio — connecteur `ascensio`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 9/10
6 6
@@ -32,7 +32,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
32 32 | `title` | Titre de l'annonce | 100 % | 3½ Logement 301 — 20 Bryant |
33 33 | `address` | Adresse civique | 44 % | 20 Bryant |
34 34 | `city` | Ville (normalisée) | 100 % | Sherbrooke |
35 −| `sector` | Secteur / quartier | 100 % | Les Nations - Arrondissement Jacques-Cartier (Nord) |
35 +| `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 425 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 9 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 9 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 10 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 44 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/atimco.md +5 −5
@@ -1,6 +1,6 @@
1 1 # Atimco — connecteur `atimco`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 299/299
6 6
@@ -48,17 +48,17 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : —
52 −- **Dernier passage OK** : 2026-08-18 06:19 — 299 trouvées, +299 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 299 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 299 au total, **299 actives**
59 −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 96 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 1, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 45, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/atlas_immo.md +8 −5
@@ -1,6 +1,6 @@
1 1 # Atlas société immobilière — connecteur `atlas_immo`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 0/0
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 0 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 0 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
@@ -58,11 +58,14 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
58 58 - **Annonces en BD** : 0 au total, **0 actives**
59 59 - **Première ingestion** : — · **Dernière observation** : —
60 60 - **Complétude clé (actives)** : GPS — · prix — · photos — · description —
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-19 08:08 | HTTPConnectionPool(host='www.atlasimmo.ca', port=80): Read timed out. (read timeout=30) |
68 +| 2026-08-18 15:32 | HTTPConnectionPool(host='www.atlasimmo.ca', port=80): Read timed out. (read timeout=30) |
66 69
67 70 **Note du registre** : actif — inventaire à 0 le 2026-08-09 (parc plein, le site ne rend des cartes que pour les logements libres) ; fixture rejouant l'état réel du 2023-02-24 via la Wayback Machine
68 71
modified docs/connecteurs/aula.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 68/70
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 68 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 70 au total, **68 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **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
62 62
modified docs/connecteurs/axia.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/barnes_quebec.md +16 −22
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 101/103
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 101/110
6 6
7 7 ## Description de la source
8 8
@@ -31,15 +31,15 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | 6675 Rue St-Urbain #302 Montréal (Rosemont/La Petite-Patrie) (Montréal) |
33 33 | `address` | Adresse civique | 100 % | 6675 Rue St-Urbain #302 |
34 −| `city` | Ville (normalisée) | 99 % | Montréal |
35 −| `sector` | Secteur / quartier | 72 % | Rosemont/La Petite-Patrie |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 96 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 98 % | 2 600 $ |
38 −| `bedrooms` | Chambres | 96 % | 2 |
39 −| `bathrooms` | Salles de bain | 97 % | 1 |
34 +| `city` | Ville (normalisée) | 96 % | Montréal |
35 +| `sector` | Secteur / quartier | 73 % | Rosemont/La Petite-Patrie |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 97 % | 4½ |
37 +| `price` | Loyer mensuel ($) | 99 % | 2 600 $ |
38 +| `bedrooms` | Chambres | 97 % | 2 |
39 +| `bathrooms` | Salles de bain | 98 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 71 % | 775 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 99 % | 45.53074 |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.53074 |
43 43 | `description` | Description | 100 % | La PETITE-ITALIE et un dernier étage !! Face aux studios Mila et Behaviour Interactive, c… |
44 44 | `images` | Photos (JSON) | 100 % | 42 photo(s) — https://barnes-quebec.com/wp-content/uploads/2026/08/24043507-addcb7eda4967… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,28 +48,22 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 101 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 101 trouvées, +0 / ~2 / -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
56 56
57 57 ## Volumétrie & complétude
58 58
59 −- **Annonces en BD** : 103 au total, **101 actives**
60 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
61 −- **Complétude clé (actives)** : GPS 99 % · prix 98 % · photos 100 % · description 100 %
62 −- **Runs journalisés (60 derniers)** : 60, dont 12 en erreur
59 +- **Annonces en BD** : 110 au total, **101 actives**
60 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
61 +- **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 100 % · description 100 %
62 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
64 64 ## Erreurs connues & dépannage
65 65
66 −| Date | Message (sync_log) |
67 −|---|---|
68 −| 2026-08-15 19:18 | 403 Client Error: Forbidden for url: https://hcw55viqnm-dsn.algolia.net/1/indexes/quebec_all/query |
69 −| 2026-08-15 17:25 | 403 Client Error: Forbidden for url: https://hcw55viqnm-dsn.algolia.net/1/indexes/quebec_all/query |
70 −| 2026-08-15 15:31 | 403 Client Error: Forbidden for url: https://hcw55viqnm-dsn.algolia.net/1/indexes/quebec_all/query |
71 −| 2026-08-15 14:56 | 403 Client Error: Forbidden for url: https://hcw55viqnm-dsn.algolia.net/1/indexes/quebec_all/query |
72 −| 2026-08-15 12:58 | 403 Client Error: Forbidden for url: https://hcw55viqnm-dsn.algolia.net/1/indexes/quebec_all/query |
66 +Aucune erreur dans les 60 derniers runs journalisés.
73 67
74 68 Rejouer la source seule : `python3 run.py sync barnes_quebec` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='barnes_quebec' ORDER BY ts DESC LIMIT 5;`).
75 69
modified docs/connecteurs/beaudoin.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 12 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 12 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:54 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync beaudoin` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='beaudoin' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/beaulieu_groupe.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 4/4
5 +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 5/5
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Beaulieu Groupe Immobilier / BGI (beaulieugroupeimmobilier.com — Ri
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 4 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 5 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 4 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 5 au total, **5 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/bestlife.md +12 −12
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 12/13
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 15/16
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Les Gestions Bestlife (lesgestionsbestlife.com) — 500+ portes en ge
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 12 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 15 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -36,10 +36,10 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 150 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 −| `bathrooms` | Salles de bain | 8 % | — |
40 −| `area_sqft` | Superficie (pi²) | 8 % | — |
41 −| `availability_date` | Date de disponibilité | 92 % | now |
42 −| `lat` | GPS (lat/lng) | 92 % | 45.3896965 |
39 +| `bathrooms` | Salles de bain | 7 % | — |
40 +| `area_sqft` | Superficie (pi²) | 20 % | — |
41 +| `availability_date` | Date de disponibilité | 93 % | now |
42 +| `lat` | GPS (lat/lng) | 87 % | 45.3896965 |
43 43 | `description` | Description | 0 % | — |
44 44 | `images` | Photos (JSON) | 100 % | 7 photo(s) — https://i0.wp.com/lesgestionsbestlife.com/wp-content/uploads/2026/08/exposio… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["1 stationnement", "Entrée lave-vaisselle", "Entrée laveuse/sécheuse", "Thermopompe", "C… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 12 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 13 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 92 % · prix 100 % · photos 100 % · description 0 %
58 +- **Annonces en BD** : 16 au total, **15 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 87 % · prix 100 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/boardwalk.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 100/100
6 6
@@ -38,7 +38,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 97 % | — |
41 −| `availability_date` | Date de disponibilité | 53 % | now |
41 +| `availability_date` | Date de disponibilité | 52 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.531969 |
43 43 | `description` | Description | 100 % | Située sur la rive sud du fleuve Saint-Laurent en face du centre-ville de Montréal, la pr… |
44 44 | `images` | Photos (JSON) | 100 % | 7 photo(s) — https://www.bwalk.com/hubfs/001%20Organized%20Web%20Photos/Domaine%20dIbervi… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:02 — 100 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:20 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 100 au total, **100 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/bons_locataires.md +17 −15
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Grand Montréal · Backend : direct · Annonces actives : 14/14
5 +**État : actif** · Région : Grand Montréal · Backend : direct · Annonces actives : 17/17
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ Bons Locataires (bonslocataires.com) — agence de location Montréal/Laval/Long
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 14 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 17 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -34,35 +34,37 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
34 34 | `city` | Ville (normalisée) | 100 % | Laval |
35 35 | `sector` | Secteur / quartier | 100 % | Laval-des-Rapides |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 1½ |
37 −| `price` | Loyer mensuel ($) | 21 % | — |
37 +| `price` | Loyer mensuel ($) | 35 % | — |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 −| `availability_date` | Date de disponibilité | 36 % | — |
41 +| `availability_date` | Date de disponibilité | 47 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.5498359 |
43 −| `description` | Description | 93 % | — |
44 −| `images` | Photos (JSON) | 93 % | 1 photo(s) — https://www.bonslocataires.com/wp-content/uploads/2015/03/laval-1.jpg |
43 +| `description` | Description | 94 % | — |
44 +| `images` | Photos (JSON) | 94 % | 1 photo(s) — https://www.bonslocataires.com/wp-content/uploads/2015/03/laval-1.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 93 % | {} |
46 +| `details` | Détails additionnels (JSON) | 94 % | {} |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.bonslocataires.com/laval-des-rapides-1½-600 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.3 h
52 −- **Dernier passage OK** : 2026-08-18 06:03 — 14 trouvées, +0 / ~0 / -0
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
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** : 14 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 21 % · photos 93 % · description 93 %
61 −- **Runs journalisés (60 derniers)** : 8, dont 0 en erreur
58 +- **Annonces en BD** : 17 au total, **17 actives**
59 +- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 35 % · photos 94 % · description 94 %
61 +- **Runs journalisés (60 derniers)** : 51, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:59 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync bons_locataires` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='bons_locataires' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/boreal_abitibi.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/5
5 +**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/6
6 6
7 7 ## Description de la source
8 8
@@ -37,10 +37,10 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 550 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 0 % | — |
40 +| `area_sqft` | Superficie (pi²) | 33 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 48.0977193 |
43 −| `description` | Description | 100 % | Proximité des écoles, des épiceries, des dépanneurs, du centre-ville. |
43 +| `description` | Description | 67 % | Proximité des écoles, des épiceries, des dépanneurs, du centre-ville. |
44 44 | `images` | Photos (JSON) | 100 % | 10 photo(s) — https://constructionsborealabitibi.com/wp-content/uploads/2020/09/dscn1016-… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["2 chambre(s)", "1 salle(s) de bain", "1 garage/stationnement", "Non meublé, non chauffé… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": false, "electricity": false}, "appliances": {"washer_dryer_hoo… |
@@ -48,16 +48,16 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:03 — 3 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:24 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 5 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 6 au total, **3 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 67 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/bribourg.md +20 −20
@@ -1,8 +1,8 @@
1 1 # Bribourg — connecteur `bribourg`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/2
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/5
6 6
7 7 ## Description de la source
8 8
@@ -29,35 +29,35 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 −| `title` | Titre de l'annonce | 100 % | 3 ½ à louer (Vanier) – Dès aujourd'hui |
33 −| `address` | Adresse civique | 100 % | 510, avenue Claude-Martin, Québec (Vanier), G1M 1T3 |
32 +| `title` | Titre de l'annonce | 100 % | Quoi faire à Beauport à proximité de nos appartements ? |
33 +| `address` | Adresse civique | 0 % | — |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 100 % | Vanier |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 860 $ |
38 −| `bedrooms` | Chambres | 100 % | 1 |
35 +| `sector` | Secteur / quartier | 0 % | — |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | Quoi faire à Beauport à proximité de nos appartements ? |
37 +| `price` | Loyer mensuel ($) | 0 % | — |
38 +| `bedrooms` | Chambres | 0 % | — |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 −| `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 100 % | 46.8228015 |
43 −| `description` | Description | 100 % | Adresse : 510, avenue Claude-Martin, Québec (Vanier) Loyer : 860 $ par mois Disponibilité… |
44 −| `images` | Photos (JSON) | 100 % | 7 photo(s) — https://dropinblog.net/34265643/files/510-avenue-claude-martin-vanier-quebec… |
45 −| `amenities` | Commodités (JSON) | 100 % | ["3 ½", "860 $ par mois", "Chauffé / éclairé / eau chaude", "Secteur de Vanier"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true}, "balcony": true… |
47 −| `url` | URL de l'annonce source | 100 % | https://bribourg.com/Logements-a-louer.php?p=lol |
41 +| `availability_date` | Date de disponibilité | 0 % | — |
42 +| `lat` | GPS (lat/lng) | 0 % | — |
43 +| `description` | Description | 100 % | Vous résidez dans le secteur de Beauport ou vous envisagez de vous y installer? Vous cher… |
44 +| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://dropinblog.net/34265643/files/beauport.jpg |
45 +| `amenities` | Commodités (JSON) | 0 % | [] |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"contact": {"phone": "418-626-4613", "email": "bribourg@videotron.ca"}} |
47 +| `url` | URL de l'annonce source | 100 % | https://bribourg.com/Logements-a-louer.php?p=tourn%C3%A9e |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:03 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:24 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 5 au total, **2 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 0 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/brigil.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 42/42
6 6
@@ -36,7 +36,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 24 % | 1 656 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 −| `bathrooms` | Salles de bain | 5 % | — |
39 +| `bathrooms` | Salles de bain | 7 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 26 % | 1252 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 42 | `lat` | GPS (lat/lng) | 98 % | 45.4021379 |
@@ -48,15 +48,15 @@ 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) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 42 trouvées, +0 / ~2 / -0
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
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 58 - **Annonces en BD** : 42 au total, **42 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 98 % · prix 24 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/brio.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 3/3
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 3 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:24 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/brivia_1sp.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 3/3
6 6
@@ -48,21 +48,23 @@ 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) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 3 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:24 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 16:01 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync brivia_1sp` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='brivia_1sp' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/brochu.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 7 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:24 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 86 % · prix 57 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/cap_gestion.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Laurentides / Lanaudière · Backend : direct · Annonces actives : 122/122
5 +**État : actif** · Région : Laurentides / Lanaudière · Backend : direct · Annonces actives : 122/123
6 6
7 7 ## Description de la source
8 8
@@ -37,8 +37,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 445 $ |
38 38 | `bedrooms` | Chambres | 100 % | 3 |
39 39 | `bathrooms` | Salles de bain | 99 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 85 % | 1208 |
41 −| `availability_date` | Date de disponibilité | 94 % | 2026-11-01 |
40 +| `area_sqft` | Superficie (pi²) | 84 % | 1208 |
41 +| `availability_date` | Date de disponibilité | 95 % | 2026-11-01 |
42 42 | `lat` | GPS (lat/lng) | 98 % | 46.0689009 |
43 43 | `description` | Description | 100 % | 5 1/2 disponible pour le 1er novembre PROMO: 1ER MOIS GRATUIT ** Situé au 123 Demontigny,… |
44 44 | `images` | Photos (JSON) | 100 % | 20 photo(s) — https://capgestion.ca/wp-content/uploads/2026/07/exterieur-scaled.jpg |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 122 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 122 au total, **122 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 123 au total, **122 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 98 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/capital_rdr.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 4 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/capreit.md +13 −11
@@ -1,8 +1,8 @@
1 1 # CAPREIT — connecteur `capreit`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 117/122
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 116/123
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur CAPREIT (capreit.ca) Flux JSON officiel du moteur de recherche (admin
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 117 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 116 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 % | Faubourg de la Pointe et Domaine Laudance — 1 1/2 |
33 33 | `address` | Adresse civique | 100 % | 900, 920 Laudance, 3780, 3786, 3792, 3793, 3798 Le Marié, 3700, 3706 des Compagnons, Vill… |
34 −| `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 100 % | Laudance et Campanile (Pointe-de-Sainte-Foy) |
34 +| `city` | Ville (normalisée) | 94 % | Québec |
35 +| `sector` | Secteur / quartier | 65 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 1½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 930 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
@@ -48,21 +48,23 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 117 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 116 trouvées, +0 / ~16 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 122 au total, **117 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 123 au total, **116 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 16:02 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync capreit` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='capreit' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/carat_immobilier.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 3 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/centurion.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 4/4
6 6
@@ -44,19 +44,19 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
44 44 | `images` | Photos (JSON) | 100 % | 6 photo(s) — https://assets.rentsync.com/centurion/images/gallery/full/1651515067110_qb-u… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["In-suite laundry", "Dishwasher", "Microwave", "Air conditioner", "Balcony"] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true, "stove": true, "dishwasher": true, "washer_dryer": true},… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.cpliving.com/apartments/quartier-qb |
47 +| `url` | URL de l'annonce source | 100 % | https://cpliving.com/apartments/quartier-qb |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 4 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 75 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/cite_immobilier.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:05 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:25 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 0 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/cogir.md +9 −9
@@ -1,8 +1,8 @@
1 1 # Cogir Immobilier — connecteur `cogir`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 285/300
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 282/300
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Cogir Immobilier (cogir.net) Page liste « gestion-immeubles-resident
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 285 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 282 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 |---|---|---|---|
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 96 % | now |
42 −| `lat` | GPS (lat/lng) | 89 % | 46.8202665 |
42 +| `lat` | GPS (lat/lng) | 92 % | 46.8202665 |
43 43 | `description` | Description | 100 % | Découvrez ce milieu de vie distinctif conçu pour vous : Inspirée des plus grands complexe… |
44 44 | `images` | Photos (JSON) | 100 % | 12 photo(s) — https://www.cogir.net/DATA/PHOTO/22326_aprinc.jpg |
45 45 | `amenities` | Commodités (JSON) | 57 % | ["Patinoire extérieure", "Air climatisé", "Balcons", "Piscine extérieure", "BBQ", "Gym", … |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 285 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:26 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 300 au total, **285 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 89 % · prix 96 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 300 au total, **282 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 92 % · prix 96 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/contraste.md +8 −8
@@ -1,8 +1,8 @@
1 1 # Contraste Immobilier — connecteur `contraste`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 221/234
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 208/234
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur Contraste Immobilier (contrasteimmobilier.ca — Beauport, Limoilou,
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 221 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 208 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 % | Agora Phase 2 — unité 206 |
33 33 | `address` | Adresse civique | 100 % | 4855 rue de L'Escarpement, Québec, Québec, G3K0N8 |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 55 % | Québec |
35 +| `sector` | Secteur / quartier | 54 % | Québec |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 86 % | 1 381 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 221 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 234 au total, **221 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 234 au total, **208 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 86 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/copley.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 52/52
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 52 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 52 au total, **52 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/cosoltec.md +16 −16
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 44/52
5 +**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 44/57
6 6
7 7 ## Description de la source
8 8
9 −connecteur Cosoltec (cosoltec.com — projets locatifs Evado à Sainte-Thérèse, Le Monroe à Blainville, Natür à Saint-Jérôme). Les sites vitrines (evado.ca, lemonroe.ca, naturcondos.ca) affichent leurs unités via le widget Planpoint : on interroge la même API JSON publique (app.planpoint.io/api/{groups,projects}/find, POST namespace+hostName, 3 requêtes/sync) — prix mensuel, pi², chambres, statut, plans et photos par unité ; seules les unités « Available » sont retenues.
9 +connecteur Cosoltec (cosoltec.com — projets locatifs Evado à Sainte-Thérèse, Le Monroe à Blainville, Natür à Saint-Jérôme). Les sites vitrines (evado.ca, lemonroe.ca, naturcondos.ca) affichent leurs unités via le widget Planpoint : on interroge la même API JSON publique (app.planpoint.io/api/{groups,projects}/find, POST namespace+hostName, 3 requêtes/sync) — prix mensuel, pi², chambres, statut, plans et photos par unité, inclusions (inclusionsArr, clé « fr »), date de livraison et galerie du projet ; seules les unités « Available » sont retenues. Les unités Natür n'ont AUCUN prix chez la source (price null, le site n'en affiche pas non plus) — rien d'inventé. La description est composée du texte de présentation de la vitrine (meta description + 1er paragraphe, 1 requête par vitrine) et des faits structurés de l'unité.
10 10
11 11 - **Site** : https://www.cosoltec.com/fr
12 12 - **Page des annonces** : https://www.cosoltec.com/fr/espaces-disponibles
@@ -17,10 +17,10 @@ connecteur Cosoltec (cosoltec.com — projets locatifs Evado à Sainte-Thérèse
17 17
18 18 - **Type d'accès** : API JSON interne du site
19 19 - **Endpoint de base** : https://app.planpoint.io/api
20 −- **URLs de départ (constantes du module)** : https://app.planpoint.io/api · https://www.evado.ca/plans · https://www.lemonroe.ca/plans · https://www.naturcondos.ca/
20 +- **URLs de départ (constantes du module)** : https://app.planpoint.io/api · https://www.evado.ca/plans · https://www.evado.ca/ · https://www.lemonroe.ca/plans
21 21 - **Authentification** : aucune — contenu public
22 22 - **Pagination** : pagination par numéro de page
23 −- **Backend anti-bot / rendu** : requests direct
23 +- **Backend anti-bot / rendu** : requests direct (session UA LouKaBot, throttling poli)
24 24 - **Politesse** : 0.8 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)`
25 25
26 26 ## Champs récupérés → schéma cible
@@ -30,7 +30,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | Evado — Unité 204 |
33 −| `address` | Adresse civique | 98 % | 350 Place Fabien-Drapeau |
33 +| `address` | Adresse civique | 100 % | 350 Place Fabien-Drapeau |
34 34 | `city` | Ville (normalisée) | 100 % | Sainte-Thérèse |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
@@ -38,26 +38,26 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 693 |
41 −| `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 98 % | 45.6501510049674 |
43 −| `description` | Description | 0 % | — |
44 −| `images` | Photos (JSON) | 100 % | 3 photo(s) — https://storage.googleapis.com/planpoint-bucket/imageprjett-1739155435539.we… |
45 −| `amenities` | Commodités (JSON) | 0 % | [] |
41 +| `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.6501510049674 |
43 +| `description` | Description | 100 % | Unité 204 du projet Evado à Sainte-Thérèse. Modèle d, étage 2, 693 pi², 1 salle(s) de bai… |
44 +| `images` | Photos (JSON) | 100 % | 4 photo(s) — https://storage.googleapis.com/planpoint-bucket/imageprjett-1739155435539.we… |
45 +| `amenities` | Commodités (JSON) | 95 % | [] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"bathrooms": 1, "floor": "2", "furnished": false} |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.evado.ca/plans |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 44 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 52 au total, **44 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 98 % · prix 80 % · photos 100 % · description 0 %
58 +- **Annonces en BD** : 57 au total, **44 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 80 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/courtemanche.md +3 −3
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 0/0
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 0 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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 +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:07 — 12 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 12 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/denux.md +8 −8
@@ -1,8 +1,8 @@
1 1 # Groupe Denux — connecteur `denux`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 18/18
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 20/20
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur Groupe Denux (groupedenux.com) Portefeuille pancanadien (plateforme R
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 18 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 20 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | ROYAL-URBAIN — Studio |
33 33 | `address` | Adresse civique | 100 % | 3777 ST-URBAIN |
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 −| `sector` | Secteur / quartier | 61 % | Plateau Mont-Royal |
35 +| `sector` | Secteur / quartier | 65 % | Plateau Mont-Royal |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Studio |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 025 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
@@ -48,15 +48,15 @@ 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) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:08 — 18 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 20 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 18 au total, **18 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 20 au total, **20 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/desmarais.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 14/14
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:08 — 14 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:27 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/desroches.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 6/6
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:08 — 6 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:28 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 6 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 50 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/devcore.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 14/14
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:08 — 14 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:28 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 7 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/devimco.md +19 −19
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 480/575
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 238/576
6 6
7 7 ## Description de la source
8 8
@@ -25,38 +25,38 @@ 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 480 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 238 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 % | Alexander Phase 1 Appartements — unité 309 |
33 −| `address` | Adresse civique | 100 % | 2255 René-Lévesque Blvd W, Montreal |
32 +| `title` | Titre de l'annonce | 100 % | St Ann Appartements — unité 102 |
33 +| `address` | Adresse civique | 100 % | 244 Rue Rioux, Montréal |
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 −| `sector` | Secteur / quartier | 100 % | Centre-ville |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 2 130 $ |
38 −| `bedrooms` | Chambres | 84 % | 1 |
35 +| `sector` | Secteur / quartier | 100 % | Griffintown |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | Maison |
37 +| `price` | Loyer mensuel ($) | 100 % | 3 200 $ |
38 +| `bedrooms` | Chambres | 90 % | — |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 100 % | 619 |
41 −| `availability_date` | Date de disponibilité | 100 % | 2026-10-01 |
42 −| `lat` | GPS (lat/lng) | 100 % | 45.48885054534291 |
43 −| `description` | Description | 100 % | Étage 3 — Centre Ville |
44 −| `images` | Photos (JSON) | 100 % | 13 photo(s) — https://storage.googleapis.com/planpoint-bucket/Alexander-Piscineinterieur-… |
40 +| `area_sqft` | Superficie (pi²) | 100 % | 1104 |
41 +| `availability_date` | Date de disponibilité | 100 % | now |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.491837616036975 |
43 +| `description` | Description | 100 % | Étage 1 — Ottawa / Séminaire |
44 +| `images` | Photos (JSON) | 100 % | 10 photo(s) — https://storage.googleapis.com/planpoint-bucket/LUXImageSolution-StAnnAppar… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["internet", "electricity", "heating", "balcony", "stove", "refrigerator", "dishwasher", … |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "appliances": {"… |
47 −| `url` | URL de l'annonce source | 100 % | https://devimco.com/appartements/a-louer/montreal/centre-ville/alexander-appartements |
47 +| `url` | URL de l'annonce source | 100 % | https://devimco.com/appartements/a-louer/montreal/griffintown/st-ann-appartements |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:09 — 480 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:28 — 238 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 575 au total, **480 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 576 au total, **238 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/dma_locago.md +10 −10
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 118/124
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 116/126
6 6
7 7 ## Description de la source
8 8
@@ -25,12 +25,12 @@ connecteur DMA / Locago (Douville, Moffet & Associés) locago.ca présente les c
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 118 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 116 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 % | Le WOW — Unité 016 |
33 −| `address` | Adresse civique | 29 % | 930, rue Samuel-King, Québec |
33 +| `address` | Adresse civique | 28 % | 930, rue Samuel-King, Québec |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 35 | `sector` | Secteur / quartier | 100 % | Sainte-Foy |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 98 % | 3½ |
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 98 % | 936 |
41 41 | `availability_date` | Date de disponibilité | 89 % | now |
42 −| `lat` | GPS (lat/lng) | 29 % | 46.7799387 |
42 +| `lat` | GPS (lat/lng) | 28 % | 46.7799387 |
43 43 | `description` | Description | 100 % | 1 chambre — 936 pi² |
44 44 | `images` | Photos (JSON) | 100 % | 13 photo(s) — https://locago.ca/wp-content/uploads/2024/12/WOW.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:09 — 118 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:29 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 124 au total, **118 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 29 % · prix 98 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 126 au total, **116 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 28 % · prix 98 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/duproprio.md +12 −12
@@ -1,8 +1,8 @@
1 1 # DuProprio (location) — connecteur `duproprio`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 3890/3896
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 3894/4109
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ DuProprio (duproprio.com) — section LOCATION ~4 200 annonces de particuliers (
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 3890 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 3894 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 % | 91, avenue Jacques-Cartier, Matane à louer |
33 33 | `address` | Adresse civique | 100 % | 91, avenue Jacques-Cartier |
34 −| `city` | Ville (normalisée) | 100 % | Matane |
35 −| `sector` | Secteur / quartier | 20 % | — |
34 +| `city` | Ville (normalisée) | 94 % | Matane |
35 +| `sector` | Secteur / quartier | 19 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 2 100 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
@@ -41,24 +41,24 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
41 41 | `availability_date` | Date de disponibilité | 86 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 48.8513 |
43 43 | `description` | Description | 100 % | "Professionnel, retraité confortable, couple stable, personne en transition, employé relo… |
44 −| `images` | Photos (JSON) | 100 % | — |
44 +| `images` | Photos (JSON) | 99 % | — |
45 45 | `amenities` | Commodités (JSON) | 94 % | ["Stationnement", "Entrée Laveuse-sécheuse", "Ascenseur", "Entrée Lave-vaisselle", "Range… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"washer_dryer_hookup": true, "dishwasher_hookup": true}, "ac": true, "ele… |
47 47 | `url` | URL de l'annonce source | 100 % | https://duproprio.com/fr/location/bas-saint-laurent/matane/4-1-2-a-louer/hab-91-avenue-ja… |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.3 h
52 −- **Dernier passage OK** : 2026-08-18 06:10 — 3890 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:29 — 3894 trouvées, +0 / ~0 / -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** : 3896 au total, **3890 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 8, dont 0 en erreur
58 +- **Annonces en BD** : 4109 au total, **3894 actives**
59 +- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 100 %
61 +- **Runs journalisés (60 derniers)** : 49, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/dynamic.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 48/53
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 44/55
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur Gestion immobilière Dynamic (lesgestionsdynamic.com) — apparts à
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 48 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 44 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 % | 375, rue Terrill IMMÉDIATEMENT |
33 33 | `address` | Adresse civique | 100 % | 375 rue terrill |
34 34 | `city` | Ville (normalisée) | 100 % | Sherbrooke |
35 −| `sector` | Secteur / quartier | 92 % | Fleurimont |
35 +| `sector` | Secteur / quartier | 93 % | Fleurimont |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 995 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 48 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:18 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 53 au total, **48 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 55 au total, **44 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/edifia.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 180/185
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 177/185
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Edifia Groupe Immobilier (edifiaimmobilier.com) Le locatif d'Edifia e
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 180 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 177 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:10 — 180 trouvées, +0 / ~11 / -0
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
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** : 185 au total, **180 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 185 au total, **177 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 94 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/elements.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:10 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:30 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/elite.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 12/12
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:10 — 12 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:30 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 12 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/elk.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:10 — 3 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:30 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/equinoxe_batimo.md +10 −10
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 615/662
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 616/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 615 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 616 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 |---|---|---|---|
@@ -40,23 +40,23 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 600 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-10-01 |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.5392503 |
43 −| `description` | Description | 100 % | Condo Type 1-06-1206 |
44 −| `images` | Photos (JSON) | 100 % | 2 photo(s) — https://collectionequinoxe.com/wp-content/uploads/2024/04/p1066541_LVQ_1-06_… |
43 +| `description` | Description | 100 % | Unité 1206 — Condo Type 1-06-1206 — 600 pi² — 1 chambre(s) — 1 salle(s) de bain — Disponi… |
44 +| `images` | Photos (JSON) | 100 % | 12 photo(s) — https://collectionequinoxe.com/wp-content/uploads/2024/04/p1066541_LVQ_1-06… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Superficie 600 pi²", "1 salle(s) de bain", "Terrasse commune avec BBQ", "Gym équipé", "… |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"pool": true, "gym": true, "storage": true, "pets": "conditions", "parking": {"available… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"balcony": true, "pool": true, "gym": true, "storage": true, "pets": "conditions", "park… |
47 47 | `url` | URL de l'annonce source | 100 % | https://collectionequinoxe.com/levesque/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:12 — 585 trouvées, +0 / ~32 / -10
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
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, **615 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 662 au total, **616 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/evoludev.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 134/134
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:12 — 134 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:32 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 134 au total, **134 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/fb_marketplace.md +25 −25
@@ -1,64 +1,64 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 2270/6308
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 2387/22526
6 6
7 7 ## Description de la source
8 8
9 −Facebook Marketplace — catégorie location (propertyrentals) par ville du Québec. Annonces de particuliers, fort complément aux gestionnaires. Accès via Scrapfly ASP (render_js + proxy résidentiel CA), SANS compte ni cookie (le scraping public déconnecté est couvert par Meta v. Bright Data 2024). Les données vivent dans des balises <script type="application/json"> (objets marketplace_listing_title). Le scroll infini est bloqué hors connexion (~25 annonces/URL, mur de login) : on pagine par TRANCHES DE PRIX (minPrice/maxPrice), qui renvoient des lots quasi disjoints, et on accumule sur plusieurs synchronisations. Détail (/marketplace/item/<id>) : lat/lng + description (Scrapfly, coûteux) uniquement pour les nouvelles annonces via le cache. Type d'unité et disponibilité déduits du titre/description (pas d'attributs structurés hors connexion). ⚠️ Coût Scrapfly élevé + données personnelles (Loi 25) : ne jamais republier nom/téléphone du vendeur, garder le lien sortant.
9 +Facebook Marketplace — catégorie location (propertyrentals), TOUTE la province. Annonces de particuliers, fort complément aux gestionnaires. Depuis 2026-08-22 le scraping est délégué à l'ACTEUR APIFY MAISON gorgeous_thistle/ka-fb-marketplace (source : actors/ka-fb-marketplace de ce repo) : HTML public déconnecté SANS rendu JS (les JSON de recherche, la fiche PDP et la galerie MediaViewer préchargée vivent dans le HTML brut) via proxy résidentiel CA — ~100× moins cher que l'ancienne chaîne Scrapfly ASP+render_js, et couverture élargie de 10 à 33 villes (IDs Marketplace des villes régionales validés ; les slugs inventés retombent sur des villes aléatoires, ne pas en ajouter sans les valider). Le scroll infini reste bloqué hors connexion (~25 annonces/URL) : on pagine par TRANCHES DE PRIX et on accumule sur plusieurs synchronisations. Le flux public TOURNE : une phase de RATTRAPAGE (extraDetailIds) visite les fiches actives jamais enrichies (budget LOUKA_FBMP_BACKFILL). Le connecteur garde le cache détail BD (clé v2, payloads compatibles) et passe à l'acteur la liste des fiches fraîches à NE PAS revisiter. ⚠️ Données personnelles (Loi 25) : ne jamais republier nom/téléphone du vendeur, garder le lien sortant.
10 10
11 11 - **Site** : https://www.facebook.com/marketplace
12 12 - **Page des annonces** : https://www.facebook.com/marketplace/montreal/propertyrentals
13 −- **Secteurs couverts** : Grandes villes QC — annonces de particuliers (Scrapfly)
13 +- **Secteurs couverts** : Toute la province (33 villes, rayon ~65 km chacune) — annonces de particuliers (acteur Apify maison ka-fb-marketplace)
14 14 - **Module** : `louka/connectors/fb_marketplace.py` — classe `FacebookMarketplaceConnector`
15 15
16 16 ## Accès
17 17
18 −- **Type d'accès** : pages HTML (rendu serveur)
18 +- **Type d'accès** : API JSON interne du site
19 19 - **Endpoint de base** : https://www.facebook.com/marketplace
20 −- **URLs de départ (constantes du module)** : https://www.facebook.com/marketplace
20 +- **URLs de départ (constantes du module)** : https://www.facebook.com/marketplace · https://api.apify.com/v2
21 21 - **Authentification** : aucune — contenu public
22 −- **Pagination** : page de liste unique (pas de pagination)
22 +- **Pagination** : pagination par offset
23 23 - **Backend anti-bot / rendu** : requests direct
24 24 - **Politesse** : 1.0 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)`
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 2270 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 2387 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 % | Chambre privée à louer |
32 +| `title` | Titre de l'annonce | 100 % | Appartement de 2 chambres et 1 salle de bain |
33 33 | `address` | Adresse civique | 0 % | — |
34 −| `city` | Ville (normalisée) | 100 % | Montréal |
34 +| `city` | Ville (normalisée) | 100 % | Mirabel |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 90 % | Chambre |
37 −| `price` | Loyer mensuel ($) | 100 % | 795 $ |
38 −| `bedrooms` | Chambres | 90 % | 1 |
39 −| `bathrooms` | Salles de bain | 3 % | — |
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 40 | `area_sqft` | Superficie (pi²) | 3 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 15 % | 45.553455200005 |
43 −| `description` | Description | 16 % | CHAMBRE EN COLOC DISPONIBLE, HOCHELAGA-MAISONNEUVE, 795 $ TOUT INCLUS. Nous avons une cha… |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://scontent-bos5-1.xx.fbcdn.net/v/t39.30808-6/772797442_384310096584675… |
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 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 15 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "appliances": {"… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.facebook.com/marketplace/item/2151142982451520/ |
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/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.3 h
52 −- **Dernier passage OK** : 2026-08-18 06:19 — 1257 trouvées, +544 / ~713 / -727
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
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** : 6308 au total, **2270 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 15 % · prix 100 % · photos 100 % · description 16 %
61 −- **Runs journalisés (60 derniers)** : 8, dont 0 en erreur
58 +- **Annonces en BD** : 22526 au total, **2387 actives**
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
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/ferrovia.md +14 −14
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 23/24
5 +**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 22/24
6 6
7 7 ## Description de la source
8 8
9 −connecteur Ferrovia (ferroviamirabel.com) Projet de condos locatifs neufs à Mirabel (secteur Saint-Janvier), 4 phases. WordPress + wpDataTables rendues côté serveur : chaque page « Disponibilités » contient un <table.wpDataTable> (UNITÉ, MODÈLE, ÉTAGE, PIÈCES, SUPERFICIE, SALLE D'EAU SUPP., DISPONIBILITÉ, PRIX, STATUT, PLAN). On ne retient que les lignes STATUT = « Disponible » ; external_id = phase + numéro d'unité. Le site précise que les logements sont non-fumeurs et sans animaux. Prix : colonne présente mais vide à ce jour — jamais inventé.
9 +connecteur Ferrovia (ferroviamirabel.com) Projet de condos locatifs neufs à Mirabel (secteur Saint-Janvier), 4 phases. WordPress + wpDataTables rendues côté serveur : chaque page « Disponibilités » contient un <table.wpDataTable> (UNITÉ, MODÈLE, ÉTAGE, PIÈCES, SUPERFICIE, SALLE D'EAU SUPP., DISPONIBILITÉ, PRIX, STATUT, PLAN). On ne retient que les lignes STATUT = « Disponible » ; external_id = phase + numéro d'unité. Le site précise que les logements sont non-fumeurs et sans animaux. Prix : colonne présente mais vide à ce jour — jamais inventé. Galeries (3 requêtes/sync) : /interieurs-phase3/ et /interieurs-phase4/ publient une image par MODÈLE (A, A', B'… — « A' » = fichiers « A1 ») et /photos-unites/ une galerie générale du projet -> image du modèle en tête puis photos générales. Adresse civique publiée sur /contact-information/ : 14340, rue Roger-Thomas (repli codé en dur si la page change).
10 10
11 11 - **Site** : https://www.ferroviamirabel.com
12 12 - **Page des annonces** : https://www.ferroviamirabel.com/disponibilites-phase-4/
@@ -25,12 +25,12 @@ connecteur Ferrovia (ferroviamirabel.com) Projet de condos locatifs neufs à Mir
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 23 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 22 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 % | Ferrovia phase 3 — unité 603 (3 1/2) |
33 −| `address` | Adresse civique | 0 % | — |
33 +| `address` | Adresse civique | 100 % | 14340 rue Roger-Thomas |
34 34 | `city` | Ville (normalisée) | 100 % | Mirabel |
35 35 | `sector` | Secteur / quartier | 100 % | Saint-Janvier |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
@@ -39,25 +39,25 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 950 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 0 % | — |
43 −| `description` | Description | 100 % | Condos neufs à louer du projet Ferrovia, à Mirabel dans le secteur de Saint-Janvier. Les … |
44 −| `images` | Photos (JSON) | 0 % | — |
45 −| `amenities` | Commodités (JSON) | 22 % | [] |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.710185449 |
43 +| `description` | Description | 100 % | Unité 603 (3 1/2) du projet Ferrovia, condos locatifs neufs à Mirabel dans le secteur de … |
44 +| `images` | Photos (JSON) | 100 % | 6 photo(s) — https://www.ferroviamirabel.com/wp-content/uploads/2026/02/Duogeneral-01.jpg |
45 +| `amenities` | Commodités (JSON) | 18 % | [] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"pets": "non", "smoking": false, "phase": "3", "model": "E’", "floor": "6", "plan_pdf": … |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.ferroviamirabel.com/disponibilites-phase-3/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:19 — 23 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 24 au total, **23 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 0 % · prix 0 % · photos 0 % · description 100 %
58 +- **Annonces en BD** : 24 au total, **22 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/firma.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 12/12
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 12 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 12 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 75 % · prix 8 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/floria.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 21/21
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 21 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 21 au total, **21 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 24 % · photos 95 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/forsa.md +18 −18
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 13/13
5 +**État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 10/13
6 6
7 7 ## Description de la source
8 8
@@ -25,39 +25,39 @@ connecteur Gestion immobilière Forsa (gestionforsa.com) Squarespace. La page /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 13 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 10 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 % | 2 1/2, Joliette - MAINTENANT |
33 −| `address` | Adresse civique | 100 % | 222, rue Lajoie Sud, app. 12 |
32 +| `title` | Titre de l'annonce | 100 % | 2 1/2, Joliette - Septembre |
33 +| `address` | Adresse civique | 100 % | 4, place Bourget Sud, app. 1 |
34 34 | `city` | Ville (normalisée) | 100 % | Joliette |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 2½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 595 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 900 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 46 % | — |
41 −| `availability_date` | Date de disponibilité | 92 % | now |
42 −| `lat` | GPS (lat/lng) | 92 % | 46.0216796 |
43 −| `description` | Description | 100 % | 222, rue Lajoie Sud, app. 12 2 1/2 595 $ /mois ENVIRONNEMENT À quelques minutes de l’auto… |
44 −| `images` | Photos (JSON) | 100 % | 10 photo(s) — https://images.squarespace-cdn.com/content/v1/62aa0c0ae2002b5a5726b8c2/7450… |
40 +| `area_sqft` | Superficie (pi²) | 50 % | — |
41 +| `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.0247367 |
43 +| `description` | Description | 100 % | 6, place Bourget Sud, app. 1 2 1/2 900 $/mois ENVIRONNEMENT ET IMMEUBLE Immeuble de 9 log… |
44 +| `images` | Photos (JSON) | 100 % | 12 photo(s) — https://images.squarespace-cdn.com/content/v1/62aa0c0ae2002b5a5726b8c2/0a23… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"electricity": true, "hot_water": true}, "laundry": true, "smoking": fals… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.gestionforsa.com/222-12lajoiesud |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "appliances": {"… |
47 +| `url` | URL de l'annonce source | 100 % | https://www.gestionforsa.com/6-01bourgetsud |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 13 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 13 au total, **13 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 92 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 13 au total, **10 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/fournelle.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 4 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/garic.md +8 −12
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 45/54
6 6
7 7 ## Description de la source
8 8
9 −connecteur Garic Gestion Immobilière (garic.ca) Gestionnaire de Gatineau (Hull, Vieux-Gatineau, secteur est). WordPress (Oxygen) : la grille filtrable de /a-louer/ se nourrit d'un endpoint admin-ajax MAISON `garic_get_properties` qui renvoie TOUT l'inventaire en JSON structuré : ID, adresse (post_title), prix/mois, type (« 4 ½ »), chambres, salles de bain, superficie, disponibilité, image, URL de la fiche et géocodage complet (lat/lng + quartier OpenStreetMap). Le nonce de sécurité est lu sur la page /a-louer/ à chaque sync. L'unique propriété d'OTTAWA est exclue (périmètre Québec). La fiche /a-louer/<slug> (cache BD) ajoute description, inclusions, « À proximité » et scores de mobilité.
9 +connecteur Garic Gestion Immobilière (garic.ca) Gestionnaire de Gatineau (Hull, Vieux-Gatineau, secteur est). WordPress (Oxygen) : la grille filtrable de /a-louer/ se nourrit d'un endpoint admin-ajax MAISON `garic_get_properties` qui renvoie TOUT l'inventaire en JSON structuré : ID, adresse (post_title), prix/mois, type (« 4 ½ »), chambres, salles de bain, superficie, disponibilité, image, URL de la fiche et géocodage complet (lat/lng + quartier OpenStreetMap). Le nonce de sécurité est lu sur la page /a-louer/ à chaque sync. L'unique propriété d'OTTAWA est exclue (périmètre Québec). La fiche /a-louer/<slug> (cache BD) ajoute description, inclusions, « À proximité », scores de mobilité ET la galerie complète (liens lightbox pleine grandeur — le JSON admin-ajax n'expose qu'une seule image).
10 10
11 11 - **Site** : https://garic.ca
12 12 - **Page des annonces** : https://garic.ca/a-louer/
@@ -41,32 +41,28 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.4792016 |
43 43 | `description` | Description | 100 % | 🏡 3 ½ à louer – 74 Rue Saint-Paul, Gatineau 🏡 📍 74 Rue Saint-Paul, Gatineau, QC J8P 4V6 B… |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://garic.ca/wp-content/uploads/2026/07/IMG_6985.jpeg |
44 +| `images` | Photos (JSON) | 100 % | 6 photo(s) — https://garic.ca/wp-content/uploads/2026/07/IMG_6985.jpeg |
45 45 | `amenities` | Commodités (JSON) | 96 % | ["🍳 Cuisinière", "🧊 Réfrigérateur"] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true, "stove": true}, "parking": {"available": true, "included"… |
47 47 | `url` | URL de l'annonce source | 100 % | https://garic.ca/a-louer/2-74-rue-saint-paul-gatineau-qc-j8p-4v6/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 45 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 54 au total, **45 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 3 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −| Date | Message (sync_log) |
66 −|---|---|
67 −| 2026-08-13 06:46 | 500 Server Error: Internal Server Error for url: https://garic.ca/a-louer/ |
68 −| 2026-08-13 04:21 | 500 Server Error: Internal Server Error for url: https://garic.ca/a-louer/ |
69 −| 2026-08-13 03:23 | 500 Server Error: Internal Server Error for url: https://garic.ca/a-louer/ |
65 +Aucune erreur dans les 60 derniers runs journalisés.
70 66
71 67 Rejouer la source seule : `python3 run.py sync garic` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='garic' ORDER BY ts DESC LIMIT 5;`).
72 68
modified docs/connecteurs/gesteco.md +8 −8
@@ -1,8 +1,8 @@
1 1 # Gesteco — connecteur `gesteco`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 10/14
5 +**État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 9/15
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Gesteco (gesteco.ca) Condos locatifs neufs — Granby (Irwin Nord, Fa
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 10 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 9 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 |---|---|---|---|
@@ -37,7 +37,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 450 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 90 % | 1125 |
40 +| `area_sqft` | Superficie (pi²) | 89 % | 1125 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.3194045 |
43 43 | `description` | Description | 100 % | Promotion : * 1ER MOIS GRATUIT* \| **Unité de coin** Caractéristiques principales : Cuisi… |
@@ -48,15 +48,15 @@ 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) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 10 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:42 — 9 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 14 au total, **10 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 15 au total, **9 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestimmo_estrie.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 41/41
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 41 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 41 au total, **41 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_fauvel.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 11/11
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 11 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **11 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 91 % · prix 91 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_habitation.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 4 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_isr.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 20/22
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 20 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 20 trouvées, +0 / ~0 / -0
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 22 au total, **20 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_jdm.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_laprise.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
@@ -57,7 +57,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
57 57 ## Volumétrie & complétude
58 58
59 59 - **Annonces en BD** : 2 au total, **2 actives**
60 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
61 61 - **Complétude clé (actives)** : GPS 100 % · prix 50 % · photos 100 % · description 50 %
62 62 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
modified docs/connecteurs/gestion_legrand.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 5 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 40 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-22 02:07 | HTTPSConnectionPool(host='gestionlegrand.ca', port=443): Read timed out. (read timeout=30) |
66 68
67 69 Rejouer la source seule : `python3 run.py sync gestion_legrand` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='gestion_legrand' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/gestion_montreal.md +11 −11
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 22/24
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 23/26
6 6
7 7 ## Description de la source
8 8
@@ -25,38 +25,38 @@ connecteur Gestion Montréal (gestion-montreal.com — Montréal, Longueuil, Rep
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 22 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 23 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 % | Studio semi-meublé à louer – Centre-ville de Montréal |
33 33 | `address` | Adresse civique | 100 % | 1024 Rue Sherbrooke Est, Montréal |
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 −| `sector` | Secteur / quartier | 73 % | Centre-ville |
35 +| `sector` | Secteur / quartier | 70 % | Centre-ville |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Studio |
37 37 | `price` | Loyer mensuel ($) | 100 % | 950 $ |
38 38 | `bedrooms` | Chambres | 91 % | 0 |
39 −| `bathrooms` | Salles de bain | 14 % | — |
39 +| `bathrooms` | Salles de bain | 13 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 9 % | — |
41 −| `availability_date` | Date de disponibilité | 82 % | — |
41 +| `availability_date` | Date de disponibilité | 78 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.521 |
43 43 | `description` | Description | 100 % | À propos de l’appartement : Studio semi-meublé Prix : 950 $/mois Hydro-Québec et Wi-Fi in… |
44 44 | `images` | Photos (JSON) | 100 % | 8 photo(s) — https://static.immosquare.com/shareimmo/production/property_asset/asset/9e70… |
45 −| `amenities` | Commodités (JSON) | 95 % | ["Eau chaude", "Chauffage", "Électricité", "Réfrigérateur", "Micro-onde", "Non-fumeur", "… |
45 +| `amenities` | Commodités (JSON) | 96 % | ["Eau chaude", "Chauffage", "Électricité", "Réfrigérateur", "Micro-onde", "Non-fumeur", "… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true… |
47 47 | `url` | URL de l'annonce source | 100 % | https://gestion-montreal.com/fr/inscriptions/studio-a-louer-montreal--5752184 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 22 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 24 au total, **22 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 26 au total, **23 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_tb.md +15 −15
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 31/35
5 +**État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 30/36
6 6
7 7 ## Description de la source
8 8
@@ -25,38 +25,38 @@ connecteur Gestion TB (Drummondville) Portail d'annonces appartementstb.ca (auss
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 31 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 30 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 % | 3 ½ St-Jean à 800$ |
32 +| `title` | Titre de l'annonce | 100 % | 2 ½ rue Lindsay à 850$ |
33 33 | `address` | Adresse civique | 0 % | — |
34 34 | `city` | Ville (normalisée) | 100 % | Notre-Dame-du-Bon-Conseil |
35 −| `sector` | Secteur / quartier | 94 % | St-Joseph |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 800 $ |
38 −| `bedrooms` | Chambres | 100 % | 1 |
35 +| `sector` | Secteur / quartier | 63 % | Centre-ville |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 2½ |
37 +| `price` | Loyer mensuel ($) | 100 % | 850 $ |
38 +| `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 0 % | — |
43 −| `description` | Description | 100 % | 3 ½ St-Jean à 800$ — Secteur St-Joseph — Disponible MAINTENANT !! — Chauffage et électric… |
44 −| `images` | Photos (JSON) | 100 % | 5 photo(s) — https://assets.cdn.filesafe.space/9ubT2smip23BapsK3KeE/media/6a7a369d8880872… |
43 +| `description` | Description | 100 % | 2 ½ rue Lindsay à 850$ — Secteur Centre-ville — Disponible MAINTENANT !! — Chauffage et é… |
44 +| `images` | Photos (JSON) | 100 % | 5 photo(s) — https://assets.cdn.filesafe.space/9ubT2smip23BapsK3KeE/media/6a846a7e96d2b22… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "floor_label": "1e étage"} |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}} |
47 47 | `url` | URL de l'annonce source | 100 % | https://appartementstb.ca/#col-5BSbroV8HW |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 31 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 35 au total, **31 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 36 au total, **30 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestion_valco.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 06:20 — 2 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 14:43 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 50 % · description 50 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gestipro.md +10 −10
@@ -1,8 +1,8 @@
1 1 # Gestipro — connecteur `gestipro`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 98/116
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 103/124
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Gestipro (gestipro.info) Site WordPress (thème Houzez) : liste pagin
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 98 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 103 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -36,9 +36,9 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 5½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 2 427 $ |
38 38 | `bedrooms` | Chambres | 100 % | 3 |
39 −| `bathrooms` | Salles de bain | 13 % | 2 |
40 −| `area_sqft` | Superficie (pi²) | 18 % | — |
41 −| `availability_date` | Date de disponibilité | 86 % | 2027-07-01 |
39 +| `bathrooms` | Salles de bain | 12 % | 2 |
40 +| `area_sqft` | Superficie (pi²) | 17 % | — |
41 +| `availability_date` | Date de disponibilité | 83 % | 2027-07-01 |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.8518496 |
43 43 | `description` | Description | 100 % | Condos locatifs – LE MARIA-GORETTI (Livraison avril 2027) – Unités 5½ situées au 7170 bou… |
44 44 | `images` | Photos (JSON) | 100 % | 5 photo(s) — https://gestipro.info/wp-content/uploads/2026/06/Immeuble_7170-boul.-Cloutie… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 1.9 h
52 −- **Dernier passage OK** : 2026-08-18 03:34 — 98 trouvées, +0 / ~98 / -0
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
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** : 116 au total, **98 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 124 au total, **103 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gia_t.md +16 −12
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 3/4
5 +**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 5/7
6 6
7 7 ## Description de la source
8 8
@@ -25,12 +25,12 @@ connecteur GIA-T — Gestion Immobilière Abitibi-Témiscamingue (gia-t.com —
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 3 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 5 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 % | Résidence St-Michel |
33 −| `address` | Adresse civique | 67 % | — |
33 +| `address` | Adresse civique | 80 % | — |
34 34 | `city` | Ville (normalisée) | 100 % | Rouyn-Noranda |
35 35 | `sector` | Secteur / quartier | 100 % | Près du centre-ville |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 67 % | — |
42 +| `lat` | GPS (lat/lng) | 80 % | — |
43 43 | `description` | Description | 100 % | Bonjour à tous, Nous avons actuellement un 2 1/2 et un 3½ à louer à la Résidence St-Miche… |
44 44 | `images` | Photos (JSON) | 100 % | 7 photo(s) — https://gia-t.com/wp-content/uploads/2026/08/Media-2026-04-14T120122.924.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["1 chambre(s)", "1 salle(s) de bain", "Inclus : Cable, Chauffage, Internet, Électricité,… |
@@ -48,23 +48,27 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:34 — 3 trouvées, +0 / ~3 / -0
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
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** : 4 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
58 +- **Annonces en BD** : 7 au total, **5 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 80 % · prix 100 % · photos 100 % · description 100 %
61 +- **Runs journalisés (60 derniers)** : 60, dont 5 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 65 | Date | Message (sync_log) |
66 66 |---|---|
67 −| 2026-08-14 21:38 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
67 +| 2026-08-20 21:41 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
68 +| 2026-08-19 14:34 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
69 +| 2026-08-19 11:36 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
70 +| 2026-08-18 15:19 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
71 +| 2026-08-18 12:31 | HTTPSConnectionPool(host='gia-t.com', port=443): Read timed out. (read timeout=30) |
68 72
69 73 Rejouer la source seule : `python3 run.py sync gia_t` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='gia_t' ORDER BY ts DESC LIMIT 5;`).
70 74
modified docs/connecteurs/gimcote.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 85/89
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 86/91
6 6
7 7 ## Description de la source
8 8
@@ -25,19 +25,19 @@ connecteur GIM Côté inc. (gimcote.com) WordPress + thème immobilier Houzez. A
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 85 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 86 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 % | Beau studio 1 1/2, St-Roch, WIFI Libre |
33 33 | `address` | Adresse civique | 100 % | 757, Rue de la Reine |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 100 % | Saint-Roch, La Cité-Limoilou |
35 +| `sector` | Secteur / quartier | 80 % | Saint-Roch, La Cité-Limoilou |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 1½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 615 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 1 % | — |
40 −| `area_sqft` | Superficie (pi²) | 2 % | — |
40 +| `area_sqft` | Superficie (pi²) | 3 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.8171235 |
43 43 | `description` | Description | 100 % | 418-655-8281 À voir au 757 de la Reine appartement #RC2, beau studio 1 1/2 situé au rez d… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:35 — 85 trouvées, +0 / ~85 / -0
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
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** : 89 au total, **85 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 91 au total, **86 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gio.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:35 — 5 trouvées, +0 / ~5 / -0
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
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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/girescom.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 40/41
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:35 — 40 trouvées, +0 / ~40 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 41 au total, **40 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **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
62 62
modified docs/connecteurs/girs.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 8/8
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:35 — 8 trouvées, +0 / ~8 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 8 au total, **8 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/gparadis.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 22/22
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:35 — 22 trouvées, +0 / ~22 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 22 au total, **22 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 82 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/groupe_dallaire.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif (dégradé)** · Région : Québec · Backend : Scrapfly · Annonces actives : 255/259
6 6
@@ -48,17 +48,17 @@ Le connecteur (Scrapfly, API admin-ajax (WordPress)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 255 trouvées, +0 / ~255 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 259 au total, **255 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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 33 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 8 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/groupe_jacques.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 10/11
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 10 trouvées, +0 / ~10 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **10 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 60 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-21 00:29 | HTTPSConnectionPool(host='www.groupejacques.com', port=443): Max retries exceeded with url: /fr/appartements/appartements-a-louer/ (Caused by NewConnectionErro… |
66 68
67 69 Rejouer la source seule : `python3 run.py sync groupe_jacques` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='groupe_jacques' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/groupe_maurice.md +10 −10
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Province · Backend : direct · Annonces actives : 203/203
6 6
7 7 ## Description de la source
8 8
9 −Le Groupe Maurice — 37 résidences pour aînés (RPA) au Québec (Montréal, Laval, Rive-Sud/Nord, Québec, Gatineau…). WordPress avec API REST maison : /wp-json/api/v1/residences retourne les 37 résidences géolocalisées (adresse, lat/lng, ville, url, vignette). Chaque page résidence (SSR) expose la grille des types d'unités dans des <article class="y-bordered"> : « Studio | 408 pi.ca à 628 pi.ca | À partir de 2 286 $ par mois ». Une annonce Lou-Ka par type × résidence, prix plancher « à partir de », étiquetée Résidence pour aînés.
9 +Le Groupe Maurice — 37 résidences pour aînés (RPA) au Québec (Montréal, Laval, Rive-Sud/Nord, Québec, Gatineau…). WordPress avec API REST maison : /wp-json/api/v1/residences retourne les 37 résidences géolocalisées (adresse, lat/lng, ville, url, vignette). Chaque page résidence (SSR) expose la grille des types d'unités dans des <article class="y-bordered"> : « Studio | 408 pi.ca à 628 pi.ca | À partir de 2 286 $ par mois ». Une annonce Lou-Ka par type × résidence, prix plancher « à partir de », étiquetée Résidence pour aînés. La même page (déjà téléchargée) fournit aussi la galerie de la résidence (photos des appartements et des aires communes — carousel360 + gallery--large + alentours), le texte de présentation et la liste des caractéristiques des unités (« Le confort à votre mesure ») : on les applique à chaque annonce sans aucune requête supplémentaire.
10 10
11 11 - **Site** : https://www.legroupemaurice.com
12 12 - **Page des annonces** : https://www.legroupemaurice.com/residences/
@@ -40,25 +40,25 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 408 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.5093975 |
43 −| `description` | Description | 100 % | Vos envies prennent vie à Cornelius ! Cette magnifique résidence pour aînés, située dans … |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://groupemaurice.tor1.digitaloceanspaces.com/app/uploads/2022/07/LGM_Co… |
45 −| `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"price_from": true, "Résidence pour aînés": "oui"} |
43 +| `description` | Description | 100 % | Passez votre retraite dans une bulle de bien-être à Cornelius, en plein cœur de Montréal … |
44 +| `images` | Photos (JSON) | 100 % | 30 photo(s) — https://groupemaurice.tor1.digitaloceanspaces.com/app/uploads/2022/07/LGM_C… |
45 +| `amenities` | Commodités (JSON) | 100 % | ["Cuisine complète avec électroménagers et comptoirs de quartz", "Grande salle de bains a… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true}, "balcony": true, "storage": true, "price_from": true, "R… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.legroupemaurice.com/residences/cornelius/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.4 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 203 trouvées, +0 / ~203 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 203 au total, **203 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
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)** : 6, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 45, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/groupe_robin.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 72/74
5 +**État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 71/76
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur Groupe Robin (grouperobin.com) WordPress Elementor multi-lignes d'aff
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 72 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 71 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 % | 5 ½ — Le 2285 des Grandes-Orgues, St-Hyacinthe |
33 33 | `address` | Adresse civique | 100 % | 2285 Av. des Grandes-Orgues |
34 34 | `city` | Ville (normalisée) | 100 % | Saint-Hyacinthe |
35 −| `sector` | Secteur / quartier | 22 % | — |
35 +| `sector` | Secteur / quartier | 23 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 5½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 625 $ |
38 38 | `bedrooms` | Chambres | 100 % | 3 |
@@ -48,16 +48,16 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 72 trouvées, +0 / ~72 / -0
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
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
56 56
57 57 ## Volumétrie & complétude
58 58
59 −- **Annonces en BD** : 74 au total, **72 actives**
60 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Annonces en BD** : 76 au total, **71 actives**
60 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
61 61 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 96 %
62 62 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
modified docs/connecteurs/groupe_theoret.md +6 −6
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 24/24
6 6
7 7 ## Description de la source
8 8
9 −connecteur Groupe Théorêt (locationappartement.ca) GoDaddy Website Builder. La page « Appartements à louer » expose un widget « menu » : une section par immeuble (adresse + ville) et un item par unité (type, prix/mois, disponibilité) ; le lien « Plus d'informations » porte un UUID stable (data-section-jump) qui sert d'external_id. Les pages immeuble (cache BD) ajoutent l'adresse complète et les services inclus.
9 +connecteur Groupe Théorêt (locationappartement.ca) GoDaddy Website Builder. La page « Appartements à louer » expose un widget « menu » : une section par immeuble (adresse + ville) et un item par unité (type, prix/mois, disponibilité) ; le lien « Plus d'informations » porte un UUID stable (data-section-jump) qui sert d'external_id. Les pages immeuble (cache BD) ajoutent l'adresse complète AVEC code postal (géocodage), le contact du concierge et les services inclus. LIMITES DE LA SOURCE : le site GoDaddy ne publie AUCUNE photo des immeubles (le compte wsimg ne contient que logo.png et frontpage.png) ni description par logement — annonces sans image/description longue, c'est le maximum disponible.
10 10
11 11 - **Site** : https://locationappartement.ca
12 12 - **Page des annonces** : https://locationappartement.ca/appartements-%C3%A0-louer
@@ -43,20 +43,20 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
43 43 | `description` | Description | 0 % | — |
44 44 | `images` | Photos (JSON) | 0 % | — |
45 45 | `amenities` | Commodités (JSON) | 88 % | ["Eau chaude (Inclus)", "Chauffage (Inclus)", "Concierge (Inclus)"] |
46 −| `details` | Détails additionnels (JSON) | 88 % | {"inclusions": {"heating": true, "hot_water": true}} |
46 +| `details` | Détails additionnels (JSON) | 88 % | {"inclusions": {"heating": true, "hot_water": true}, "contact": {"name": "Jean Chagnon", … |
47 47 | `url` | URL de l'annonce source | 100 % | https://locationappartement.ca/5080-5100-pie-ix#5f15a6f5-ac50-4019-ae2a-f5a6ca5eeadf |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 24 trouvées, +0 / ~24 / -0
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
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 58 - **Annonces en BD** : 24 au total, **24 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 83 % · prix 100 % · photos 0 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/habitations_jeanne.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 14/14
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 14 trouvées, +0 / ~14 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/habitations_sf.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 7/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:41 — 7 trouvées, +0 / ~7 / -0
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
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 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 43 % · prix 86 % · photos 100 % · description 86 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/halfred.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Halfred — connecteur `halfred`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 164/169
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 165/171
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Halfred (halfred.ca — Outaouais) Application React Router rendue C
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 164 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 165 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:42 — 164 trouvées, +0 / ~164 / -0
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
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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 169 au total, **164 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 171 au total, **165 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 93 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/hazelview.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 6/6
6 6
@@ -44,19 +44,19 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
44 44 | `images` | Photos (JSON) | 100 % | 14 photo(s) — https://assets.rentsync.com/timbercreek_communities/images/gallery/full/168… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["24/7 emergency service", "Air conditioner", "AirConditioning", "Bike Friendly", "Certif… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true, "dishwasher": true}, "elevator": true, "laundry": true, "… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.hazelviewproperties.com/properties/1405-bishop |
47 +| `url` | URL de l'annonce source | 100 % | https://hazelviewproperties.com/properties/1405-bishop |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:42 — 6 trouvées, +0 / ~6 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 6 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/headway.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 86 % | 46.8093361 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.8093361 |
43 43 | `description` | Description | 100 % | Composition de l'immeuble : 1½, 2½, 3½, 4½. À moins de 5 minutes à pied : Arrêts d'autobu… |
44 44 | `images` | Photos (JSON) | 100 % | 13 photo(s) — https://static.wixstatic.com/media/ba2cd3_d93ae32018574ed3886df6992da1ede8~… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Chauffé, éclairé, eau chaude fournie", "Ascenseur", "Buanderie", "Espace de rangement",… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:42 — 7 trouvées, +0 / ~7 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 86 % · prix 0 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/heafey.md +14 −14
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 246/255
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 246/261
6 6
7 7 ## Description de la source
8 8
9 −connecteur Groupe Heafey (Gatineau, secteur Hull) Le résidentiel du groupe vit sur un micro-site WordPress par projet, comme Immostar (immostar.py) : - Le We 2 et Le We 3 (lewe2.ca) -> sélecteur d'unités « Resimo » - Loggia sur le Parc (loggiasurleparc.com) -> même sélecteur Resimo La page /plans/ de chaque site intègre en iframe l'application Resimo (allinone-corsim-*.prod.resimo.io) dont la configuration publique donne l'URL d'inventaire, le jeton d'intégration et la liste des immeubles ; cet endpoint renvoie un JSON par immeuble : n° d'unité, superficie (pi²), nombre de chambres, statut (available / reserved / sold) et, avec additional_fields, le plan d'étage (pdf_url) et le lien de location. La découverte se fait à chaque sync (aucun jeton codé en dur) : 1 requête /plans/ + 1 requête app + 1 requête inventaire par site. Une annonce = une unité DISPONIBLE. ⚠ Le paramètre Resimo `showPrice` est à false sur les trois projets : AUCUN prix n'est publié par unité (les pages « unités vedettes » n'affichent des prix que par typologie type) — price reste donc None, rien n'est inventé.
9 +connecteur Groupe Heafey (Gatineau, secteur Hull) Le résidentiel du groupe vit sur un micro-site WordPress par projet, comme Immostar (immostar.py) : - Le We 2 et Le We 3 (lewe2.ca) -> sélecteur d'unités « Resimo » - Loggia sur le Parc (loggiasurleparc.com) -> même sélecteur Resimo La page /plans/ de chaque site intègre en iframe l'application Resimo (allinone-corsim-*.prod.resimo.io) dont la configuration publique donne l'URL d'inventaire, le jeton d'intégration et la liste des immeubles ; cet endpoint renvoie un JSON par immeuble : n° d'unité, superficie (pi²), nombre de chambres, statut (available / reserved / sold) et, avec additional_fields, le plan d'étage (pdf_url) et le lien de location. La découverte se fait à chaque sync (aucun jeton codé en dur) : 1 requête /plans/ + 1 requête app + 1 requête inventaire par site. Une annonce = une unité DISPONIBLE. Le paramètre Resimo `showPrice` est à false sur les trois projets, mais le PRIX PAR UNITÉ est publié par le back-office DashQ : le `web_url` de chaque unité pointe vers myapartment.rent (SPA DashQ) avec bpi = identifiant public de l'immeuble ; l'API publique de cette SPA (webapi.myapartment.rent /api/rental-application-request/getRentalRequestListing?publicIdentifier= <bpi>) renvoie TOUTES les unités offertes : loyer (unitPrice), salles de bain, date de disponibilité (madeReadyDate), adresse civique exacte et code postal (c'est ainsi qu'on apprend l'adresse du We 3 : 82, rue Saint-Rédempteur). 1 requête DashQ par immeuble (3 au total), fusionnée par numéro d'unité. Une unité absente de DashQ reste sans prix — rien n'est inventé. GPS : non publié par la source (l'adresse civique propre alimente le géocodeur maison).
10 10
11 11 - **Site** : https://groupeheafey.com
12 12 - **Page des annonces** : https://lewe2.ca/plans/
@@ -17,7 +17,7 @@ connecteur Groupe Heafey (Gatineau, secteur Hull) Le résidentiel du groupe vit
17 17
18 18 - **Type d'accès** : API JSON interne du site
19 19 - **Endpoint de base** : https://lewe2.ca/
20 −- **URLs de départ (constantes du module)** : https://lewe2.ca/ · https://loggiasurleparc.com/ · https://[a-z0-9.-]*resimo
20 +- **URLs de départ (constantes du module)** : https://lewe2.ca/ · https://loggiasurleparc.com/ · https://[a-z0-9.-]*resimo · https://webapi.myapartment.rent/api/
21 21 - **Authentification** : aucune — contenu public
22 22 - **Pagination** : page de liste unique (pas de pagination)
23 23 - **Backend anti-bot / rendu** : requests direct (session UA LouKaBot, throttling poli)
@@ -30,16 +30,16 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | Le We 2 — Unité 0418 |
33 −| `address` | Adresse civique | 15 % | 45, rue Eddy, Gatineau, QC J8X 2V8 |
33 +| `address` | Adresse civique | 100 % | 45, rue Eddy, Gatineau, QC J8X 2V8 |
34 34 | `city` | Ville (normalisée) | 100 % | Gatineau |
35 35 | `sector` | Secteur / quartier | 100 % | Hull |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 0 % | — |
37 +| `price` | Loyer mensuel ($) | 100 % | 2 650 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 −| `bathrooms` | Salles de bain | 0 % | — |
39 +| `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 1055 |
41 −| `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 15 % | 45.4264562 |
41 +| `availability_date` | Date de disponibilité | 100 % | 2026-10-15 |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.4264562 |
43 43 | `description` | Description | 100 % | 2 chambre(s) — 1055 pi² — Le We 2 |
44 44 | `images` | Photos (JSON) | 100 % | 11 photo(s) — https://dashqblobstorage.blob.core.windows.net/dq-building-photos/heafey/fl… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["5 électroménagers", "Internet", "chauffage", "électricité", "air climatisé central", "e… |
@@ -48,16 +48,16 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 246 trouvées, +0 / ~246 / -0
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
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** : 255 au total, **246 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 15 % · prix 0 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 261 au total, **246 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/hestia.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 3/3
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 3 trouvées, +0 / ~3 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/huma.md +9 −9
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 38/38
6 6
7 7 ## Description de la source
8 8
9 −connecteur HUMĀ Condos locatifs (humalevis.com) Deux phases de 130/132 unités à Lévis (Saint-Romuald). Plans d'étages interactifs (<area data-color-scheme="disponible">) -> fiches d'unités (type, superficies, date de disponibilité, plan). Les pages de phases listent les services/inclusions ; la page contact donne l'adresse civique de chaque phase, le contact et le marqueur GPS. Aucun prix sur le site.
9 +connecteur HUMĀ Condos locatifs (humalevis.com) Deux phases de 130/132 unités à Lévis (Saint-Romuald). Plans d'étages interactifs (<area data-color-scheme="disponible">) -> fiches d'unités (type, superficies, date de disponibilité, plan). Les pages de phases listent les services/inclusions ET les photos de la phase (aires de vie, gym, chambres… — ajoutées à la galerie de chaque unité, la fiche unité n'ayant que le plan) ; la page contact donne l'adresse civique de chaque phase, le contact et le marqueur GPS. Aucun prix sur le site (confirmé). Les href des <area> sont devenus relatifs (« /unites/condo-n-113 », redirigés vers /unite-phase-<n>/…) : gérés, et la phase est déduite de la page d'étage d'origine (external_id inchangé : phase-<n>-condo-<numéro>).
10 10
11 11 - **Site** : https://humalevis.com
12 12 - **Page des annonces** : https://humalevis.com
@@ -30,7 +30,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | HUMĀ phase 1 — Condo locatif N°311 (3½) |
33 −| `address` | Adresse civique | 100 % | 1221, rue de Courchevel, Lévis (Québec) G6W 0V8 |
33 +| `address` | Adresse civique | 100 % | 1221 rue de Courchevel, Lévis (Québec) G6W 0V8 |
34 34 | `city` | Ville (normalisée) | 100 % | Lévis |
35 35 | `sector` | Secteur / quartier | 100 % | Saint-Romuald |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
@@ -39,25 +39,25 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 876 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 −| `lat` | GPS (lat/lng) | 26 % | 46.73317544859536 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.73317544859536 |
43 43 | `description` | Description | 100 % | Étage 3 \| Modèle K \| Superficie du logement : 876 pi² \| Superficie du balcon : 65 pi² … |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://humalevis.com/wp-content/uploads/2021/06/plan-type-k.jpg |
44 +| `images` | Photos (JSON) | 100 % | 11 photo(s) — https://humalevis.com/wp-content/uploads/2021/06/plan-type-k.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Ascenseurs", "Lave-auto", "Chute à déchet sur chaque étage", "Système de sécurité intég… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"hot_water": true}, "ac": true, "elevator": true, "balcony": true, "stora… |
47 47 | `url` | URL de l'annonce source | 100 % | https://humalevis.com/unite-phase-1/condo-n-311 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 38 trouvées, +0 / ~38 / -0
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
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 58 - **Annonces en BD** : 38 au total, **38 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 26 % · prix 0 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/immeubles_aeb.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 26/26
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 26 trouvées, +0 / ~26 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 26 au total, **26 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 81 % · description 27 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immeubles_bc.md +11 −11
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/26
5 +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 20/30
6 6
7 7 ## Description de la source
8 8
@@ -30,17 +30,17 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | 20 Rue St Laurent E |
33 −| `address` | Adresse civique | 95 % | 20 Rue St Laurent E, Rimouski, QC G5L 2C4 |
33 +| `address` | Adresse civique | 90 % | 20 Rue St Laurent E, Rimouski, QC G5L 2C4 |
34 34 | `city` | Ville (normalisée) | 100 % | Rimouski |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 5½ |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 95 % | 5½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 410 $ |
38 −| `bedrooms` | Chambres | 100 % | 3 |
38 +| `bedrooms` | Chambres | 95 % | 3 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 48.447829977608 |
43 −| `description` | Description | 20 % | — |
43 +| `description` | Description | 30 % | — |
44 44 | `images` | Photos (JSON) | 100 % | 11 photo(s) — https://immeublesbc.com/wp-content/uploads/2026/06/logement-a-louer-rimousk… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["3 chambre(s)", "2 salle(s) de bain", "Buanderie dans l'immeuble", "Cuisinière", "Déneig… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"stove": true}, "laundry": true, "parking": {"available": true, "type": "… |
@@ -48,16 +48,16 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 20 trouvées, +0 / ~20 / -0
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
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** : 26 au total, **20 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 20 %
58 +- **Annonces en BD** : 30 au total, **20 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 30 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/immeubles_bois.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 23/23
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 83 % | 48.4576312 |
42 +| `lat` | GPS (lat/lng) | 87 % | 48.4576312 |
43 43 | `description` | Description | 0 % | — |
44 44 | `images` | Photos (JSON) | 100 % | 1 photo(s) — https://immeublesbois.ca/wp-content/uploads/2025/04/DJI_20250604105320_0073_… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 23 trouvées, +0 / ~23 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 23 au total, **23 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 83 % · prix 0 % · photos 100 % · description 0 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 87 % · prix 0 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/immeubles_db.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 13/13
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 13 trouvées, +0 / ~13 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 13 au total, **13 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immeubles_dcl.md +20 −20
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 8/11
5 +**État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 7/11
6 6
7 7 ## Description de la source
8 8
@@ -25,38 +25,38 @@ connecteur Les Immeubles DCL (lesimmeublesdcl.com — Rouyn-Noranda, Val-d'Or, M
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 8 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 7 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 % | 911 3e Avenue (#201) Val-D'or |
33 −| `address` | Adresse civique | 100 % | 911 3e Avenue, Val-D'or, J9P 2T1 |
34 −| `city` | Ville (normalisée) | 100 % | Val-D'or |
35 −| `sector` | Secteur / quartier | 100 % | Val-d'Or |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 1½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 900 $ |
38 −| `bedrooms` | Chambres | 100 % | 0 |
32 +| `title` | Titre de l'annonce | 100 % | 111 rue des Prospecteurs (#1) à Malartic |
33 +| `address` | Adresse civique | 100 % | 111 rue des Rubis, Malartic, j0y1z0 |
34 +| `city` | Ville (normalisée) | 100 % | Malartic |
35 +| `sector` | Secteur / quartier | 100 % | Malartic |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 425 $ |
38 +| `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 100 % | 48.1033621 |
43 −| `description` | Description | 100 % | 1 1/2 situé au 1er étage, disponible dès maintenant. Pour planifier une visite, contactez… |
44 −| `images` | Photos (JSON) | 100 % | 6 photo(s) — https://immeubles-dcl.s3.ca-central-1.amazonaws.com/media/MoyLohLMQ5y1HgwcCd… |
45 −| `amenities` | Commodités (JSON) | 100 % | ["1 pièce(s)", "1 chambre(s)", "WiFi", "Éclairé", "Chauffé", "Frigidaire", "Cuisinière", … |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "appliances": {"… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.lesimmeublesdcl.com/logements-a-louer/911-3e-avenue-201-val-dor |
42 +| `lat` | GPS (lat/lng) | 100 % | 48.13737159999999 |
43 +| `description` | Description | 100 % | 4 1/2 au sous-sol, disponible 1er juillet 2026. Pour toute information supplémentaire, n'… |
44 +| `images` | Photos (JSON) | 100 % | 11 photo(s) — https://immeubles-dcl.s3.ca-central-1.amazonaws.com/media/5CoPLIfHcNlzoD52f… |
45 +| `amenities` | Commodités (JSON) | 100 % | ["4 pièce(s)", "2 chambre(s)", "1 salle(s) de bain", "Entrée laveuse/sécheuse", "Remise e… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true}, "appliances": {"washer_dryer_hookup": true, "dishwasher… |
47 +| `url` | URL de l'annonce source | 100 % | https://www.lesimmeublesdcl.com/logements-a-louer/111-rue-des-rubis-1-a-malartic |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 8 trouvées, +0 / ~8 / -0
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
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** : 11 au total, **8 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 11 au total, **7 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immeubles_guillot.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 7/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 7 trouvées, +0 / ~7 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 57 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
modified docs/connecteurs/immeubles_ouellet.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 1 trouvées, +0 / ~1 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immeubles_pm.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 2 trouvées, +0 / ~2 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immnasr.md +7 −7
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3
6 6
@@ -34,12 +34,12 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
34 34 | `city` | Ville (normalisée) | 100 % | Gatineau |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 1 325 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 315 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 1026 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-10-01 |
42 −| `lat` | GPS (lat/lng) | 67 % | 45.506552 |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.506552 |
43 43 | `description` | Description | 100 % | Près de la rue Main et Davidson. Logement de 1,026 pi. ca. situé au semi sous-sol d’un tr… |
44 44 | `images` | Photos (JSON) | 100 % | 9 photo(s) — https://site-nngjg8kd.dewsecdn1.dotezcdn.com/uploads/r/373-497-373-332-0-82/… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Prises laveuse et sécheuse"] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 3 trouvées, +0 / ~3 / -0
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
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 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/immobilia.md +6 −6
@@ -1,8 +1,8 @@
1 1 # Immobilia Rimouski — connecteur `immobilia`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/2
5 +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/3
6 6
7 7 ## Description de la source
8 8
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 1 trouvées, +0 / ~1 / -0
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
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** : 2 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 3 au total, **1 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immogex.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 3/3
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:43 — 3 trouvées, +0 / ~3 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immomarketing.md +9 −9
@@ -1,8 +1,8 @@
1 1 # IMMOMARKETING (Immoappart) — connecteur `immomarketing`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 83/90
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 83/94
6 6
7 7 ## Description de la source
8 8
@@ -32,13 +32,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
32 32 | `title` | Titre de l'annonce | 100 % | CITÉ M - 4½ à louer |
33 33 | `address` | Adresse civique | 99 % | 1750 Rue Claire-Bonenfant, Québec, QC |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 73 % | Lebourgneuf |
35 +| `sector` | Secteur / quartier | 72 % | Lebourgneuf |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 2 095 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 2 295 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 −| `availability_date` | Date de disponibilité | 96 % | now |
41 +| `availability_date` | Date de disponibilité | 98 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.83891 |
43 43 | `description` | Description | 100 % | UNE VIE D’EXCEPTION À LA CITÉ M, LEBOURGNEUF 4 ½ – Confort, espace et vue piscine Promoti… |
44 44 | `images` | Photos (JSON) | 100 % | 17 photo(s) — https://immoappart.ca/wp-content/uploads/2025/06/cite-m_app800_hd-13-scaled… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:44 — 83 trouvées, +0 / ~83 / -1
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
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, **83 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 94 au total, **83 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/immostar.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 156/165
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 630 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-12-01 |
42 −| `lat` | GPS (lat/lng) | 72 % | 46.7704016 |
42 +| `lat` | GPS (lat/lng) | 78 % | 46.7704016 |
43 43 | `description` | Description | 100 % | 1 chambre — 630 pi² — étage 1 |
44 44 | `images` | Photos (JSON) | 100 % | 4 photo(s) — https://habitermu.ca/wp-content/uploads/2023/11/MU-Drone-544_courNuit-scaled… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Grand gym à la fine pointe", "Piscine intérieure", "Studio de yoga ou de cour de groupe… |
@@ -48,16 +48,16 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:44 — 156 trouvées, +0 / ~156 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 165 au total, **156 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 72 % · prix 99 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 78 % · prix 99 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/info_logement.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 50/56
5 +**État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 56/64
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Info-Logement (info-logement.com) Gestionnaire locatif de Lanaudière
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 50 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 56 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 |---|---|---|---|
@@ -37,7 +37,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 525 $ |
38 38 | `bedrooms` | Chambres | 100 % | 3 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 8 % | 1250 |
40 +| `area_sqft` | Superficie (pi²) | 7 % | 1250 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.0551 |
43 43 | `description` | Description | 100 % | CONSTRUCTION AVRIL 2023 Immeuble de 6 logements STYLE CONDO FAMILLIALE 5 1/2 au deuxième … |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:45 — 50 trouvées, +0 / ~50 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 56 au total, **50 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 64 au total, **56 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/interrent.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 200/211
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 194/215
6 6
7 7 ## Description de la source
8 8
@@ -25,19 +25,19 @@ connecteur InterRent REIT (irent.com) Site Next.js (app router) : la page « com
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 200 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 194 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 % | Trent & Kingsley — 7460 Ch. Kingsley - Plan E (app. 803) |
33 33 | `address` | Adresse civique | 100 % | 5550 Trent Ave, Côte-Saint-Luc, H4W 1P3 |
34 −| `city` | Ville (normalisée) | 100 % | Côte-Saint-Luc |
34 +| `city` | Ville (normalisée) | 83 % | — |
35 35 | `sector` | Secteur / quartier | 76 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Studio |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 339 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 100 % | 578 |
40 +| `area_sqft` | Superficie (pi²) | 99 % | 578 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.4611828 |
43 43 | `description` | Description | 100 % | 578 pi² — 1 sdb — plan 7460 Ch. Kingsley - Plan E — Promotion : Two Months Free* — *E & O… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:45 — 200 trouvées, +0 / ~200 / -0
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
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** : 211 au total, **200 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 215 au total, **194 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/jutras.md +10 −10
@@ -1,12 +1,12 @@
1 1 # Habitations Jutras — connecteur `jutras`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 35/35
6 6
7 7 ## Description de la source
8 8
9 −connecteur Habitations Jutras (jutras.com) Promoteur-gestionnaire au Centre-du-Québec et en Estrie. WordPress + Avada (Fusion Builder) : /condos-a-louer/ liste les projets locatifs (/condo/<slug>/) ; chaque page projet expose une section « LES UNITÉS » (ancre id="prix") avec, par type d'unité (3½/4½/5½) : superficie, chambres, stationnements et « À partir de X$/mois ». Une annonce par (projet, type). Ville réelle tirée du <title> ou de la phrase « situé à/dans … » de la page projet. Le projet Prisme (page spéciale /condos-a-louer/drummondville/prisme/) est parsé par regex type+prix. Exclu : Huit Cents (immeuble 50 ans et plus). robots.txt permissif.
9 +connecteur Habitations Jutras (jutras.com) Promoteur-gestionnaire au Centre-du-Québec et en Estrie. WordPress + Avada (Fusion Builder) : /condos-a-louer/ liste les projets locatifs (/condo/<slug>/) ; chaque page projet expose une section « LES UNITÉS » (ancre id="prix") avec, par type d'unité (3½/4½/5½) : superficie, chambres, stationnements et « À partir de X$/mois ». Une annonce par (projet, type). Ville réelle tirée du <title> ou de la phrase « situé à/dans … » de la page projet. Le projet Prisme (page spéciale /condos-a-louer/drummondville/prisme/) est parsé par regex type+prix. Exclu : Huit Cents (immeuble 50 ans et plus). robots.txt permissif. NB : certaines cartes placent leurs lignes (dont le prix !) dans des <li><div class="fusion-li-item-content"><b>…</b></div> plutôt que des <p> -> les deux formes sont lues. Galerie du projet (.fusion-gallery, miniatures -WxH ramenées à l'original) partagée par ses annonces. Aucune adresse civique par projet chez la source (ville seulement).
10 10
11 11 - **Site** : https://jutras.com
12 12 - **Page des annonces** : https://jutras.com/condos-a-louer/
@@ -34,30 +34,30 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
34 34 | `city` | Ville (normalisée) | 100 % | Drummondville |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 54 % | — |
37 +| `price` | Loyer mensuel ($) | 60 % | 1 350 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 91 % | 960 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 0 % | — |
43 −| `description` | Description | 91 % | Déménagez chez vous dès juin 2026 ! · 960 pi 2 · 1 chambre · 1 ou 2 stationnements* *S el… |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://jutras.com/wp-content/uploads/2025/11/LAtelier_Drummondville.png |
43 +| `description` | Description | 100 % | Déménagez chez vous dès juin 2026 ! · 960 pi 2 · 1 chambre · 1 ou 2 stationnements* *S el… |
44 +| `images` | Photos (JSON) | 100 % | 14 photo(s) — https://jutras.com/wp-content/uploads/2025/11/LAtelier_Drummondville.png |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"parking": {"available": true}} |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"storage": true, "parking": {"available": true, "included": false}, "price_from": true} |
47 47 | `url` | URL de l'annonce source | 100 % | https://jutras.com/condo/atelier/#prix |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:45 — 35 trouvées, +0 / ~35 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 35 au total, **35 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 0 % · prix 54 % · photos 100 % · description 91 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 0 % · prix 60 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/kangalou.md +18 −18
@@ -1,12 +1,12 @@
1 1 # Kangalou — connecteur `kangalou`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 7916/7916
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 7774/8413
6 6
7 7 ## Description de la source
8 8
9 −Kangalou (kangalou.com) — portail locatif québécois géré (Solutions Kangalou, ~8 700 annonces province entière). Découverte en UNE requête : l'endpoint carte `POST /fr/recherche/ajax/search-map/` (pinsOnly=true) renvoie tous les pins JSON — id, URL de fiche, GPS, ville, type (ti/tn ; 10=Commercial et 11=Garage exclus), « n ½ » (an), prix (mc), photo et l'état loué (ir, exclu). La fiche /fr/annonce/<slug>/<id>/ (SSR, aucun anti-bot) complète : adresse civique, chambres/salles de bain, loyer, étage, superficie, disponibilité, description, inclusions/caractéristiques et galerie (slider--gallery, images glide) — via TtlDetailCache (budget/TTL). L'API de liste HTML (POST /fr/api/search) existe aussi mais pagine par 29 et masque l'état loué (CSS) : les pins sont la source fiable.
9 +Kangalou (kangalou.com) — portail locatif québécois géré (Solutions Kangalou, ~8 700 annonces province entière). Découverte en UNE requête : l'endpoint carte `POST /fr/recherche/ajax/search-map/` (pinsOnly=true) renvoie tous les pins JSON — id, URL de fiche, GPS, ville, type (ti/tn ; 10=Commercial et 11=Garage exclus), « n ½ » (an), prix (mc), photo et l'état loué (ir, exclu). La fiche /fr/annonce/<slug>/<id>/ (SSR, aucun anti-bot) complète : adresse civique, chambres/salles de bain, loyer, étage, superficie, disponibilité, description longue, sections « toggler » (Inclusions, Caractéristiques, Animaux, Sécurité, À proximité, Transport…) et la galerie COMPLÈTE pleine résolution (gr-modal-gallery-src, sans paramètre de redimensionnement) — via TtlDetailCache (budget/TTL). Le budget par défaut couvre tout le parc (~8 000 fiches) : le premier sync est long (~1 h 30), les suivants ne re-visitent que les fiches périmées (TTL). L'API de liste HTML (POST /fr/api/search) existe aussi mais pagine par 29 et masque l'état loué (CSS) : les pins sont la source fiable.
10 10
11 11 - **Site** : https://www.kangalou.com
12 12 - **Page des annonces** : https://www.kangalou.com/fr/recherche/
@@ -25,40 +25,40 @@ 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 7916 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 7774 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 % | 4300 Rue St-Ambroise |
33 −| `address` | Adresse civique | 9 % | 4300 Rue St-Ambroise |
34 −| `city` | Ville (normalisée) | 100 % | Montréal |
33 +| `address` | Adresse civique | 95 % | 4300 Rue St-Ambroise |
34 +| `city` | Ville (normalisée) | 99 % | Montréal |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 6½+ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 2 250 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 −| `bathrooms` | Salles de bain | 9 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 8 % | — |
41 −| `availability_date` | Date de disponibilité | 9 % | now |
39 +| `bathrooms` | Salles de bain | 97 % | 1 |
40 +| `area_sqft` | Superficie (pi²) | 60 % | — |
41 +| `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.4734 |
43 −| `description` | Description | 7 % | Quai des Eclusiers! Très belle unité extrémement lumineuse au rez-de-chaussée avec une te… |
43 +| `description` | Description | 78 % | Quai des Eclusiers! Très belle unité extrémement lumineuse au rez-de-chaussée avec une te… |
44 44 | `images` | Photos (JSON) | 99 % | 6 photo(s) — https://s3.amazonaws.com/shareimmo/production/property_asset/asset/4a54f592-… |
45 −| `amenities` | Commodités (JSON) | 9 % | [] |
46 −| `details` | Détails additionnels (JSON) | 9 % | {"appliances": {"stove": true, "dishwasher": true}, "balcony": true, "pool": true, "smoki… |
45 +| `amenities` | Commodités (JSON) | 74 % | [] |
46 +| `details` | Détails additionnels (JSON) | 97 % | {"appliances": {"stove": true, "dishwasher": true}, "balcony": true, "pool": true, "smoki… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.kangalou.com/fr/annonce/appartement-a-louer-6-1-2-le-sud-ouest-4300-rue-st-am… |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : —
52 −- **Dernier passage OK** : 2026-08-18 03:54 — 7916 trouvées, +0 / ~369 / -0
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
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** : 7916 au total, **7916 actives**
59 −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 7 %
61 −- **Runs journalisés (60 derniers)** : 2, dont 0 en erreur
58 +- **Annonces en BD** : 8413 au total, **7774 actives**
59 +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 78 %
61 +- **Runs journalisés (60 derniers)** : 39, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/kass.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:54 — 4 trouvées, +0 / ~4 / -0
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
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 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/katasa.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 03:54 — 4 trouvées, +0 / ~4 / -0
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
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 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/kijiji.md +10 −10
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 5251/7409
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 5314/9379
6 6
7 7 ## Description de la source
8 8
9 −Kijiji (kijiji.ca) — petites annonces de LOCATION UNIQUEMENT les catégories logement À LOUER, UNIQUEMENT le Québec (l9001) : c37 appartements & condos à louer · c36 chambres à louer & colocation Les pages listent 40+ annonces dans __NEXT_DATA__ (Apollo state) avec titre, prix, GPS, adresse, date de disponibilité et attributs (meublé, animaux, inclusions…) — aucune API privée nécessaire. Adapté du connecteur « à vendre » d'Immo-Ka (agent-courtage/immoka).
9 +Kijiji (kijiji.ca) — petites annonces de LOCATION UNIQUEMENT les catégories logement À LOUER, UNIQUEMENT le Québec (l9001) : c37 appartements & condos à louer · c36 chambres à louer & colocation Les pages listent 40+ annonces dans __NEXT_DATA__ (Apollo state) avec titre, prix, GPS, adresse, date de disponibilité et attributs (meublé, animaux, inclusions…) — aucune API privée nécessaire. Adapté du connecteur « à vendre » d'Immo-Ka (agent-courtage/immoka). Prix « Sur demande » (price.type=CONTACT, ~3 % des annonces) : le montant est souvent écrit dans la description (« Loyer : 1 550 $ / mois ») — on le récupère prudemment (montant collé à $ + mois/month plausible), sinon le libellé affiché devient « Sur demande » plutôt que vide. (Vérifié à la source : les annonces sans photo ou à photo unique le sont réellement sur Kijiji — imageUrls vide/à 1 sur la fiche aussi.)
10 10
11 11 - **Site** : https://www.kijiji.ca
12 12 - **Page des annonces** : https://www.kijiji.ca/b-appartement-condo/quebec/c37l9001
@@ -25,19 +25,19 @@ 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 5251 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 5314 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 % | 4 1/2 4.5, 2,chambres,bedrooms,louer, Cartierville, metro Sauvé |
33 33 | `address` | Adresse civique | 45 % | 10150 Lajeunesse |
34 −| `city` | Ville (normalisée) | 100 % | Montréal |
34 +| `city` | Ville (normalisée) | 91 % | Montréal |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 97 % | 1 495 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 78 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 64 % | — |
40 +| `area_sqft` | Superficie (pi²) | 65 % | — |
41 41 | `availability_date` | Date de disponibilité | 68 % | 2026-08-01 |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.55274 |
43 43 | `description` | Description | 100 % | <p data-start="191" data-end="358"><strong data-start="191" data-end="260">PROMOTION 2 MO… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:02 — 5244 trouvées, +2 / ~5242 / -27
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
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** : 7409 au total, **5251 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 9379 au total, **5314 actives**
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
62 62
modified docs/connecteurs/la_cour.md +11 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 20/21
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 19/21
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur La Cour Appartements (lacourappartements.com) 155, rue du Prince-Édo
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 20 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 19 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,21 +48,23 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 06:01 — 20 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 17:19 — 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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 21 au total, **20 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 21 au total, **19 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 15:52 | database is locked |
66 68
67 69 Rejouer la source seule : `python3 run.py sync la_cour` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='la_cour' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/laberge.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Groupe Laberge — connecteur `laberge`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 55/58
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 57/62
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Gestion immobilière Laberge (laberge.qc.ca) Site rendu serveur. La p
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 55 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 57 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:02 — 55 trouvées, +0 / ~55 / -0
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
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** : 58 au total, **55 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 62 au total, **57 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 93 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/labonte.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 18/18
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:02 — 18 trouvées, +0 / ~18 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 18 au total, **18 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lachance.md +12 −12
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 65/86
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 75/98
6 6
7 7 ## Description de la source
8 8
@@ -25,21 +25,21 @@ connecteur Les Entreprises Lachance (lachance.qc.ca) Constructeur-gestionnaire d
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 65 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 75 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 % | 1331, rue Quatre-Saisons, Sherbrooke (Fleurimont) |
33 33 | `address` | Adresse civique | 100 % | 1331, rue Quatre-Saisons, Sherbrooke (Fleurimont) |
34 −| `city` | Ville (normalisée) | 100 % | Sherbrooke |
35 −| `sector` | Secteur / quartier | 71 % | Fleurimont |
34 +| `city` | Ville (normalisée) | 89 % | Sherbrooke |
35 +| `sector` | Secteur / quartier | 73 % | Fleurimont |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 350 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 −| `bathrooms` | Salles de bain | 18 % | — |
39 +| `bathrooms` | Salles de bain | 21 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 650 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-12-18 |
42 −| `lat` | GPS (lat/lng) | 95 % | 45.4228717 |
42 +| `lat` | GPS (lat/lng) | 93 % | 45.4228717 |
43 43 | `description` | Description | 100 % | Situé dans un secteur recherché de Sherbrooke, le quartier de la rue des Quatre-Saisons o… |
44 44 | `images` | Photos (JSON) | 100 % | 12 photo(s) — https://images.lachance.qc.ca/a-louer/_1300x1300_fit_center-center_none/Ext… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Étage : Rez-de-jardin", "1 chambre(s)", "1 salle(s) de bain"] |
@@ -48,16 +48,16 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:04 — 65 trouvées, +0 / ~65 / -0
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
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** : 86 au total, **65 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 95 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 98 au total, **75 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 93 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/lacite.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 6/7
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 762 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 0 % | — |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.485858694 |
43 43 | `description` | Description | 100 % | Type A-Type 310·510·710·910·1110·1310·1510·1710 — balcon 222 pi² — superficie totale 984 … |
44 44 | `images` | Photos (JSON) | 100 % | 1 photo(s) — https://lacitegatineau.com/wp-content/uploads/2023/10/310-510-710-910-1110-1… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:06 — 6 trouvées, +0 / ~6 / -0
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
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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 0 % · prix 0 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/lafrance_mathieu.md +6 −6
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 37/40
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 37/41
6 6
7 7 ## Description de la source
8 8
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:06 — 37 trouvées, +0 / ~37 / -0
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
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** : 40 au total, **37 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 41 au total, **37 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lakle.md +12 −12
@@ -1,12 +1,12 @@
1 1 # La Klé — connecteur `lakle`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 45/49
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 43/49
6 6
7 7 ## Description de la source
8 8
9 −connecteur La Klé (lakle.ca) Complexe de 559 appartements locatifs (4 phases) dans la Cité Verte (Québec, secteur Saint-Sacrement). La page « disponibilité » expose : 1) le sélecteur de plans WordPress de la tour la plus récente (phase 4) : unités en <polygon class="disponible" data-numero=...> + API REST /wp-json/do-selecteur-plans/v1/unite?id=N (prix, type, superficie habitable/terrasse, étage, style, date libre, plan) ; 2) des cartes <li> « Unité B16 - Phase 3 » pour les unités disponibles des phases 2 et 3 (superficie, chambres, description, plan — sans prix). La page /contact fournit l'adresse civique et le lat/lng de chaque phase (marqueurs Google Map structurés).
9 +connecteur La Klé (lakle.ca) Complexe de 559 appartements locatifs (4 phases) dans la Cité Verte (Québec, secteur Saint-Sacrement). La page « disponibilité » expose : 1) le sélecteur de plans WordPress de la tour la plus récente (phase 4) : unités en <polygon class="disponible" data-numero=...> + API REST /wp-json/do-selecteur-plans/v1/unite?id=N (prix, type, superficie habitable/terrasse, étage, style, date libre, plan) ; 2) des cartes <li> « Unité B16 - Phase 3 » pour les unités disponibles des phases 2 et 3 (superficie, chambres, description, plan — AUCUN prix publié pour ces unités chez la source : rien d'inventé). La page /contact fournit l'adresse civique et le lat/lng de chaque phase (marqueurs Google Map structurés). La page /appartements/ fournit les photos types du complexe (piscine, intérieurs) — ajoutées à la galerie de chaque unité, la source n'ayant qu'un plan/une photo par unité.
10 10
11 11 - **Site** : https://lakle.ca
12 12 - **Page des annonces** : https://lakle.ca
@@ -25,7 +25,7 @@ connecteur La Klé (lakle.ca) Complexe de 559 appartements locatifs (4 phases) d
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 45 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 43 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 |---|---|---|---|
@@ -34,30 +34,30 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 35 | `sector` | Secteur / quartier | 100 % | Cité Verte (Saint-Sacrement) |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 −| `price` | Loyer mensuel ($) | 56 % | 1 845 $ |
37 +| `price` | Loyer mensuel ($) | 53 % | 1 845 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 −| `bathrooms` | Salles de bain | 4 % | — |
39 +| `bathrooms` | Salles de bain | 5 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 682 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.798431 |
43 43 | `description` | Description | 100 % | Étage 1 \| 1 chambre(s) \| Superficie 682 pi² \| Balcon 161 pi² \| Style Classique \| Pla… |
44 −| `images` | Photos (JSON) | 96 % | 1 photo(s) — https://lakle.ca/wp-content/uploads/2025/02/LaKle4-D3.png |
44 +| `images` | Photos (JSON) | 100 % | 7 photo(s) — https://lakle.ca/wp-content/uploads/2025/02/LaKle4-D3.png |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Électroménagers inclus", "Électricité incluse", "Chauffage et climatisation centrale", … |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "appliances": {"fridge": true}, "a… |
47 47 | `url` | URL de l'annonce source | 100 % | https://lakle.ca/phase-1-occupation-immediate/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 45 trouvées, +0 / ~45 / -0
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
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** : 49 au total, **45 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 56 % · photos 96 % · description 100 %
58 +- **Annonces en BD** : 49 au total, **43 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 53 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/lambert.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 2 trouvées, +0 / ~2 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 50 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/laureat_richard.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 23/23
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 23 trouvées, +0 / ~23 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 23 au total, **23 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-21 15:04 | HTTPSConnectionPool(host='laureatrichard.com', port=443): Read timed out. (read timeout=30) |
66 68
67 69 Rejouer la source seule : `python3 run.py sync laureat_richard` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='laureat_richard' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/le_baronet.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 3/3
5 +**État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 4/6
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Le Baronet (lebaronet.com) Angle rue Notre-Dame Sud / rue Baronet, Sa
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 3 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 4 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 3 trouvées, +0 / ~3 / -0
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
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** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 6 au total, **4 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/le_st_georges.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/leclif.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Le Clif — connecteur `leclif`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 9/9
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 10/10
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Le Clif (leclif.ca) Projet mono-immeuble de 151 condos locatifs à Ch
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 9 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 10 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 9 trouvées, +0 / ~9 / -0
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
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** : 9 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 10 au total, **10 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/ledomaine.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 5 trouvées, +0 / ~5 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/lelaureat.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 5 trouvées, +0 / ~5 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lequerre.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:07 — 1 trouvées, +0 / ~1 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lespac.md +10 −10
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 2270/2568
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 2242/2882
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 2270 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 2242 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 |---|---|---|---|
@@ -34,12 +34,12 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
34 34 | `city` | Ville (normalisée) | 100 % | Saint-Georges |
35 35 | `sector` | Secteur / quartier | 34 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 97 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 87 % | 995 $ |
37 +| `price` | Loyer mensuel ($) | 97 % | 995 $ |
38 38 | `bedrooms` | Chambres | 98 % | 2 |
39 39 | `bathrooms` | Salles de bain | 9 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 22 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 47 % | 46.125801079 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.1258985 |
43 43 | `description` | Description | 99 % | Appartement agréable et lumineux Très grand logements de 1 130' carré Cage escalier intér… |
44 44 | `images` | Photos (JSON) | 93 % | 10 photo(s) — https://cdn.lespac.com/binary/basephoto/2896124268.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Adresse : 13063 24e Avenue, Saint-Georges, QC, Canada", "Type de location : Location lo… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 2243 trouvées, +2 / ~2241 / -7
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
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** : 2568 au total, **2270 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 47 % · prix 87 % · photos 93 % · description 99 %
58 +- **Annonces en BD** : 2882 au total, **2242 actives**
59 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/leviu.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 2/2
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 3/3
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Le VIU / VIU2 (leviu.ca — Groupe Heafey) Tours de condos locatifs d
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 2 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 3 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 2 trouvées, +0 / ~2 / -0
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
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** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 3 au total, **3 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/location_di.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Mauricie / Lanaudière · Backend : direct · Annonces actives : 9/12
5 +**État : actif** · Région : Mauricie / Lanaudière · Backend : direct · Annonces actives : 9/16
6 6
7 7 ## Description de la source
8 8
@@ -36,7 +36,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 950 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 −| `bathrooms` | Salles de bain | 89 % | 1 |
39 +| `bathrooms` | Salles de bain | 78 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 750 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.295955 |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 9 trouvées, +0 / ~9 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 12 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 16 au total, **9 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/location_saguenay.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 21/21
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 21 trouvées, +0 / ~21 / -0
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
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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 21 au total, **21 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 76 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/loftsmtl.md +5 −5
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 9/9
6 6
@@ -44,19 +44,19 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
44 44 | `images` | Photos (JSON) | 100 % | 8 photo(s) — https://assets.rentsync.com/lofts/images/gallery/512/1692901081569_158014023… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["1 salle(s) de bain", "614 pi²", "Balconies", "Concrete floors", "Dishwasher available",… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true, "stove": true, "dishwasher": true, "washer_dryer": true},… |
47 −| `url` | URL de l'annonce source | 100 % | https://www.loftsmtl.com/apartments/loft-du-main |
47 +| `url` | URL de l'annonce source | 100 % | https://loftsmtl.com/apartments/loft-du-main |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 9 trouvées, +0 / ~9 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 9 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/logement_mauricie.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 1 trouvées, +0 / ~1 / -0
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
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 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/logis_experts.md +11 −11
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 498/517
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 487/519
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Logis-Experts (logis-experts.com) Gestionnaire-constructeur, centre-v
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 498 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 487 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 |---|---|---|---|
@@ -40,24 +40,24 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
40 40 | `area_sqft` | Superficie (pi²) | 98 % | 788 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.8111676 |
43 −| `description` | Description | 0 % | — |
44 −| `images` | Photos (JSON) | 39 % | 6 photo(s) — https://dkkmxhlt20gis.cloudfront.net/dev/uploads/logis-experts-dsc-4023-abf9… |
43 +| `description` | Description | 100 % | Superficie de 788 pi². Au 4e étage. Frais d'énergie : Chauffé & Éclairé. Eau chaude inclu… |
44 +| `images` | Photos (JSON) | 38 % | 12 photo(s) — https://dkkmxhlt20gis.cloudfront.net/dev/uploads/logis-experts-508-411-st-v… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Chauffé & Éclairé", "Contrôle Accès (Puces)", "Lounge", "Terrasse", "Gym", "Garage Sout… |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "elevator": true… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true… |
47 47 | `url` | URL de l'annonce source | 100 % | https://logis-experts.com/immeuble/508-rue-saint-vallier-ouest-le-saint-s/appartement/411 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:10 — 497 trouvées, +0 / ~497 / -0
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
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** : 517 au total, **498 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 39 % · description 0 %
58 +- **Annonces en BD** : 519 au total, **487 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 38 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/logisbourg.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 11/14
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:11 — 11 trouvées, +0 / ~11 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **11 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/logisco.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Logisco — connecteur `logisco`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 157/174
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 160/184
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Logisco (logisco.com) Site rendu serveur. Crawl : page liste principa
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 157 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 160 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:11 — 157 trouvées, +0 / ~157 / -0
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
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** : 174 au total, **157 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 184 au total, **160 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 99 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/logisma.md +15 −15
@@ -1,8 +1,8 @@
1 1 # Logisma — connecteur `logisma`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 15/19
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 12/20
6 6
7 7 ## Description de la source
8 8
@@ -25,39 +25,39 @@ connecteur Logisma (logisma.ca) Page de recherche /appartements-a-louer/ (boucle
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 15 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 12 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 % | 2 1/2 – 89 Place de Versailles #02, Lévis |
33 −| `address` | Adresse civique | 100 % | 89 Place de Versailles #02 |
32 +| `title` | Titre de l'annonce | 100 % | 2 1/2 – 89 Place de Versailles #02, Lévis **REMISE 1000$** |
33 +| `address` | Adresse civique | 100 % | 89 Place de Versailles #02, Lévis **REMISE 1000$** |
34 34 | `city` | Ville (normalisée) | 100 % | Lévis |
35 35 | `sector` | Secteur / quartier | 100 % | Lévis |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 2½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 843 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 000 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 80 % | 46.803338 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.803338 |
43 43 | `description` | Description | 100 % | 2 1/2 dans un grand complexe résidentiel. Secteur résidentiel calme et recherché, Place d… |
44 −| `images` | Photos (JSON) | 100 % | 7 photo(s) — https://logisma.ca/wp-content/uploads/2026/01/77-6_Versailles_00050.jpg |
45 −| `amenities` | Commodités (JSON) | 100 % | ["Prix de base : 920$/mois", "843$ avec le mois gratuit"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"contact": {"phone": "418-652-0377"}} |
44 +| `images` | Photos (JSON) | 100 % | 11 photo(s) — https://logisma.ca/wp-content/uploads/2026/01/77-6_Versailles_00050.jpg |
45 +| `amenities` | Commodités (JSON) | 100 % | ["Eau chaude INCLUSE!", "Wifi offert gratuitement", "1 stationnements extérieur inclus", … |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": false, "electricity": false, "hot_water": true, "internet": tr… |
47 47 | `url` | URL de l'annonce source | 100 % | https://logisma.ca/appartements-a-louer/4-1-2-89-place-de-versailles-06-levis-2/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:11 — 15 trouvées, +0 / ~15 / -0
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
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** : 19 au total, **15 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 80 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 20 au total, **12 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/logispro.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:11 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 75 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/logisquebec.md +15 −15
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 6791/6794
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 9668/10178
6 6
7 7 ## Description de la source
8 8
@@ -25,20 +25,20 @@ 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 6791 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 9668 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 % | Un Beau 5 1/2 Completement Renové |
33 33 | `address` | Adresse civique | 100 % | 80B rue Sylvio Langlois |
34 34 | `city` | Ville (normalisée) | 100 % | Saint-Félix-de-Dalquier |
35 −| `sector` | Secteur / quartier | 44 % | — |
36 −| `unit_type` | Type d'unité (3½, 4½…) | 93 % | 5½ |
37 −| `price` | Loyer mensuel ($) | 100 % | 900 $ |
38 −| `bedrooms` | Chambres | 94 % | 3 |
35 +| `sector` | Secteur / quartier | 50 % | — |
36 +| `unit_type` | Type d'unité (3½, 4½…) | 95 % | 5½ |
37 +| `price` | Loyer mensuel ($) | 99 % | 900 $ |
38 +| `bedrooms` | Chambres | 95 % | 3 |
39 39 | `bathrooms` | Salles de bain | 85 % | — |
40 −| `area_sqft` | Superficie (pi²) | 31 % | — |
41 −| `availability_date` | Date de disponibilité | 69 % | now |
40 +| `area_sqft` | Superficie (pi²) | 32 % | — |
41 +| `availability_date` | Date de disponibilité | 75 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 48.6738344 |
43 43 | `description` | Description | 100 % | Un beau 5 ½ au cœur du village St-Félix-de-Dalquier. Rue Sylvio Langlois # 80-A. En face … |
44 44 | `images` | Photos (JSON) | 100 % | 6 photo(s) — https://i.logisquebec.com/i-a-louer/83855/318750/20220708_110422_jpg_68fac7d… |
@@ -48,17 +48,17 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.1 h
52 −- **Dernier passage OK** : 2026-08-18 04:20 — 6791 trouvées, +398 / ~0 / -0
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
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** : 6794 au total, **6791 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 7, dont 0 en erreur
58 +- **Annonces en BD** : 10178 au total, **9668 actives**
59 +- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 99 % · photos 100 % · description 100 %
61 +- **Runs journalisés (60 derniers)** : 43, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/lokalia.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Espaces Lokalia — connecteur `lokalia`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 131/135
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 130/141
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Espaces Lokalia (espaceslokalia.ca) Le gestionnaire couvre plusieurs
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 131 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 130 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:21 — 131 trouvées, +0 / ~131 / -0
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
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** : 135 au total, **131 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 141 au total, **130 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 82 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/louer_ca.md +11 −11
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 4576/5357
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 4613/5908
6 6
7 7 ## Description de la source
8 8
@@ -25,20 +25,20 @@ 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 4576 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 4613 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 | 15 % | — |
35 +| `sector` | Secteur / quartier | 17 % | — |
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 −| `bathrooms` | Salles de bain | 86 % | 1 |
39 +| `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 83 % | 400 |
41 −| `availability_date` | Date de disponibilité | 98 % | now |
41 +| `availability_date` | Date de disponibilité | 99 % | 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… |
@@ -48,17 +48,17 @@ Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `l
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.7 h
52 −- **Dernier passage OK** : 2026-08-18 04:33 — 5029 trouvées, +36 / ~3813 / -123
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
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** : 5357 au total, **4576 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 5908 au total, **4613 actives**
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)** : 5, 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/louer_saguenay.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:33 — 5 trouvées, +0 / ~5 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/louis14.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 18/18
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 17/18
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Quartier Louis Quatorze (louis14.ca) 424 condos locatifs (immeubles A
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 18 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 17 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:33 — 17 trouvées, +0 / ~17 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 18 au total, **18 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 18 au total, **17 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lr_gestion.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 111/116
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 106/116
6 6
7 7 ## Description de la source
8 8
@@ -25,14 +25,14 @@ connecteur LR Gestion immobilière / LR Location (lrgestion.com ; portail d'anno
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 111 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 106 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 % | 1005B Rue Notre Dame — unité 1005B-3 |
33 33 | `address` | Adresse civique | 100 % | 1005 Rue Notre Dame, Gatineau, QC |
34 34 | `city` | Ville (normalisée) | 100 % | Gatineau |
35 −| `sector` | Secteur / quartier | 67 % | — |
35 +| `sector` | Secteur / quartier | 66 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 0 % | — |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 595 $ |
38 38 | `bedrooms` | Chambres | 0 % | — |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:33 — 112 trouvées, +0 / ~111 / -0
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
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** : 116 au total, **111 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 116 au total, **106 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/luxuor.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:34 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 75 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/lynk_olymbec.md +8 −8
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : Firecrawl · Annonces actives : 4/4
6 6
@@ -34,29 +34,29 @@ Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de l
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 35 | `sector` | Secteur / quartier | 100 % | Namur / De la Savane (CDN-NDG) |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Studio |
37 −| `price` | Loyer mensuel ($) | 100 % | 1 380 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 152 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 75 % | — |
41 −| `availability_date` | Date de disponibilité | 75 % | — |
40 +| `area_sqft` | Superficie (pi²) | 100 % | 517 |
41 +| `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.4989506 |
43 43 | `description` | Description | 100 % | Lynk’s studio, 3 ½, 4 ½ & 5 ½ floor plans are designed to support a flexible, connected l… |
44 −| `images` | Photos (JSON) | 100 % | 25 photo(s) — https://resource.rentcafe.com/image/upload/x_0,y_0,w_3200,h_2133,c_crop/q_a… |
44 +| `images` | Photos (JSON) | 100 % | 30 photo(s) — https://resource.rentcafe.com/image/upload/x_0,y_0,w_3200,h_2133,c_crop/q_a… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["chauffage — thermostat individuellement contrôlé", "électricité", "eau chaude", "détect… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.lynk.ca/lynk-dls/units |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:34 — 0 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 15:22 — 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
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-17
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
62 62
modified docs/connecteurs/m_immobilier.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 193/199
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 186/207
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ M Immobilier (mimmobilier.com) — LOCATIONS Agence indépendante de prestige (G
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 193 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 186 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 |---|---|---|---|
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 91 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 53 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 59 % | — |
42 +| `lat` | GPS (lat/lng) | 58 % | — |
43 43 | `description` | Description | 100 % | Beau logement de 2 chambres situé au niveau inférieur d'une propriété unifamiliale constr… |
44 44 | `images` | Photos (JSON) | 100 % | 25 photo(s) — https://www.mimmobilier.com/images/centris-slideshow/13486094-1-494761508.j… |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:34 — 190 trouvées, +1 / ~189 / -0
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
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** : 199 au total, **193 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 59 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 207 au total, **186 actives**
59 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 58 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/majestic.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montérégie · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:34 — 1 trouvées, +0 / ~1 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 0 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/matinale.md +16 −16
@@ -1,12 +1,12 @@
1 1 # Gestion Matinale — connecteur `matinale`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 44/45
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 44/46
6 6
7 7 ## Description de la source
8 8
9 −connecteur Gestion Matinale (gestionmatinale.com) ~44 apparts + maisons à Sherbrooke, Magog et Windsor. WordPress + WooCommerce : chaque logement offert est un « produit » — archives /a-louer/appartements-logements/ (paginée, 16/page) et /a-louer/maison/. Cartes li.product : titre « 1330 KING OUEST, SHERBROOKE, J1J 2B6 (Août) » (adresse, ville, code postal + disponibilité entre parenthèses), prix WooCommerce, type d'unité dans la taxonomie (classe product_cat-5-1-2) et photo. external_id = ID WordPress (classe post-<id>). ATTENTION robots.txt : « Crawl-Delay: 20 » -> request_delay de 20 s et AUCUNE fiche produit visitée (archives seulement, 4-5 requêtes par sync).
9 +connecteur Gestion Matinale (gestionmatinale.com) ~44 apparts + maisons à Sherbrooke, Magog et Windsor. WordPress + WooCommerce : chaque logement offert est un « produit » — archives /a-louer/appartements-logements/ (paginée, 16/page) et /a-louer/maison/. Cartes li.product : titre « 1330 KING OUEST, SHERBROOKE, J1J 2B6 (Août) » (adresse, ville, code postal + disponibilité entre parenthèses), prix WooCommerce, type d'unité dans la taxonomie (classe product_cat-5-1-2) et photo. external_id = ID WordPress (classe post-<id>). ATTENTION robots.txt : « Crawl-Delay: 20 » -> request_delay de 20 s, respecté aussi pour les fiches produit : chaque fiche (galerie complète + description) n'est visitée qu'à l'apparition de l'annonce ou à un changement de prix/dispo (cache BD `detail`), budget max_details par sync. La première synchronisation complète prend ~15 min (43 fiches x 20 s) ; les suivantes retombent à 4-5 requêtes.
10 10
11 11 - **Site** : https://gestionmatinale.com
12 12 - **Page des annonces** : https://gestionmatinale.com/a-louer/appartements-logements/
@@ -29,35 +29,35 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 −| `title` | Titre de l'annonce | 100 % | 1330 KING OUEST, SHERBROOKE, J1J 2B6 (Août) |
32 +| `title` | Titre de l'annonce | 100 % | 1330 KING OUEST, SHERBROOKE, J1J 2B6 (Vacant) |
33 33 | `address` | Adresse civique | 100 % | 1330 KING OUEST, SHERBROOKE, J1J 2B6 |
34 34 | `city` | Ville (normalisée) | 100 % | Sherbrooke |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 5½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 345 $ |
38 −| `bedrooms` | Chambres | 86 % | 3 |
39 −| `bathrooms` | Salles de bain | 0 % | — |
40 −| `area_sqft` | Superficie (pi²) | 0 % | — |
38 +| `bedrooms` | Chambres | 95 % | 3 |
39 +| `bathrooms` | Salles de bain | 11 % | — |
40 +| `area_sqft` | Superficie (pi²) | 14 % | — |
41 41 | `availability_date` | Date de disponibilité | 86 % | now |
42 −| `lat` | GPS (lat/lng) | 57 % | 45.3985951 |
43 −| `description` | Description | 0 % | — |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://gestionmatinale.com/wp-content/uploads/2024/06/1330-Ko-facade-1.jpg |
42 +| `lat` | GPS (lat/lng) | 59 % | 45.3985951 |
43 +| `description` | Description | 100 % | Magnifique 5 ½ entièrement rénové en 2024 — Coup de cœur assuré ! Découvrez ce superbe lo… |
44 +| `images` | Photos (JSON) | 100 % | 13 photo(s) — https://gestionmatinale.com/wp-content/uploads/2024/06/1330-Ko-facade-1.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 84 % | {"postal_code": "J1J 2B6"} |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"fridge": true, "washer_dryer": false, "washer_dryer_hookup": true}, "sto… |
47 47 | `url` | URL de l'annonce source | 100 % | https://gestionmatinale.com/appartement/5-1-2/1330-king-ouest-sherbrooke-j1j-2b6/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:35 — 44 trouvées, +0 / ~44 / -0
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
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
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 45 au total, **44 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 57 % · prix 100 % · photos 100 % · description 0 %
58 +- **Annonces en BD** : 46 au total, **44 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 59 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/may_bourg.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Centre-du-Québec · Backend : direct · Annonces actives : 6/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:35 — 6 trouvées, +0 / ~6 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 50 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
modified docs/connecteurs/medway.md +12 −12
@@ -1,8 +1,8 @@
1 1 # Groupe Medway — connecteur `medway`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 488/498
5 +**État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 482/499
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Groupe Medway (condosmedway.ca) Condos locatifs neufs multi-villes :
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 488 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 482 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 |---|---|---|---|
@@ -40,24 +40,24 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 590 |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2027-01-01 |
42 42 | `lat` | GPS (lat/lng) | 91 % | 46.7321163 |
43 −| `description` | Description | 0 % | — |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://condosmedway.ca/wp-content/uploads/2026/04/Faro-Modele-20.png |
43 +| `description` | Description | 100 % | Découvrez un milieu de vie pensé pour suivre votre rythme. Stratégiquement situé à quelqu… |
44 +| `images` | Photos (JSON) | 100 % | 23 photo(s) — https://b3853357.assetcdn.net/2.0/3853357/wp-content/uploads/2025/09/Header… |
45 45 | `amenities` | Commodités (JSON) | 78 % | ["Balcon 43 pi²"] |
46 −| `details` | Détails additionnels (JSON) | 78 % | {"balcony": true} |
47 −| `url` | URL de l'annonce source | 100 % | https://condosmedway.ca/projet/medway-faro/?t=r |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"balcony": true, "pool": true, "gym": true, "virtual_tour": "https://minuitmoinsune.view… |
47 +| `url` | URL de l'annonce source | 100 % | https://condosmedway.ca/medwayfaro/medway-faro-unite-1513/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:36 — 488 trouvées, +0 / ~488 / -0
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
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** : 498 au total, **488 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 91 % · prix 100 % · photos 100 % · description 0 %
58 +- **Annonces en BD** : 499 au total, **482 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 91 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/mellem.md +11 −11
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 78/87
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 79/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 78 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 79 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 |---|---|---|---|
@@ -35,28 +35,28 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 96 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 868 $ |
38 −| `bedrooms` | Chambres | 96 % | 1 |
39 −| `bathrooms` | Salles de bain | 0 % | — |
38 +| `bedrooms` | Chambres | 100 % | 1 |
39 +| `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 590 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.5786 |
43 −| `description` | Description | 100 % | B13 — 590 pi² — balcon 58 pi² — 1 chambre(s) — 1 salle(s) de bain — 5eme étage (C) |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://d10eh8wo1l4y8c.cloudfront.net/projects/a0d89b35-e0de-40d6-bb33-6c0de… |
43 +| `description` | Description | 100 % | B13 — 590 pi² — balcon 58 pi² — 1 chambre(s) — 1 salle(s) de bain — 5eme étage (C) Habite… |
44 +| `images` | Photos (JSON) | 100 % | 21 photo(s) — https://d10eh8wo1l4y8c.cloudfront.net/projects/a0d89b35-e0de-40d6-bb33-6c0d… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Internet", "Électricité", "Air climatisé et thermopompe dissimulée sur le toit", "5 éle… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"electricity": true, "internet": true}, "appliances": {"fridge": true}, "… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.mellem.ca/projets/grace-dart#unite-531 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:36 — 78 trouvées, +0 / ~78 / -0
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
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** : 87 au total, **78 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 90 au total, **79 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/mercini.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 47/52
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 45/53
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Groupe Mercini (Gestion Faleschini Mercier) (groupemercini.com — Li
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 47 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 45 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 |---|---|---|---|
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 100 % | 2 |
40 40 | `area_sqft` | Superficie (pi²) | 2 % | — |
41 41 | `availability_date` | Date de disponibilité | 98 % | now |
42 −| `lat` | GPS (lat/lng) | 94 % | 46.8123302 |
42 +| `lat` | GPS (lat/lng) | 96 % | 46.8123302 |
43 43 | `description` | Description | 100 % | Situé au 2575 boulevard de Monaco – app 2 à Duberger Référence de l’annonce : : REF230126… |
44 44 | `images` | Photos (JSON) | 100 % | 9 photo(s) — https://groupemercini.com/wp-content/uploads/2026/02/exposio_0002-min.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["2 Chambres", "2 salle(s) de bain", "2 Salles de bain", "Air climatisé", "Balcon", "Chie… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:37 — 47 trouvées, +0 / ~47 / -0
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
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** : 52 au total, **47 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 94 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 53 au total, **45 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 96 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/metcap.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 8/8
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:37 — 8 trouvées, +0 / ~8 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 8 au total, **8 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/minto.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 19/20
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:37 — 19 trouvées, +0 / ~19 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 20 au total, **19 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 84 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/mkar.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:37 — 5 trouvées, +0 / ~5 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-19 18:10 | HTTPSConnectionPool(host='gestionimmobilieremkar.ca', port=443): Read timed out. (read timeout=30) |
66 68
67 69 Rejouer la source seule : `python3 run.py sync mkar` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='mkar' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/moderno.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Lanaudière · Backend : direct · Annonces actives : 7/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:37 — 7 trouvées, +0 / ~7 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/mondev.md +10 −10
@@ -1,8 +1,8 @@
1 1 # Mondev — connecteur `mondev`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 47/49
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 43/49
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Mondev (mondev.ca) Grand constructeur-locateur montréalais (Ville-Ma
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 47 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 43 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 |---|---|---|---|
@@ -39,8 +39,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 49 % | 45.526832 |
43 −| `description` | Description | 94 % | Find your new home at Jacques in Ville-Marie. Studios, 1, 2, or 3-bedroom rentals with hi… |
42 +| `lat` | GPS (lat/lng) | 47 % | 45.526832 |
43 +| `description` | Description | 95 % | Find your new home at Jacques in Ville-Marie. Studios, 1, 2, or 3-bedroom rentals with hi… |
44 44 | `images` | Photos (JSON) | 100 % | 40 photo(s) — https://mondev.ca/wp-content/uploads/2025/06/Fullum_ext_Cam_001_1-1.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Appliances", "Electricity", "Heating", "Air Conditioning", "Indoor parking", "Gym", "Po… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true}, "appliances": {"fridge": true}, "a… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 47 trouvées, +0 / ~47 / -0
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
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** : 49 au total, **47 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 49 % · prix 100 % · photos 100 % · description 94 %
58 +- **Annonces en BD** : 49 au total, **43 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 47 % · prix 100 % · photos 100 % · description 95 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/montagnais.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 31/31
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API admin-ajax (WordPress)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 31 trouvées, +0 / ~31 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 31 au total, **31 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/morin.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 6/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 6 trouvées, +0 / ~6 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 83 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/msi.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 96/105
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 96/109
6 6
7 7 ## Description de la source
8 8
@@ -32,7 +32,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
32 32 | `title` | Titre de l'annonce | 100 % | 167 Avenue Ruel |
33 33 | `address` | Adresse civique | 100 % | 167 Avenue Ruel, Québec, QC, Canada |
34 34 | `city` | Ville (normalisée) | 100 % | Québec |
35 −| `sector` | Secteur / quartier | 98 % | Chutes-Montmorency |
35 +| `sector` | Secteur / quartier | 95 % | Chutes-Montmorency |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 88 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 095 $ |
38 38 | `bedrooms` | Chambres | 99 % | 2 |
@@ -40,7 +40,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 6 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.874519 |
43 −| `description` | Description | 27 % | — |
43 +| `description` | Description | 100 % | 4½ de 2 chambre(s) au 2e étage (dernier étage). Non fumeur, Balcon, Entrée lave-vaisselle… |
44 44 | `images` | Photos (JSON) | 100 % | 7 photo(s) — https://api.msimmobiliers.com/wp-content/uploads/2024/10/img_7982.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["2 e étage", "Dernier étage", "2 chambre", "Chien interdit", "Non fumeur", "Balcon", "En… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"appliances": {"washer_dryer_hookup": true, "dishwasher_hookup": true}, "balcony": true,… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 96 trouvées, +0 / ~96 / -0
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
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** : 105 au total, **96 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 27 %
58 +- **Annonces en BD** : 109 au total, **96 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/multi_logis.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Côte-Nord · Backend : direct · Annonces actives : 27/27
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 27 trouvées, +0 / ~27 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 27 au total, **27 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 96 % · photos 70 % · description 81 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/niddamour.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 14/14
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 14 trouvées, +0 / ~14 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **14 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/novelo.md +7 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Saguenay–Lac-Saint-Jean · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,23 +48,24 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:38 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 65 | Date | Message (sync_log) |
66 66 |---|---|
67 −| 2026-08-12 20:25 | HTTPSConnectionPool(host='appartementsnovelo.com', port=443): Read timed out. (read timeout=30) |
67 +| 2026-08-19 06:07 | HTTPSConnectionPool(host='appartementsnovelo.com', port=443): Read timed out. (read timeout=30) |
68 +| 2026-08-18 10:39 | HTTPSConnectionPool(host='appartementsnovelo.com', port=443): Read timed out. (read timeout=30) |
68 69
69 70 Rejouer la source seule : `python3 run.py sync novelo` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='novelo' ORDER BY ts DESC LIMIT 5;`).
70 71
modified docs/connecteurs/oklouer.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 41/41
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 95 % | 46.8142 |
42 +| `lat` | GPS (lat/lng) | 98 % | 46.8142 |
43 43 | `description` | Description | 100 % | Appartement meublé en location temporaire (court, moyen ou long terme). |
44 44 | `images` | Photos (JSON) | 100 % | 9 photo(s) — https://www.oklouer.com/uploads/m/202310172013094629693.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["1 lit", "1 salle de bain", "Avec air climatisé sur demande", "Meublé"] |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 41 trouvées, +0 / ~41 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 41 au total, **41 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 95 % · prix 100 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 98 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/omhm.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 3/3
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 3/4
6 6
7 7 ## Description de la source
8 8
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 0 % | — |
42 +| `lat` | GPS (lat/lng) | 67 % | — |
43 43 | `description` | Description | 0 % | — |
44 44 | `images` | Photos (JSON) | 0 % | — |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,17 +48,17 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.7 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 3 trouvées, +0 / ~3 / -0
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
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** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 0 % · description 0 %
61 −- **Runs journalisés (60 derniers)** : 5, dont 0 en erreur
58 +- **Annonces en BD** : 4 au total, **3 actives**
59 +- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 0 % · description 0 %
61 +- **Runs journalisés (60 derniers)** : 41, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/osgoode.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 4 trouvées, +0 / ~4 / -0
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
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 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/oxford.md +6 −8
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 2 trouvées, +0 / ~2 / -0
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
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
@@ -57,15 +57,13 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
57 57 ## Volumétrie & complétude
58 58
59 59 - **Annonces en BD** : 2 au total, **2 actives**
60 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
61 61 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
62 −- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
64 64 ## Erreurs connues & dépannage
65 65
66 −| Date | Message (sync_log) |
67 −|---|---|
68 −| 2026-08-14 06:42 | HTTPSConnectionPool(host='appartoxford.com', port=443): Read timed out. (read timeout=30) |
66 +Aucune erreur dans les 60 derniers runs journalisés.
69 67
70 68 Rejouer la source seule : `python3 run.py sync oxford` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='oxford' ORDER BY ts DESC LIMIT 5;`).
71 69
modified docs/connecteurs/per.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 3/3
6 6
@@ -39,7 +39,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 −| `lat` | GPS (lat/lng) | 67 % | 46.839488 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.839488 |
43 43 | `description` | Description | 0 % | — |
44 44 | `images` | Photos (JSON) | 100 % | 2 photo(s) — https://immeublesper.com/wp-content/uploads/2018/08/4515-4535-4555-4575-5e-A… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Intercom", "Balcon", "Plancher Bois Flottant, Céramique", "Stationnement à part : 30.00… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 3 trouvées, +0 / ~3 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 100 % · description 0 %
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/picard.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Picard Immobilier — connecteur `picard`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 34/34
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 29/34
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Picard Immobilier (picardimmobilier.net) La page /recherche/ liste to
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 34 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 29 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 34 trouvées, +0 / ~34 / -0
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
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** : 34 au total, **34 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 34 au total, **29 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/place_florimay.md +3 −3
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 0/0
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, API REST WordPress (wp-json)) alimente les colonnes de la
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 0 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 15:28 — 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 +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 11/11
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 11 trouvées, +0 / ~11 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **11 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 91 % · prix 91 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/progim.md +8 −8
@@ -1,8 +1,8 @@
1 1 # Progim — connecteur `progim`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 62/68
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 65/73
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Gestion Immobilière Progim (progimannonces.bstk.io — plateforme Bu
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 65 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 |---|---|---|---|
@@ -37,7 +37,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 450 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 68 % | 737 |
40 +| `area_sqft` | Superficie (pi²) | 71 % | 737 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.441216 |
43 43 | `description` | Description | 94 % | Situé dans le secteur paisible et recherché de Dorval, cet appartement bénéficie d’un emp… |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:39 — 62 trouvées, +0 / ~62 / -0
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
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** : 68 au total, **62 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 73 au total, **65 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 94 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/projection_immo.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 1/1
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 1 trouvées, +0 / ~1 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 1 au total, **1 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/promenade_des_forts.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 2 trouvées, +0 / ~2 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **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
62 62
modified docs/connecteurs/proprio_direct.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 190/190
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 183/193
6 6
7 7 ## Description de la source
8 8
@@ -25,13 +25,13 @@ Proprio Direct (propriodirect.com) — LOCATION L'inventaire (alimenté par le f
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 190 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 183 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 % | 31, Boul. des Hauteurs |
33 33 | `address` | Adresse civique | 100 % | 31, Boul. des Hauteurs |
34 −| `city` | Ville (normalisée) | 100 % | Saint-Jérôme |
34 +| `city` | Ville (normalisée) | 99 % | Saint-Jérôme |
35 35 | `sector` | Secteur / quartier | 61 % | Lafontaine |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 99 % | 3½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 095 $ |
@@ -48,18 +48,18 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 190 trouvées, +0 / ~190 / -0
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
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
56 56
57 57 ## Volumétrie & complétude
58 58
59 −- **Annonces en BD** : 190 au total, **190 actives**
60 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
59 +- **Annonces en BD** : 193 au total, **183 actives**
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 92 %
62 −- **Runs journalisés (60 derniers)** : 58, dont 0 en erreur
62 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
64 64 ## Erreurs connues & dépannage
65 65
modified docs/connecteurs/quanta.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 2/2
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 2 trouvées, +0 / ~2 / -0
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
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 58 - **Annonces en BD** : 2 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/quartier_mosaique.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 24/24
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 24 trouvées, +0 / ~24 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 24 au total, **24 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **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
62 62
modified docs/connecteurs/quartier_oree.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 31/31
5 +**État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 28/31
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Quartier Orée (quartieroree.com) Route Chassé, Sainte-Marie (Chaudi
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 31 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 28 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 31 trouvées, +0 / ~31 / -0
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
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** : 31 au total, **31 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 31 au total, **28 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/quartier_plus.md +12 −12
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Chaudière-Appalaches · Backend : direct · Annonces actives : 59/59
6 6
7 7 ## Description de la source
8 8
9 −connecteur Le Quartier Plus (lequartierplus.com — Thetford Mines, Chaudière-Appalaches). Complexe locatif 55+ autonome (aucun service de repas/soins : appartements standards, lofts urbains et unités bigénérationnelles) construit en 3 phases ; la page /plans-et-visites-virtuelles/ embarque un sélecteur d'étages WordPress (thème ubeo-theme-v5-child) dont TOUTES les unités sont rendues serveur : blocs `div.unit#unit_<n>` avec numéro, statut (« disponible », « Construction 2026 »…), type (3½/4½/4½+/5½), lettre de modèle, superficie du logement et du balcon, plan PNG/PDF. Seules les unités dont le statut contient « disponible » sont retenues. Aucun prix par unité (seul un « à partir de 1195 $ » global est cité en prose) -> price=None, rien d'inventé. L'adresse « 140, rue Kingsville » (phase 3) publiée sur la page n'est attachée qu'aux unités dont le statut mentionne « Construction 2026 ». external_id stable : numéro d'unité (unit_501 -> 501). robots.txt Yoast ouvert (Disallow vide), sitemap public.
9 +connecteur Le Quartier Plus (lequartierplus.com — Thetford Mines, Chaudière-Appalaches). Complexe locatif 55+ autonome (aucun service de repas/soins : appartements standards, lofts urbains et unités bigénérationnelles) construit en 3 phases ; la page /plans-et-visites-virtuelles/ embarque un sélecteur d'étages WordPress (thème ubeo-theme-v5-child) dont TOUTES les unités sont rendues serveur : blocs `div.unit#unit_<n>` avec numéro, statut (« disponible », « Construction 2026 »…), type (3½/4½/4½+/5½), lettre de modèle, superficie du logement et du balcon, plan PNG/PDF. Seules les unités dont le statut contient « disponible » sont retenues. Aucun prix par unité, MAIS la page publie des boîtes « info-box » par type (3½ / 4½ / 4½+ et 5½) avec « À partir de X$/mois », plage de superficies et caractéristiques -> price_label par type (prix plancher, convention « à partir de » du schéma) + description. Adresses (page /contact/) : phases 1-2 = 180, rue Kingsville ; phase 3 (statut « Construction 2026 ») = 140, rue Kingsville — G6G 0S7. Photos : le site n'a pas de galerie par unité (plan PNG seulement) ; on ajoute la vue de l'immeuble (plans) et la photo de la bâtisse (/contact/). external_id stable : numéro d'unité (unit_501 -> 501). robots.txt Yoast ouvert (Disallow vide), sitemap public.
10 10
11 11 - **Site** : https://www.lequartierplus.com
12 12 - **Page des annonces** : https://www.lequartierplus.com/plans-et-visites-virtuelles/
@@ -30,34 +30,34 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | Le Quartier Plus — Unité 501 (4½+) |
33 −| `address` | Adresse civique | 100 % | 140, rue Kingsville, Thetford Mines |
33 +| `address` | Adresse civique | 100 % | 140, rue Kingsville, Thetford Mines (Québec) G6G 0S7 |
34 34 | `city` | Ville (normalisée) | 100 % | Thetford Mines |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 0 % | — |
37 +| `price` | Loyer mensuel ($) | 97 % | 1 854 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 −| `bathrooms` | Salles de bain | 0 % | — |
39 +| `bathrooms` | Salles de bain | 64 % | 2 |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 1097 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.1078511 |
43 −| `description` | Description | 0 % | — |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://www.lequartierplus.com/wp-content/themes/ubeo-theme-v5-child/images/… |
43 +| `description` | Description | 100 % | Type 4½+ au Quartier Plus : À partir de 1854$/mois De 1116 pi² à 1273 pi² Balcon de 8 pi … |
44 +| `images` | Photos (JSON) | 100 % | 3 photo(s) — https://www.lequartierplus.com/wp-content/themes/ubeo-theme-v5-child/images/… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Modèle L", "Balcon 128 pi²"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"balcony": true} |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"balcony": true, "price_from": true} |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.lequartierplus.com/plans-et-visites-virtuelles/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 59 trouvées, +0 / ~59 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 59 au total, **59 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 0 % · photos 100 % · description 0 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 97 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/quartier_sila.md +8 −8
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 199/200
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 198/200
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Quartier Sila (silalevis.ca) Complexe de condos locatifs du Groupe Da
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 199 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 198 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 |---|---|---|---|
@@ -41,22 +41,22 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
41 41 | `availability_date` | Date de disponibilité | 7 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.7371 |
43 43 | `description` | Description | 100 % | Étage 7 \| Phase 2 \| Modèle B-3 \| 2 chambre(s) \| 1 salle(s) de bain \| Balcon de 63 pi… |
44 −| `images` | Photos (JSON) | 100 % | 2 photo(s) — https://d10eh8wo1l4y8c.cloudfront.net/projects/94e3406e-0815-4e93-986f-70295… |
44 +| `images` | Photos (JSON) | 100 % | 12 photo(s) — https://d10eh8wo1l4y8c.cloudfront.net/projects/94e3406e-0815-4e93-986f-7029… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["2 ascenseurs dans chaque phase", "Caméras de surveillance", "Entrée sécurisée", "1 stat… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"hot_water": true}, "elevator": true, "balcony": true, "gym": true, "stor… |
47 47 | `url` | URL de l'annonce source | 100 % | https://silalevis.ca/condos-locatifs-sila/ |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 199 trouvées, +0 / ~199 / -0
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
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** : 200 au total, **199 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 200 au total, **198 actives**
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 26 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/realstar.md +7 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 9/9
6 6
@@ -31,7 +31,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
31 31 |---|---|---|---|
32 32 | `title` | Titre de l'annonce | 100 % | Bourg Du Village |
33 33 | `address` | Adresse civique | 100 % | 25 Place Casavant, Sainte Therese, QC J7E 5X1 |
34 −| `city` | Ville (normalisée) | 100 % | Sainte-Thérèse |
34 +| `city` | Ville (normalisée) | 89 % | Sainte-Thérèse |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 11 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 750 $ |
@@ -48,22 +48,23 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:40 — 9 trouvées, +0 / ~9 / -0
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
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 58 - **Annonces en BD** : 9 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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 1 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 65 | Date | Message (sync_log) |
66 66 |---|---|
67 +| 2026-08-21 01:15 | 502 Server Error: Bad Gateway for url: https://api.firecrawl.dev/v1/scrape |
67 68 | 2026-08-15 21:53 | 502 Server Error: Bad Gateway for url: https://api.firecrawl.dev/v1/scrape |
68 69
69 70 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;`).
modified docs/connecteurs/remax_quebec.md +15 −15
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 3237/3379
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 3227/3518
6 6
7 7 ## Description de la source
8 8
@@ -21,17 +21,17 @@ RE/MAX Québec (remax-quebec.com) — LOCATIONS Le site interroge un index Meili
21 21 - **Authentification** : aucune — contenu public
22 22 - **Pagination** : page de liste unique (pas de pagination)
23 23 - **Backend anti-bot / rendu** : requests direct (session UA LouKaBot, throttling poli)
24 −- **Politesse** : 0.15 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)`
24 +- **Politesse** : 0.4 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)`
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 3237 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 3227 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 % | 12 Rue des Pommiers |
33 33 | `address` | Adresse civique | 100 % | 12 Rue des Pommiers |
34 −| `city` | Ville (normalisée) | 100 % | Château-Richer |
34 +| `city` | Ville (normalisée) | 99 % | Château-Richer |
35 35 | `sector` | Secteur / quartier | 86 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Maison |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 950 $ |
@@ -40,25 +40,25 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 53 % | 884 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.963065 |
43 −| `description` | Description | 90 % | Magnifique propriété récente louée entièrement meublée et équipée. Luminosité exceptionne… |
44 −| `images` | Photos (JSON) | 100 % | 24 photo(s) — https://media.remax-quebec.com/img/www_full/0194/m22369195-pri01-01.jpg |
43 +| `description` | Description | 96 % | Magnifique propriété récente louée entièrement meublée et équipée. Luminosité exceptionne… |
44 +| `images` | Photos (JSON) | 99 % | 24 photo(s) — https://media.remax-quebec.com/img/www_full/0194/m22369195-pri01-01.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"ac": true, "balcony": true, "storage": true, "pets": "non", "smoking": false, "furnishe… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.remax-quebec.com/fr/proprietes/maison-a-louer-region-de-quebec/12-rue-des-pom… |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:43 — 3235 trouvées, +6 / ~3229 / -8
53 −- **Throttling** : 0.15 s entre requêtes (constante de classe `request_delay`)
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
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** : 3379 au total, **3237 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 90 %
61 −- **Runs journalisés (60 derniers)** : 58, dont 0 en erreur
58 +- **Annonces en BD** : 3518 au total, **3227 actives**
59 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 99 % · description 96 %
61 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
@@ -69,7 +69,7 @@ Rejouer la source seule : `python3 run.py sync remax_quebec` · vérifier ensuit
69 69 ## Licence, attribution & conditions
70 70
71 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 0.15 s ; cache détail pour minimiser les requêtes.
72 +- User-Agent **identifiable** avec page d'information et contact : `LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai)` ; throttling 0.4 s ; cache détail pour minimiser les requêtes.
73 73 - Chaque annonce affichée sur Lou-Ka **pointe vers l'annonce d'origine** (colonne `url`) — la source garde le trafic de conversion.
74 74 - Retrait sur demande : contact@spboucher.ai.
75 75
modified docs/connecteurs/rentals_ca.md +16 −16
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : Scrapfly · Annonces actives : 4906/4906
5 +**État : actif** · Région : Province · Backend : Scrapfly · Annonces actives : 4439/5654
6 6
7 7 ## Description de la source
8 8
@@ -25,40 +25,40 @@ 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 4906 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 4439 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 −| `address` | Adresse civique | 90 % | 1225 Saint Marc Street |
33 +| `address` | Adresse civique | 100 % | 1225 Saint Marc Street |
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 −| `sector` | Secteur / quartier | 15 % | — |
35 +| `sector` | Secteur / quartier | 19 % | — |
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²) | 72 % | 400 |
41 −| `availability_date` | Date de disponibilité | 85 % | now |
40 +| `area_sqft` | Superficie (pi²) | 80 % | 400 |
41 +| `availability_date` | Date de disponibilité | 94 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.492189 |
43 −| `description` | Description | 90 % | Le Marco Situé au 1225, rue Saint Marc, à proximité du métro Guy-Concordia, ce quartier o… |
44 −| `images` | Photos (JSON) | 90 % | 12 photo(s) — https://images.rentals.ca/property-pictures/large/montreal-qc/809380/apartm… |
45 −| `amenities` | Commodités (JSON) | 91 % | ["Cuisinière", "Non-fumeur", "Balcon", "Réfrigérateur", "Électricité incluse", "Chauffage… |
43 +| `description` | Description | 100 % | Le Marco Situé au 1225, rue Saint Marc, à proximité du métro Guy-Concordia, ce quartier o… |
44 +| `images` | Photos (JSON) | 100 % | 12 photo(s) — https://images.rentals.ca/property-pictures/large/montreal-qc/809380/apartm… |
45 +| `amenities` | Commodités (JSON) | 92 % | ["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://rentals.ca/montreal/le-marco-1225-st-marc-st |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : —
52 −- **Dernier passage OK** : 2026-08-18 04:49 — 4224 trouvées, +1454 / ~0 / -0
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
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** : 4906 au total, **4906 actives**
59 −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 90 % · description 90 %
61 −- **Runs journalisés (60 derniers)** : 2, dont 0 en erreur
58 +- **Annonces en BD** : 5654 au total, **4439 actives**
59 +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 +- **Runs journalisés (60 derniers)** : 37, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/rentalys.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 10/10
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:49 — 10 trouvées, +0 / ~10 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 10 au total, **10 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : désactivé (disabled=True)** · Région : Québec · Backend : direct · Annonces actives : 0/214
6 6
modified docs/connecteurs/roomies.md +12 −12
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 277/278
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 281/306
6 6
7 7 ## Description de la source
8 8
@@ -25,40 +25,40 @@ 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 277 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 281 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 % | Furnished room in an apartment |
33 −| `address` | Adresse civique | 66 % | — |
33 +| `address` | Adresse civique | 68 % | — |
34 34 | `city` | Ville (normalisée) | 100 % | Montréal |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Chambre |
37 37 | `price` | Loyer mensuel ($) | 100 % | 690 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
39 −| `bathrooms` | Salles de bain | 73 % | 1 |
39 +| `bathrooms` | Salles de bain | 70 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 5 % | — |
41 −| `availability_date` | Date de disponibilité | 97 % | 2026-10-01 |
41 +| `availability_date` | Date de disponibilité | 96 % | 2026-10-01 |
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) | 99 % | ["Furnished", "Internet access"] |
45 +| `amenities` | Commodités (JSON) | 98 % | ["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 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 3.6 h
52 −- **Dernier passage OK** : 2026-08-18 04:50 — 276 trouvées, +2 / ~274 / -1
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
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** : 278 au total, **277 actives**
59 −- **Première ingestion** : 2026-08-17 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 306 au total, **281 actives**
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)** : 5, 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/roussin.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 36/36
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:50 — 36 trouvées, +0 / ~36 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 36 au total, **36 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/royal_lepage.md +14 −14
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 951/1043
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 954/1138
6 6
7 7 ## Description de la source
8 8
9 −Royal LePage (royallepage.ca) — LOCATIONS Québec Le portail rend ses résultats côté serveur. La recherche par ville est filtrable : /fr/search/homes/{page}/?search_str=...&prov_code=QC&city_name= ...&lat=..&lng=..&search_type=city + « transactionType=LEASE » (trouvé dans le formulaire caché du site) renvoie les propriétés À LOUER (46/page, prix « 1 850.00 $ /mois » sur la carte). Chaque recherche plafonne à ~1 250 résultats ; on SHARD par points d'ancrage répartis dans la province et on dédoublonne par numéro MLS (dans l'URL /.../mls{no}/). Aucune dépendance Firecrawl : requêtes directes. Adapté du connecteur « à vendre » d'Immo-Ka (agent-courtage/immoka). La fiche détail (accessible en direct, ~0,7 s) fournit ce que la carte liste n'a pas : description (« Remarques »), superficie habitable et bureau — enrichissement plafonné (DETAIL_LIMIT/cycle) + cache BD, le parc se complète au fil des synchronisations.
9 +Royal LePage (royallepage.ca) — LOCATIONS Québec Le portail rend ses résultats côté serveur. La recherche par ville est filtrable : /fr/search/homes/{page}/?search_str=...&prov_code=QC&city_name= ...&lat=..&lng=..&search_type=city + « transactionType=LEASE » (trouvé dans le formulaire caché du site) renvoie les propriétés À LOUER (46/page, prix « 1 850.00 $ /mois » sur la carte). Chaque recherche plafonne à ~1 250 résultats ; on SHARD par points d'ancrage répartis dans la province et on dédoublonne par numéro MLS (dans l'URL /.../mls{no}/). Aucune dépendance Firecrawl : requêtes directes. Adapté du connecteur « à vendre » d'Immo-Ka (agent-courtage/immoka). La fiche détail (accessible en direct, ~0,7 s) fournit ce que la carte liste n'a pas : galerie COMPLÈTE (originaux pleine résolution du CDN jumplisting, ordre du carrousel), description (« Remarques »), superficie habitable, caractéristiques (label/valeur) et bureau — enrichissement plafonné (DETAIL_LIMIT/cycle) + cache BD, le parc se complète au fil des synchronisations.
10 10
11 11 - **Site** : https://www.royallepage.ca
12 12 - **Page des annonces** : https://www.royallepage.ca/fr/qc/rentals/
@@ -17,7 +17,7 @@ Royal LePage (royallepage.ca) — LOCATIONS Québec Le portail rend ses résulta
17 17
18 18 - **Type d'accès** : pages HTML (rendu serveur)
19 19 - **Endpoint de base** : https://www.royallepage.ca/fr/search/homes
20 −- **URLs de départ (constantes du module)** : https://www.royallepage.ca/fr/search/homes · https://www.royallepage.ca
20 +- **URLs de départ (constantes du module)** : https://www.royallepage.ca/fr/search/homes · https://www.royallepage.ca · https://rlp.jumplisting.com/photos/{path}/{pid}_{idx}.jpg
21 21 - **Authentification** : aucune — contenu public
22 22 - **Pagination** : page de liste unique (pas de pagination)
23 23 - **Backend anti-bot / rendu** : requests direct (session UA LouKaBot, throttling poli)
@@ -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 951 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 954 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 |---|---|---|---|
@@ -37,29 +37,29 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 850 $ |
38 38 | `bedrooms` | Chambres | 90 % | 1 |
39 39 | `bathrooms` | Salles de bain | 93 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 12 % | 527 |
40 +| `area_sqft` | Superficie (pi²) | 59 % | 527 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.506426 |
43 −| `description` | Description | 21 % | Superbe 1 chambre fermée au 31e étage du Maestria, avec balcon privé et vue panoramique s… |
44 −| `images` | Photos (JSON) | 100 % | 1 photo(s) — https://rlp.jumplisting.com/photos/28/95/49/24/28954924_0_lg.jpg |
43 +| `description` | Description | 95 % | Superbe 1 chambre fermée au 31e étage du Maestria, avec balcon privé et vue panoramique s… |
44 +| `images` | Photos (JSON) | 100 % | 20 photo(s) — https://rlp.jumplisting.com/photos/28/95/49/24/28954924_0.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"electricity": true, "hot_water": true, "internet": true}, "appliances": … |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.royallepage.ca/fr/property/quebec/montreal-ville-marie/3117-1210-rue-jeanne-m… |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 949 trouvées, +0 / ~949 / -1
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
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** : 1043 au total, **951 actives**
60 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
61 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 21 %
62 −- **Runs journalisés (60 derniers)** : 59, dont 0 en erreur
59 +- **Annonces en BD** : 1138 au total, **954 actives**
60 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
61 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 95 %
62 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
64 64 ## Erreurs connues & dépannage
65 65
modified docs/connecteurs/savouet.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 15/17
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 15 trouvées, +0 / ~15 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 17 au total, **15 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 93 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/sdg.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 9/11
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 9 trouvées, +0 / ~9 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **9 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 89 % · prix 0 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/sentinelle.md +7 −7
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 10/11
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 9/11
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur La Sentinelle (lasentinellelevis.com) Immeuble de 144 condos locatifs
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 10 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 9 annonces actives ; exemple tiré d'une ligne réelle de la BD.
29 29
30 30 | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel |
31 31 |---|---|---|---|
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 10 trouvées, +0 / ~10 / -0
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
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** : 11 au total, **10 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 11 au total, **9 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/sgiq.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 147/147
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 147 trouvées, +0 / ~147 / -0
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
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 58 - **Annonces en BD** : 147 au total, **147 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 99 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/shdm.md +9 −9
@@ -1,8 +1,8 @@
1 1 # SHDM — connecteur `shdm`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 2/21
5 +**État : actif** · Région : Montréal · Backend : direct · Annonces actives : 1/23
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur SHDM — Société d'habitation et de développement de Montréal (sh
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 2 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 1 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 |---|---|---|---|
@@ -39,7 +39,7 @@ Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `l
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 0 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 −| `lat` | GPS (lat/lng) | 50 % | 45.5212722 |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.5212722 |
43 43 | `description` | Description | 100 % | Triple x neuf idéalement situé dans l’arrondissement Ville-Marie , à deux pas du parc Laf… |
44 44 | `images` | Photos (JSON) | 100 % | 7 photo(s) — https://www.shdm.org/app/uploads/2026/06/champlain_immeuble1.jpg |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Balcon", "2 chambres", "Clientèle : Pour tous"] |
@@ -48,16 +48,16 @@ Le connecteur (direct, API GraphQL interne) alimente les colonnes de la table `l
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 2 trouvées, +0 / ~2 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 21 au total, **2 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 50 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 23 au total, **1 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/siagi.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 6/6
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 6 trouvées, +0 / ~6 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 6 au total, **6 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 0 % · description 0 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/sibelanger.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 12/19
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 12/22
6 6
7 7 ## Description de la source
8 8
@@ -35,11 +35,11 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
35 35 | `sector` | Secteur / quartier | 100 % | Charlesbourg |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Maison |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 595 $ |
38 −| `bedrooms` | Chambres | 92 % | — |
38 +| `bedrooms` | Chambres | 83 % | — |
39 39 | `bathrooms` | Salles de bain | 17 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 42 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-09-01 |
42 −| `lat` | GPS (lat/lng) | 83 % | 46.8673632 |
42 +| `lat` | GPS (lat/lng) | 100 % | 46.8673632 |
43 43 | `description` | Description | 100 % | Grand projet locatif de maisons de ville dans Charlesbourg. Complexe de maisons en rangée… |
44 44 | `images` | Photos (JSON) | 100 % | 21 photo(s) — https://sibelanger.com/app/uploads/2026/05/copie-de-1175-197-chamonix-photo… |
45 45 | `amenities` | Commodités (JSON) | 100 % | ["Non meublé", "Entrée laveuse-sécheuse", "Entrée lave-vaisselle", "Balcon", "Chauffé", "… |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 12 trouvées, +0 / ~12 / -0
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
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** : 19 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 83 % · prix 100 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 22 au total, **12 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/sig.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 75 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/simard.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 5/5
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 5 trouvées, +0 / ~5 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 5 au total, **5 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 20 % · prix 40 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/simplex.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 3/3
6 6
@@ -32,7 +32,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
32 32 | `title` | Titre de l'annonce | 100 % | Presque dans la cour du Cégep @ ÉTUDIANTS ! |
33 33 | `address` | Adresse civique | 0 % | — |
34 34 | `city` | Ville (normalisée) | 100 % | Shawinigan |
35 −| `sector` | Secteur / quartier | 67 % | — |
35 +| `sector` | Secteur / quartier | 33 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 2½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 740 $ |
38 38 | `bedrooms` | Chambres | 100 % | 1 |
@@ -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) : —
52 −- **Dernier passage OK** : 2026-08-18 06:19 — 3 trouvées, +3 / ~0 / -0
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
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 58 - **Annonces en BD** : 3 au total, **3 actives**
59 −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 1, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 36, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/somex_saintnicolas.md +9 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 145/145
6 6
@@ -48,21 +48,24 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 145 trouvées, +0 / ~145 / -0
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
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 58 - **Annonces en BD** : 145 au total, **145 actives**
59 −- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-08 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 2 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-21 10:04 | 500 Server Error: Internal Server Error for url: https://app.livya.com/fr/hulix/projects/somex/plans/5e51343d-a93a-4982-a155-6c14ae1ff73e?noLayout=1 |
68 +| 2026-08-19 15:40 | 500 Server Error: Internal Server Error for url: https://app.livya.com/fr/hulix/projects/somex/plans/5e51343d-a93a-4982-a155-6c14ae1ff73e?noLayout=1 |
66 69
67 70 Rejouer la source seule : `python3 run.py sync somex_saintnicolas` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='somex_saintnicolas' ORDER BY ts DESC LIMIT 5;`).
68 71
modified docs/connecteurs/souleymane.md +9 −9
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 13/14
6 6
@@ -34,30 +34,30 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
34 34 | `city` | Ville (normalisée) | 100 % | Gatineau |
35 35 | `sector` | Secteur / quartier | 62 % | Masson-Angers |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 77 % | Maison |
37 −| `price` | Loyer mensuel ($) | 100 % | 1 700 $ |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 650 $ |
38 38 | `bedrooms` | Chambres | 92 % | 2 |
39 39 | `bathrooms` | Salles de bain | 69 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 8 % | 86 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 −| `lat` | GPS (lat/lng) | 92 % | 45.556441 |
43 −| `description` | Description | 100 % | MAISON 2 CHAMBRES À LOUER À MASSON-ANGERS – COUR PRIVÉE SANS VOISIN ARRIÈRE 📍 327, rue de… |
42 +| `lat` | GPS (lat/lng) | 100 % | 45.556441 |
43 +| `description` | Description | 100 % | ━━━━━━━━━━ FRANÇAIS ━━━━━━━━━━ 🏡 MAISON 2 CHAMBRES À LOUER À MASSON-ANGERS – COUR PRIVÉE … |
44 44 | `images` | Photos (JSON) | 100 % | 5 photo(s) — https://gestionsouleymane.com/wp-content/uploads/2026/08/DSC09357-HDR.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "appliances": {"… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"electricity": true, "internet": true}, "appliances": {"fridge": true, "w… |
47 47 | `url` | URL de l'annonce source | 100 % | https://gestionsouleymane.com/property/belle-maison-2-chambres-a-louer-a-masson-angers |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 13 trouvées, +0 / ~13 / -0
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
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 58 - **Annonces en BD** : 14 au total, **13 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 92 % · prix 100 % · photos 100 % · description 100 %
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
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
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/stb_immobilier.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Bas-Saint-Laurent · Backend : direct · Annonces actives : 11/11
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 11 trouvées, +0 / ~11 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 11 au total, **11 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 91 % · prix 73 % · photos 100 % · description 73 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/summum.md +14 −14
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 89/95
5 +**État : actif** · Région : Laurentides · Backend : direct · Annonces actives : 89/97
6 6
7 7 ## Description de la source
8 8
9 −connecteur Gestion immobilière Summum (location.summumpm.com) — portail hébergé Building Stack (même famille que le portail edifialocation.com du connecteur edifia.py) : Saint-Jérôme, Blainville, Montréal, Laval, Longueuil, Granby… - /Listing/Listings embarque `var units = [...]` : JSON complet des unités affichées (ApartmentId stable, prix, pi², chambres, salles de bain, adresse complète avec GPS, contact de location, photo) ; - les pages immeuble /b/<id> donnent la date de disponibilité par unité et les commodités de l'immeuble (une requête par immeuble, en cache via self.detail, plafonnée). Portail SaaS standard, pas de robots.txt (tout permis).
9 +connecteur Gestion immobilière Summum (location.summumpm.com) — portail hébergé Building Stack (même famille que le portail edifialocation.com du connecteur edifia.py) : Saint-Jérôme, Blainville, Montréal, Laval, Longueuil, Granby… - /Listing/Listings embarque `var units = [...]` : JSON complet des unités affichées (ApartmentId stable, prix, pi², chambres, salles de bain, adresse complète avec GPS, contact de location, photo) ; - les pages immeuble /b/<id> donnent la date de disponibilité par unité et les commodités de l'immeuble (une requête par immeuble, en cache via self.detail, plafonnée) ; - /Listing/ApartmentView?id=<ApartmentId>&lang=fr-CA (fragment AJAX des onglets) donne la fiche UNITÉ : étage, équipements (électricité/ chauffage/eau chaude, plancher, wi-fi, réfrigérateur, cuisinière, balcon…), commentaires (visite virtuelle) et ~10 photos pleine taille (une requête par unité, en cache via self.detail, plafonnée). Portail SaaS standard, pas de robots.txt (tout permis).
10 10
11 11 - **Site** : https://location.summumpm.com
12 12 - **Page des annonces** : https://location.summumpm.com/Listing/Listings
@@ -40,35 +40,35 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 16 % | 200 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.537562 |
43 −| `description` | Description | 84 % | 200 pi² — 1 salle(s) de bain |
44 −| `images` | Photos (JSON) | 100 % | 3 photo(s) — https://wfiles.buildingstack.com/resources/image/Lq9HKcvJEIyqj38QhBecAYYY9Yi… |
45 −| `amenities` | Commodités (JSON) | 13 % | ["Arrêt de bus à proximité", "Station de métro à proximité", "Salle de buanderie"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"laundry": true, "bedrooms": 0, "bathrooms": 1, "contact": {"name": "Zachary Pilon", "ph… |
43 +| `description` | Description | 100 % | 200 pi² — 1 salle(s) de bain — étage SSOL. Électricité incluse. Chauffage inclus. Eau cha… |
44 +| `images` | Photos (JSON) | 100 % | 6 photo(s) — https://wfiles.buildingstack.com/resources/image/U7TqP3PpTMr2TcyYjAGa9QAWh28… |
45 +| `amenities` | Commodités (JSON) | 18 % | ["Arrêt de bus à proximité", "Station de métro à proximité", "Salle de buanderie", "Réfri… |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true, "internet": true… |
47 47 | `url` | URL de l'annonce source | 100 % | https://location.summumpm.com/b/202029066007004535622/287081 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:53 — 89 trouvées, +0 / ~89 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 −- **Annonces en BD** : 95 au total, **89 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 84 %
58 +- **Annonces en BD** : 97 au total, **89 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 5 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 65 | Date | Message (sync_log) |
66 66 |---|---|
67 +| 2026-08-19 21:15 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
68 +| 2026-08-19 15:40 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
67 69 | 2026-08-17 09:04 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
68 70 | 2026-08-17 03:03 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
69 71 | 2026-08-16 01:50 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
70 −| 2026-08-15 13:44 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
71 −| 2026-08-14 00:58 | HTTPSConnectionPool(host='location.summumpm.com', port=443): Read timed out. (read timeout=30) |
72 72
73 73 Rejouer la source seule : `python3 run.py sync summum` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='summum' ORDER BY ts DESC LIMIT 5;`).
74 74
modified docs/connecteurs/sutton.md +21 −21
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 1226/1393
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 1200/1490
6 6
7 7 ## Description de la source
8 8
@@ -25,41 +25,41 @@ 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 1226 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 1200 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 % | 3762 Rue St-Dominique |
33 −| `address` | Adresse civique | 100 % | 3762 Rue St-Dominique |
34 −| `city` | Ville (normalisée) | 100 % | Montréal |
35 −| `sector` | Secteur / quartier | 54 % | Le Plateau-Mont-Royal |
32 +| `title` | Titre de l'annonce | 100 % | 3762 Rue Saint-Dominique |
33 +| `address` | Adresse civique | 100 % | 3762 Rue Saint-Dominique |
34 +| `city` | Ville (normalisée) | 99 % | Montréal |
35 +| `sector` | Secteur / quartier | 73 % | Le Plateau-Mont-Royal |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 73 % | 1 950 $ |
38 −| `bedrooms` | Chambres | 73 % | 2 |
39 −| `bathrooms` | Salles de bain | 73 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 38 % | 828 |
37 +| `price` | Loyer mensuel ($) | 100 % | 1 950 $ |
38 +| `bedrooms` | Chambres | 100 % | 2 |
39 +| `bathrooms` | Salles de bain | 100 % | 1 |
40 +| `area_sqft` | Superficie (pi²) | 50 % | 828 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 70 % | — |
43 −| `description` | Description | 72 % | Charmant et lumineux condo de 2 chambres idéalement situé au coeur du vibrant Plateau. Av… |
44 −| `images` | Photos (JSON) | 73 % | 13 photo(s) — https://immo.vrtx.co/pic450/11476711.jpg |
45 −| `amenities` | Commodités (JSON) | 6 % | [] |
42 +| `lat` | GPS (lat/lng) | 99 % | 45.515478342 |
43 +| `description` | Description | 98 % | Charmant et lumineux condo de 2 chambres idéalement situé au coeur du vibrant Plateau. Av… |
44 +| `images` | Photos (JSON) | 100 % | 13 photo(s) — https://immo.vrtx.co/pic450/11476711.jpg |
45 +| `amenities` | Commodités (JSON) | 8 % | [] |
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://www.suttonquebec.com/fr/inscription/appartement-a-louer-3762-rue-st-dominique-mon… |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 1226 trouvées, +1 / ~1225 / -0
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
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** : 1393 au total, **1226 actives**
60 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
61 −- **Complétude clé (actives)** : GPS 70 % · prix 73 % · photos 73 % · description 72 %
62 −- **Runs journalisés (60 derniers)** : 58, dont 0 en erreur
59 +- **Annonces en BD** : 1490 au total, **1200 actives**
60 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
61 +- **Complétude clé (actives)** : GPS 99 % · prix 100 % · photos 100 % · description 98 %
62 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
64 64 ## Erreurs connues & dépannage
65 65
modified docs/connecteurs/terater.md +8 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Estrie · Backend : direct · Annonces actives : 12/14
6 6
@@ -48,21 +48,23 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 12 trouvées, +0 / ~12 / -0
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
53 53 - **Throttling** : 0.7 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 14 au total, **12 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 67 % · prix 100 % · photos 100 % · description 0 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 1 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-18 13:47 | 500 Server Error: Internal Server Error for url: https://terater.ca/a-louer/ |
66 68
67 69 Rejouer la source seule : `python3 run.py sync terater` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='terater' ORDER BY ts DESC LIMIT 5;`).
68 70
modified docs/connecteurs/terra.md +9 −9
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Québec · Backend : direct · Annonces actives : 29/51
5 +**État : actif** · Région : Québec · Backend : direct · Annonces actives : 28/51
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur TERRA Condos locatifs (terracondolocatif.ca) Projet de 4 phases sur 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 29 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 28 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 |---|---|---|---|
@@ -34,7 +34,7 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
34 34 | `city` | Ville (normalisée) | 100 % | Lévis |
35 35 | `sector` | Secteur / quartier | 100 % | Desjardins (Lévis) |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 90 % | 1 295 $ |
37 +| `price` | Loyer mensuel ($) | 89 % | 1 295 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 0 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 100 % | 1381 |
@@ -48,16 +48,16 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 29 trouvées, +0 / ~29 / -0
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
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** : 51 au total, **29 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 90 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 51 au total, **28 actives**
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 89 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/thrace.md +11 −11
@@ -1,8 +1,8 @@
1 1 # Gestions Thrace — connecteur `thrace`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 172/182
5 +**État : actif** · Région : Mauricie · Backend : direct · Annonces actives : 162/182
6 6
7 7 ## Description de la source
8 8
@@ -25,7 +25,7 @@ connecteur Gestions Thrace (gestionsthrace.com) Plus gros gestionnaire de la Mau
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 172 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 162 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 |---|---|---|---|
@@ -34,30 +34,30 @@ Le connecteur (direct, sitemap XML + pages HTML) alimente les colonnes de la tab
34 34 | `city` | Ville (normalisée) | 100 % | Trois-Rivières |
35 35 | `sector` | Secteur / quartier | 0 % | — |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 99 % | 4½ |
37 −| `price` | Loyer mensuel ($) | 66 % | 1 695 $ |
37 +| `price` | Loyer mensuel ($) | 65 % | 1 695 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
39 39 | `bathrooms` | Salles de bain | 95 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 41 % | 888 |
40 +| `area_sqft` | Superficie (pi²) | 43 % | 888 |
41 41 | `availability_date` | Date de disponibilité | 100 % | now |
42 42 | `lat` | GPS (lat/lng) | 100 % | 46.3449 |
43 43 | `description` | Description | 100 % | 3e étage \| Modèle B \| 2 chambre(s) \| 1 salle(s) de bain \| Promo -100$/mois* \| Plan :… |
44 44 | `images` | Photos (JSON) | 100 % | 2 photo(s) — https://d10eh8wo1l4y8c.cloudfront.net/projects/d6e2aa7e-ccb0-41a5-b47b-e8ca6… |
45 −| `amenities` | Commodités (JSON) | 59 % | ["Internet", "Eau chaude"] |
45 +| `amenities` | Commodités (JSON) | 58 % | ["Internet", "Eau chaude"] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"hot_water": true, "internet": true}, "building": "Le Radisson", "floor":… |
47 47 | `url` | URL de l'annonce source | 100 % | https://www.gestionsthrace.com/fr/residential?building=le-radisson |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 172 trouvées, +0 / ~172 / -0
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
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** : 182 au total, **172 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 66 % · photos 100 % · description 100 %
58 +- **Annonces en BD** : 182 au total, **162 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 65 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
modified docs/connecteurs/tri_logis.md +3 −3
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Abitibi-Témiscamingue · Backend : direct · Annonces actives : 0/1
6 6
@@ -48,8 +48,8 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 0 trouvées, +0 / ~0 / -0
51 +- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h
52 +- **Dernier passage OK** : 2026-08-22 15:49 — 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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : désactivé (disabled=True)** · Région : Québec · Backend : direct · Annonces actives : 0/30
6 6
modified docs/connecteurs/trylon.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 7/7
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:54 — 7 trouvées, +0 / ~7 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 7 au total, **7 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/ubee.md +7 −7
@@ -1,8 +1,8 @@
1 1 # Ubee (location) — connecteur `ubee`
2 2
3 −_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 243/246
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 243/249
6 6
7 7 ## Description de la source
8 8
@@ -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.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:55 — 243 trouvées, +0 / ~243 / -0
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
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** : 246 au total, **243 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 249 au total, **243 actives**
59 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 0 %
61 −- **Runs journalisés (60 derniers)** : 58, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/uptimo.md +9 −9
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 63/78
5 +**État : actif** · Région : Estrie · Backend : direct · Annonces actives : 62/78
6 6
7 7 ## Description de la source
8 8
@@ -25,18 +25,18 @@ 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 63 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 62 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 | 95 % | Mont-Bellevue |
35 +| `sector` | Secteur / quartier | 94 % | 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 |
39 −| `bathrooms` | Salles de bain | 98 % | 1 |
39 +| `bathrooms` | Salles de bain | 97 % | 1 |
40 40 | `area_sqft` | Superficie (pi²) | 2 % | — |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 42 | `lat` | GPS (lat/lng) | 98 % | 45.380655 |
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:55 — 52 trouvées, +0 / ~52 / -5
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
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, **63 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 78 au total, **62 actives**
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
62 62
modified docs/connecteurs/urban_services.md +18 −14
@@ -1,12 +1,12 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 52/56
5 +**État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 44/56
6 6
7 7 ## Description de la source
8 8
9 −connecteur Urban Services (urbanservices.ca) Gestionnaire de Gatineau (Urban Tenant Solutions) ; portail de location dédié rent.urbanservices.ca sur la plateforme Building Stack — même famille que le portail edifialocation.com du connecteur edifia.py : - /Listing/Listings embarque `var units = [...]` (une entrée par appartement annoncé : prix, pi², chambres, sdb, adresse complète, GPS, contact de l'immeuble, photo) ; - les pages immeuble /b/<id> listent TOUTES les unités disponibles (onglets : numéro, prix, pi², chambres, sdb, date de disponibilité) + les commodités de l'immeuble — le JSON de la liste est parfois tronqué (immeubles à fort inventaire), la page /b/<id> fait donc foi pour l'inventaire et les dates ; le JSON enrichit (GPS, contact…). Une annonce Lou-Ka = une unité disponible. Le parc ontarien (Ottawa) est exclu (province != QC). ~17 requêtes par sync (1 + 16 immeubles).
9 +connecteur Urban Services (urbanservices.ca) Gestionnaire de Gatineau (Urban Tenant Solutions) ; portail de location dédié rent.urbanservices.ca sur la plateforme Building Stack — même famille que le portail edifialocation.com du connecteur edifia.py : - /Listing/Listings embarque `var units = [...]` (une entrée par appartement annoncé : prix, pi², chambres, sdb, adresse complète, GPS, contact de l'immeuble, photo) ; - les pages immeuble /b/<id> listent TOUTES les unités disponibles (onglets : numéro, prix, pi², chambres, sdb, date de disponibilité, attribut data-unitid) + les commodités de l'immeuble — le JSON de la liste est parfois tronqué (immeubles à fort inventaire), la page /b/<id> fait donc foi pour l'inventaire et les dates ; le JSON enrichit (GPS, contact…) ; - le fragment /Listing/ApartmentView?id=<unitid> (cache BD) fournit la GALERIE COMPLÈTE de l'unité (wfiles.buildingstack.com), l'étage, les équipements (plancher, chauffage, wi-fi…) et le bloc « Commentaires » (description libre) — absents de la liste et du HTML des pages. Une annonce Lou-Ka = une unité disponible. Le parc ontarien (Ottawa) est exclu (province != QC). ~17 requêtes par sync (1 + 16 immeubles) + 1 fragment par unité nouvelle/modifiée (cache).
10 10
11 11 - **Site** : https://urbanservices.ca
12 12 - **Page des annonces** : https://rent.urbanservices.ca/Listing/Listings
@@ -25,7 +25,7 @@ connecteur Urban Services (urbanservices.ca) Gestionnaire de Gatineau (Urban Ten
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 52 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 44 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 |---|---|---|---|
@@ -40,29 +40,33 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
40 40 | `area_sqft` | Superficie (pi²) | 75 % | 900 |
41 41 | `availability_date` | Date de disponibilité | 98 % | 2027-08-01 |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.4288304 |
43 −| `description` | Description | 100 % | 900 pi² — 2 chambre(s) — 1 salle(s) de bain |
44 −| `images` | Photos (JSON) | 100 % | 2 photo(s) — https://wfiles.buildingstack.com/resources/image/OKraM7T9Ub9IIM9KQ459Cs9eS3T… |
45 −| `amenities` | Commodités (JSON) | 73 % | ["Salle de buanderie", "Stationnement extérieur"] |
46 −| `details` | Détails additionnels (JSON) | 100 % | {"laundry": true, "parking": {"available": true, "type": "extérieur"}, "building": "70 No… |
43 +| `description` | Description | 100 % | Situé au Manoir des Trembles. Buanderie partagée. Wi-Fi inclus. Bien entretenu. 900 pi² —… |
44 +| `images` | Photos (JSON) | 100 % | 11 photo(s) — https://wfiles.buildingstack.com/resources/image/Gp9BI79gE3apDN1kKdTOCNTLIr… |
45 +| `amenities` | Commodités (JSON) | 89 % | ["Salle de buanderie", "Stationnement extérieur", "Accès à internet inclus", "Plancher : … |
46 +| `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "internet": true}, "laundry": true,… |
47 47 | `url` | URL de l'annonce source | 100 % | https://rent.urbanservices.ca/b/202244058702005621807/410794 |
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:55 — 52 trouvées, +0 / ~52 / -0
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
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** : 56 au total, **52 actives**
59 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
58 +- **Annonces en BD** : 56 au total, **44 actives**
59 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
61 +- **Runs journalisés (60 derniers)** : 60, dont 3 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
65 −Aucune erreur dans les 60 derniers runs journalisés.
65 +| Date | Message (sync_log) |
66 +|---|---|
67 +| 2026-08-19 18:31 | HTTPSConnectionPool(host='rent.urbanservices.ca', port=443): Read timed out. (read timeout=30) |
68 +| 2026-08-19 15:43 | HTTPSConnectionPool(host='rent.urbanservices.ca', port=443): Read timed out. (read timeout=30) |
69 +| 2026-08-19 09:40 | HTTPSConnectionPool(host='rent.urbanservices.ca', port=443): Read timed out. (read timeout=30) |
66 70
67 71 Rejouer la source seule : `python3 run.py sync urban_services` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='urban_services' ORDER BY ts DESC LIMIT 5;`).
68 72
modified docs/connecteurs/utile.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 28/28
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:55 — 28 trouvées, +0 / ~28 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 28 au total, **28 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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
62 62
modified docs/connecteurs/via_capitale.md +12 −12
@@ -1,8 +1,8 @@
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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : Firecrawl · Annonces actives : 196/213
5 +**État : actif** · Région : Province · Backend : Firecrawl · Annonces actives : 192/217
6 6
7 7 ## Description de la source
8 8
@@ -25,21 +25,21 @@ Via Capitale (viacapitalevendu.com) — LOCATIONS Bannière 100 % québécoise (
25 25
26 26 ## Champs récupérés → schéma cible
27 27
28 −Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 196 annonces actives ; exemple tiré d'une ligne réelle de la BD.
28 +Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 192 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 % | Appartement — 700 Route des Rivières |
33 33 | `address` | Adresse civique | 100 % | 700 Route des Rivières |
34 34 | `city` | Ville (normalisée) | 100 % | Lévis |
35 −| `sector` | Secteur / quartier | 51 % | Les Chutes-de-la-Chaudière-Ouest |
35 +| `sector` | Secteur / quartier | 50 % | Les Chutes-de-la-Chaudière-Ouest |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 0 % | — |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 927 $ |
38 38 | `bedrooms` | Chambres | 7 % | 2 |
39 −| `bathrooms` | Salles de bain | 4 % | — |
39 +| `bathrooms` | Salles de bain | 3 % | — |
40 40 | `area_sqft` | Superficie (pi²) | 4 % | 1207 |
41 41 | `availability_date` | Date de disponibilité | 0 % | — |
42 −| `lat` | GPS (lat/lng) | 55 % | 46.733574707 |
42 +| `lat` | GPS (lat/lng) | 54 % | 46.733574707 |
43 43 | `description` | Description | 100 % | CESSION DE BAIL -- LE 700 \| SAINT-NICOLAS Superbe unité de 1 207 pi² située au 3e étage … |
44 44 | `images` | Photos (JSON) | 100 % | 14 photo(s) — https://images.viacapitale.info/images/inscriptions/27146731/1-494833980.jpg |
45 45 | `amenities` | Commodités (JSON) | 0 % | [] |
@@ -48,17 +48,17 @@ Le connecteur (Firecrawl, pages HTML (rendu serveur)) alimente les colonnes de l
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:56 — 194 trouvées, +2 / ~192 / -0
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
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** : 213 au total, **196 actives**
59 −- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 55 % · prix 100 % · photos 100 % · description 100 %
61 −- **Runs journalisés (60 derniers)** : 58, dont 0 en erreur
58 +- **Annonces en BD** : 217 au total, **192 actives**
59 +- **Première ingestion** : 2026-08-12 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 54 % · prix 100 % · photos 100 % · description 100 %
61 +- **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified docs/connecteurs/viridi.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Québec · Backend : direct · Annonces actives : 16/17
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:56 — 16 trouvées, +0 / ~16 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 17 au total, **16 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
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 62 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/wandji.md +6 −6
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Outaouais · Backend : direct · Annonces actives : 26/31
6 6
@@ -32,7 +32,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
32 32 | `title` | Titre de l'annonce | 100 % | 52 rue Latour |
33 33 | `address` | Adresse civique | 100 % | 52 rue Latour |
34 34 | `city` | Ville (normalisée) | 100 % | Gatineau |
35 −| `sector` | Secteur / quartier | 69 % | Buckingham |
35 +| `sector` | Secteur / quartier | 73 % | Buckingham |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | 4½ |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 725 $ |
38 38 | `bedrooms` | Chambres | 100 % | 2 |
@@ -40,7 +40,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
40 40 | `area_sqft` | Superficie (pi²) | 19 % | — |
41 41 | `availability_date` | Date de disponibilité | 100 % | 2026-07-01 |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.58538428352824 |
43 −| `description` | Description | 100 % | Magnifique appartement neuf à louer à Buckingham, offrant un design moderne, une belle lu… |
43 +| `description` | Description | 100 % | Magnifique appartement neuf offrant un espace de vie moderne et fonctionnel. Il comprend … |
44 44 | `images` | Photos (JSON) | 100 % | 20 photo(s) — https://wandji-immobilier.com/api/buildings/6a0cb851156b6624006cfc29/pictur… |
45 45 | `amenities` | Commodités (JSON) | 96 % | ["Stationnement extérieur"] |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": false, "electricity": false, "hot_water": false}, "appliances"… |
@@ -48,8 +48,8 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:56 — 26 trouvées, +1 / ~25 / -0
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
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
@@ -57,7 +57,7 @@ Le connecteur (direct, API JSON interne du site) alimente les colonnes de la tab
57 57 ## Volumétrie & complétude
58 58
59 59 - **Annonces en BD** : 31 au total, **26 actives**
60 −- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-18
60 +- **Première ingestion** : 2026-08-09 · **Dernière observation** : 2026-08-22
61 61 - **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 100 %
62 62 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
63 63
modified docs/connecteurs/werkliv.md +4 −4
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 5 **État : actif** · Région : Montréal · Backend : direct · Annonces actives : 4/4
6 6
@@ -48,15 +48,15 @@ Le connecteur (direct, pages HTML (rendu serveur)) alimente les colonnes de la t
48 48
49 49 ## Fréquence & budget
50 50
51 −- **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.0 h
52 −- **Dernier passage OK** : 2026-08-18 04:56 — 4 trouvées, +0 / ~4 / -0
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
53 53 - **Throttling** : 0.6 s entre requêtes (constante de classe `request_delay`)
54 54 - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées
55 55
56 56 ## Volumétrie & complétude
57 57
58 58 - **Annonces en BD** : 4 au total, **4 actives**
59 −- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-18
59 +- **Première ingestion** : 2026-08-06 · **Dernière observation** : 2026-08-22
60 60 - **Complétude clé (actives)** : GPS 0 % · prix 100 % · photos 100 % · description 100 %
61 61 - **Runs journalisés (60 derniers)** : 60, dont 0 en erreur
62 62
modified docs/connecteurs/zumper.md +12 −12
@@ -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-18 06:20 — ne pas éditer à la main, régénérer._
3 +_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-22 17:28 — ne pas éditer à la main, régénérer._
4 4
5 −**État : actif** · Région : Province · Backend : direct · Annonces actives : 4345/4345
5 +**État : actif** · Région : Province · Backend : direct · Annonces actives : 4837/5095
6 6
7 7 ## Description de la source
8 8
@@ -25,22 +25,22 @@ 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 4345 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 4837 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 % | 170 René-Lévesque — Studio Promotional Price |
33 33 | `address` | Adresse civique | 100 % | 170 Boul René-Lévesque E |
34 −| `city` | Ville (normalisée) | 100 % | Montréal |
34 +| `city` | Ville (normalisée) | 99 % | Montréal |
35 35 | `sector` | Secteur / quartier | 80 % | Quartier Ville-Marie |
36 36 | `unit_type` | Type d'unité (3½, 4½…) | 100 % | Studio |
37 37 | `price` | Loyer mensuel ($) | 100 % | 1 440 $ |
38 38 | `bedrooms` | Chambres | 100 % | 0 |
39 39 | `bathrooms` | Salles de bain | 100 % | 1 |
40 −| `area_sqft` | Superficie (pi²) | 71 % | 391 |
40 +| `area_sqft` | Superficie (pi²) | 75 % | 391 |
41 41 | `availability_date` | Date de disponibilité | 21 % | — |
42 42 | `lat` | GPS (lat/lng) | 100 % | 45.51020505957441 |
43 −| `description` | Description | 79 % | 3 Months Free* *Limited time offer. E & OE conditions apply. Advertised price reflects a … |
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 |
45 45 | `amenities` | Commodités (JSON) | 98 % | ["Onsite Laundry", "Air Conditioning", "Dishwasher", "Balcony", "In-Unit Laundry", "Heat"… |
46 46 | `details` | Détails additionnels (JSON) | 100 % | {"inclusions": {"heating": true, "electricity": true, "hot_water": true}, "appliances": {… |
@@ -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) : —
52 −- **Dernier passage OK** : 2026-08-18 06:19 — 4345 trouvées, +4345 / ~0 / -0
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
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** : 4345 au total, **4345 actives**
59 −- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-18
60 −- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 79 %
61 −- **Runs journalisés (60 derniers)** : 1, dont 0 en erreur
58 +- **Annonces en BD** : 5095 au total, **4837 actives**
59 +- **Première ingestion** : 2026-08-18 · **Dernière observation** : 2026-08-22
60 +- **Complétude clé (actives)** : GPS 100 % · prix 100 % · photos 100 % · description 99 %
61 +- **Runs journalisés (60 derniers)** : 39, dont 0 en erreur
62 62
63 63 ## Erreurs connues & dépannage
64 64
modified louka/connectors/fb_marketplace.py +219 −357
@@ -2,51 +2,72 @@
2 2 # Lou-Ka — Agrégateur de logements à louer (province de Québec)
3 3 # Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 4 # connectors/fb_marketplace.py : Facebook Marketplace — catégorie location
5 −# (propertyrentals) par ville du Québec. Annonces de particuliers, fort
6 −# complément aux gestionnaires. Accès via Scrapfly ASP (render_js + proxy
7 −# résidentiel CA), SANS compte ni cookie (le scraping public déconnecté est
8 −# couvert par Meta v. Bright Data 2024). Les données vivent dans des balises
9 −# <script type="application/json"> (objets marketplace_listing_title).
10 −# Le scroll infini est bloqué hors connexion (~25 annonces/URL, mur de
11 −# login) : on pagine par TRANCHES DE PRIX (minPrice/maxPrice), qui renvoient
12 −# des lots quasi disjoints, et on accumule sur plusieurs synchronisations.
13 −# Fiche détail (/marketplace/item/<id>), même hors connexion :
14 −# - le JSON viewer.marketplace_product_details_page.target expose GPS,
15 −# ville (reverse_geocode_detailed), description et statut (is_live/
16 −# is_sold/is_pending) — mais listing_photos y est VIDE hors connexion ;
17 −# - la GALERIE complète (s960x960) vit dans le DOM rendu : balises <img>
18 −# dont l'alt commence par « Photo of … » / « Product photo of … ».
19 −# Le flux de recherche public TOURNE : la plupart des annonces actives en BD
20 −# ne repassent jamais dans la liste, donc une phase de RATTRAPAGE visite les
21 −# fiches actives jamais enrichies (budget séparé LOUKA_FBMP_BACKFILL).
22 −# ⚠️ Coût Scrapfly élevé + données personnelles (Loi 25) : ne jamais
23 −# republier nom/téléphone du vendeur, garder le lien sortant.
5 +# (propertyrentals), TOUTE la province. Annonces de particuliers, fort
6 +# complément aux gestionnaires. Depuis 2026-08-22 le scraping est délégué à
7 +# l'ACTEUR APIFY MAISON gorgeous_thistle/ka-fb-marketplace (source :
8 +# actors/ka-fb-marketplace de ce repo) : HTML public déconnecté SANS rendu
9 +# JS (les JSON de recherche, la fiche PDP et la galerie MediaViewer
10 +# préchargée vivent dans le HTML brut) via proxy résidentiel CA — ~100×
11 +# moins cher que l'ancienne chaîne Scrapfly ASP+render_js, et couverture
12 +# élargie de 10 à 33 villes (IDs Marketplace des villes régionales validés ;
13 +# les slugs inventés retombent sur des villes aléatoires, ne pas en ajouter
14 +# sans les valider).
15 +# Le scroll infini reste bloqué hors connexion (~25 annonces/URL) : on
16 +# pagine par TRANCHES DE PRIX et on accumule sur plusieurs synchronisations.
17 +# Le flux public TOURNE : une phase de RATTRAPAGE (extraDetailIds) visite
18 +# les fiches actives jamais enrichies (budget LOUKA_FBMP_BACKFILL).
19 +# Le connecteur garde le cache détail BD (clé v2, payloads compatibles) et
20 +# passe à l'acteur la liste des fiches fraîches à NE PAS revisiter.
21 +# ⚠️ Données personnelles (Loi 25) : ne jamais republier nom/téléphone du
22 +# vendeur, garder le lien sortant.
24 23 # -----------------------------------------------------------------------------
25 24 from __future__ import annotations
26 25
27 −import concurrent.futures as _cf
28 −import html as _html
29 26 import json
30 27 import os
31 28 import re
29 +import time
30 +
31 +import requests as _requests
32 32
33 33 from ..schema import Listing, normalize_unit_type
34 34 from .base import BaseConnector
35 35 from . import _detailutil as du
36 36
37 37 BASE = "https://www.facebook.com/marketplace"
38 +APIFY_API = "https://api.apify.com/v2"
39 +ACTOR = os.environ.get("LOUKA_FBMP_ACTOR", "gorgeous_thistle~ka-fb-marketplace")
38 40
39 −# villes québécoises (slug Marketplace) -> nom d'affichage
41 +# villes québécoises — gros parcs : slug vanity Marketplace -> nom d'affichage
40 42 CITIES = {
41 43 "montreal": "Montréal", "laval": "Laval", "longueuil": "Longueuil",
42 44 "quebec": "Québec", "gatineau": "Gatineau", "sherbrooke": "Sherbrooke",
43 45 "trois-rivieres": "Trois-Rivières", "levis": "Lévis",
44 46 "saguenay": "Saguenay", "drummondville": "Drummondville",
45 47 }
48 +# villes régionales : ID numérique Marketplace -> nom (découverts via Serper,
49 +# lat/lng validés live 2026-08-22 — rayon ~65 km chacun)
50 +REGIONS = {
51 + "105790762794728": "Rimouski", "110925022261358": "Rivière-du-Loup",
52 + "106528256049537": "Matane", "109502305742889": "Gaspé",
53 + "100246746683723": "Sept-Îles", "105615529471535": "Baie-Comeau",
54 + "106016152771864": "Rouyn-Noranda", "110594102301488": "Val-d'Or",
55 + "105598479473872": "Amos", "109699385723610": "Saint-Georges",
56 + "110304502331480": "Thetford Mines", "111938355489908": "Granby",
57 + "108126699220609": "Victoriaville", "109753249050671": "Joliette",
58 + "109429165750459": "Saint-Hyacinthe",
59 + "108645709159963": "Saint-Jean-sur-Richelieu",
60 + "112946182053396": "Saint-Jérôme",
61 + "113011352052118": "Salaberry-de-Valleyfield",
62 + "107992819229760": "Magog", "109514615734434": "Alma",
63 + "109664672393669": "Mont-Laurier", "108557812502323": "La Tuque",
64 + "108296932538245": "Dolbeau-Mistassini",
65 +}
46 66 # tranches de prix (bornes en $) : le flux déconnecté sert un sous-ensemble
47 67 # tournant, chaque tranche renvoie un lot quasi disjoint
48 68 PRICE_BANDS = [(0, 800), (800, 1100), (1100, 1400), (1400, 1700),
49 69 (1700, 2100), (2100, 2800), (2800, 6000)]
70 +REGIONAL_BANDS = [(0, 1200), (1200, 6000)] # parcs plus petits : 2 tranches
50 71
51 72 # garde-fous de prix mensuel (rejette « $90 » = /nuit, et les valeurs à vendre)
52 73 PRICE_MIN, PRICE_MAX = 300, 12000
@@ -59,195 +80,17 @@ BACKFILL_LIMIT = int(os.environ.get("LOUKA_FBMP_BACKFILL", "80"))
59 80 # sert surtout aux NOUVELLES annonces plutôt qu'à re-visiter les connues
60 81 TTL_DAYS = float(os.environ.get("LOUKA_FBMP_TTL_DAYS", "30"))
61 82 CITY_LIMIT = os.environ.get("LOUKA_FBMP_CITIES", "") # ex. "montreal,laval"
62 −# requêtes Scrapfly en parallèle (recherche ET détail) : le cycle passait 40+
63 −# minutes en attente sérielle de rendus JS de ~20 s chacun
64 −CONCURRENCY = int(os.environ.get("LOUKA_FBMP_CONCURRENCY", "6"))
83 +CONCURRENCY = int(os.environ.get("LOUKA_FBMP_CONCURRENCY", "8"))
84 +RUN_TIMEOUT = int(os.environ.get("LOUKA_FBMP_RUN_TIMEOUT", "2400")) # s
65 85
66 −# clé du cache détail — v2 : + galerie DOM, ville/province, statut is_live
67 −# (les payloads v1 restent lisibles comme « périmés » le temps du rattrapage)
86 +# clé du cache détail — v2 : payloads identiques à l'ère Scrapfly (galerie,
87 +# ville/province, statut) ; l'acteur produit la même forme, cache réutilisé
68 88 DETAIL_KEY = "v2"
69 89
70 90 # provinces acceptées : le flux public glisse parfois des annonces hors Québec
71 91 # (ex. « Norfolk, ON ») dans les résultats d'une ville québécoise
72 92 _QC_STATES = {"qc", "quebec", "québec"}
73 93
74 −_SCRIPT_RE = re.compile(
75 − r'<script type="application/json"[^>]*>(.*?)</script>', re.S)
76 −
77 −
78 −def _walk_listings(html: str) -> dict:
79 − """Objets d'annonce (marketplace_listing_title) des <script> JSON."""
80 − out: dict = {}
81 −
82 − def walk(o):
83 − if isinstance(o, dict):
84 − if "marketplace_listing_title" in o and o.get("id"):
85 − out[str(o["id"])] = o
86 − for v in o.values():
87 − walk(v)
88 − elif isinstance(o, list):
89 − for v in o:
90 − walk(v)
91 −
92 − for m in _SCRIPT_RE.finditer(html):
93 − try:
94 − walk(json.loads(m.group(1)))
95 − except ValueError:
96 − continue
97 − return out
98 −
99 −
100 −def _pdp_target(html: str) -> dict | None:
101 − """Objet cible de la fiche détail (marketplace_product_details_page.target).
102 −
103 − C'est LE nœud faisant autorité sur une fiche : GPS, reverse geocode,
104 − description, statut. Plusieurs scripts portent un « target » (stubs de
105 − préchargement inclus) : on garde le plus RICHE (description/GPS/statut),
106 − pas le premier venu."""
107 − found: list[dict] = []
108 −
109 − def walk(o):
110 − if isinstance(o, dict):
111 − pdp = o.get("marketplace_product_details_page")
112 − if isinstance(pdp, dict) and isinstance(pdp.get("target"), dict):
113 − found.append(pdp["target"])
114 − for v in o.values():
115 − walk(v)
116 − elif isinstance(o, list):
117 − for v in o:
118 − walk(v)
119 −
120 − for m in _SCRIPT_RE.finditer(html):
121 − try:
122 − walk(json.loads(m.group(1)))
123 − except ValueError:
124 − continue
125 −
126 − def score(t: dict) -> tuple:
127 − desc = (t.get("redacted_description") or {}).get("text") or ""
128 − loc = t.get("location") or {}
129 − return (1 if desc else 0) + (1 if loc.get("latitude") else 0), len(t)
130 − return max(found, key=score) if found else None
131 −
132 −
133 −# galerie dans le DOM rendu : alt="Photo of <titre>" / "Product photo of …"
134 −# (les « annonces similaires » ont un alt "<titre> in <ville>, <prov>")
135 −_IMG_TAG_RE = re.compile(r"<img[^>]+>")
136 −_ALT_RE = re.compile(r'alt="([^"]*)"')
137 −_SRC_RE = re.compile(r'src="([^"]+)"')
138 −_GALLERY_ALT_RE = re.compile(r"^(?:product\s+)?photo\s+(?:of|de|du)\b", re.I)
139 −
140 −
141 −def _dom_gallery(html: str, title: str = "") -> list[str]:
142 − """URLs (s960x960, CDN signé) de la galerie complète depuis le DOM rendu.
143 −
144 − Hors connexion le JSON listing_photos est vide, mais le carrousel de la
145 − fiche est bel et bien rendu : image principale (t39) + vignettes (t45).
146 − Déduplication par nom de fichier (la principale apparaît deux fois)."""
147 − dom = re.sub(r"<script.*?</script>", "", html, flags=re.S)
148 − key = (title or "").strip()[:12].casefold()
149 − out: list[str] = []
150 − seen: set[str] = set()
151 − for tag in _IMG_TAG_RE.findall(dom):
152 − m = _ALT_RE.search(tag)
153 − alt = _html.unescape(m.group(1)) if m else ""
154 − if not _GALLERY_ALT_RE.match(alt):
155 − continue
156 − if key and key not in alt.casefold():
157 − continue # photo d'un AUTRE produit
158 − s = _SRC_RE.search(tag)
159 − src = _html.unescape(s.group(1)) if s else ""
160 − if "fbcdn" not in src:
161 − continue
162 − stem = src.split("?", 1)[0].rsplit("/", 1)[-1]
163 − if stem in seen:
164 − continue
165 − seen.add(stem)
166 − out.append(src)
167 − return out
168 −
169 −
170 −def _clean_desc(text: str) -> str:
171 − """Texte propre : espaces répétés et lignes vides en cascade normalisés."""
172 − t = text.replace("\r", "\n")
173 − t = re.sub(r"[ \t ]+", " ", t)
174 − t = re.sub(r" ?\n ?", "\n", t)
175 − t = re.sub(r"\n{3,}", "\n\n", t)
176 − return t.strip()
177 −
178 −
179 −def _parse_detail(html: str) -> dict:
180 − """Champs riches d'une fiche /marketplace/item/<id> hors connexion.
181 −
182 − Retourne {} si la page n'a pas pu être rendue (échec réseau : ne PAS
183 − mettre en cache), {"nopdp": True} si elle est rendue mais sans objet
184 − cible (fiche supprimée / mur de login : cacher pour ne pas boucler)."""
185 − if not html:
186 − return {}
187 − o = _pdp_target(html)
188 − if o is None:
189 − # repli : meilleur objet des scripts (ancienne heuristique v1)
190 − best, best_score = None, -1
191 − for cand in _walk_listings(html).values():
192 − loc = cand.get("location") or {}
193 − desc = (cand.get("redacted_description") or {}).get("text") or ""
194 − score = (1 if loc.get("latitude") else 0) + (1 if desc else 0)
195 − if score > best_score:
196 − best, best_score = cand, score
197 − o = best
198 − if not o:
199 − return {"nopdp": True}
200 − out: dict = {}
201 − if o.get("is_sold") or o.get("is_pending") or o.get("is_live") is False:
202 − out["gone"] = True # loué / en attente / retiré
203 − loc = o.get("location") or {}
204 − if loc.get("latitude") and loc.get("longitude"):
205 − out["lat"] = loc["latitude"]
206 − out["lng"] = loc["longitude"]
207 − geo = loc.get("reverse_geocode_detailed") or {}
208 − if geo.get("city"):
209 − out["city"] = geo["city"]
210 − if geo.get("state"):
211 − out["state"] = geo["state"]
212 − lt = (o.get("location_text") or {}).get("text") or ""
213 − if lt: # ex. « Québec, QC » / « Norfolk, ON »
214 − out["location_text"] = lt
215 − parts = [p.strip() for p in lt.split(",") if p.strip()]
216 − if parts and not out.get("city"):
217 − out["city"] = parts[0]
218 − if len(parts) > 1 and not out.get("state"):
219 − out["state"] = parts[1]
220 − desc = (o.get("redacted_description") or {}).get("text") or ""
221 − if desc:
222 − out["description"] = _clean_desc(desc)[:6000]
223 − photos = []
224 − for p in o.get("listing_photos") or []: # vide hors connexion, mais
225 − uri = ((p.get("image") or {}).get("uri")) or "" # gardé si FB rouvre
226 − if uri and uri not in photos:
227 − photos.append(uri)
228 − if not photos:
229 − photos = _dom_gallery(html, o.get("marketplace_listing_title") or "")
230 − if photos:
231 − out["images"] = photos
232 − return out
233 −
234 −
235 −def _price(obj: dict) -> float | None:
236 − pr = obj.get("listing_price") or {}
237 − for k in ("amount", "amount_with_offset_in_currency"):
238 − v = pr.get(k)
239 − if v is None:
240 − continue
241 − try:
242 − val = float(v)
243 − except (TypeError, ValueError):
244 − continue
245 − if k == "amount_with_offset_in_currency" and val > 100000:
246 − val /= 100.0 # offset en cents
247 − if PRICE_MIN <= val <= PRICE_MAX:
248 − return round(val, 0)
249 − return None
250 −
251 94
252 95 def _unit_type(title: str, desc: str = "") -> str:
253 96 blob = f"{title} {desc}"
@@ -272,76 +115,87 @@ def _usable(payload: dict | None) -> bool:
272 115
273 116 def _non_qc(payload: dict) -> bool:
274 117 state = (payload.get("state") or "").strip().lower()
275 − return bool(state) and state not in _QC_STATES
118 + if state:
119 + return state not in _QC_STATES
120 + # sans état : filet géographique — certains PDP ne livrent que le GPS
121 + lat, lng = payload.get("lat"), payload.get("lng")
122 + if lat is not None and lng is not None:
123 + return not (44.9 <= lat <= 62.8 and -79.6 <= lng <= -56.9)
124 + return False
276 125
277 126
278 127 class FacebookMarketplaceConnector(BaseConnector):
279 128 source_id = "fb_marketplace"
280 129 request_delay = 1.0
281 130
282 − def _scrape(self, url: str) -> str:
283 − return self.get_scrapfly(url, render_js=True, asp=True, country="ca",
284 − proxy_pool="public_residential_pool",
285 − rendering_wait=5000)
286 −
287 − def _search_all(self, cities: dict) -> dict[str, tuple[dict, str]]:
288 − """Toutes les pages de recherche (ville × tranche de prix) EN PARALLÈLE.
289 −
290 − Même nombre de requêtes Scrapfly qu'avant (aucune perte de volume) :
291 − seule l'attente des rendus JS (~20 s chacun) est recouverte.
292 − """
293 − tasks = []
131 + # -- orchestration de l'acteur Apify --------------------------------------
132 + def _search_urls(self) -> tuple[list[str], dict[str, str]]:
133 + """URLs de recherche (ville × tranche) + mapping URL -> nom de ville."""
134 + cities, regions = dict(CITIES), dict(REGIONS)
135 + if CITY_LIMIT:
136 + wanted = {c.strip().casefold() for c in CITY_LIMIT.split(",")}
137 + cities = {k: v for k, v in cities.items()
138 + if k in wanted or v.casefold() in wanted}
139 + regions = {k: v for k, v in regions.items()
140 + if v.casefold() in wanted}
141 + urls: list[str] = []
142 + by_url: dict[str, str] = {}
294 143 for slug, city in cities.items():
295 144 for lo, hi in PRICE_BANDS:
296 − url = (f"{BASE}/{slug}/propertyrentals"
297 − f"?minPrice={lo}&maxPrice={hi}&sortBy=creation_time_descend")
298 − tasks.append((url, city))
299 − found: dict[str, tuple[dict, str]] = {}
300 − with _cf.ThreadPoolExecutor(max_workers=CONCURRENCY) as pool:
301 − futs = {pool.submit(self._scrape, url): city for url, city in tasks}
302 − for fut in _cf.as_completed(futs):
303 − city = futs[fut]
304 − try:
305 − html = fut.result()
306 − except Exception:
307 − continue
308 − for lid, obj in _walk_listings(html).items():
309 − found.setdefault(lid, (obj, city))
310 − return found
311 −
312 − def _fetch_details(self, cache: du.TtlDetailCache,
313 − todo: list[str]) -> dict[str, dict]:
314 − """Fiches détail EN PARALLÈLE ; met en cache et retourne les payloads."""
315 − if not todo:
316 − return {}
317 −
318 − def _one(lid: str) -> tuple[str, dict]:
319 − try:
320 − return lid, _parse_detail(self._scrape(f"{BASE}/item/{lid}/"))
321 − except Exception:
322 − return lid, {}
323 − out: dict[str, dict] = {}
324 − with _cf.ThreadPoolExecutor(max_workers=CONCURRENCY) as pool:
325 − for lid, payload in pool.map(_one, todo):
326 − if payload: # {} = échec réseau : pas de cache
327 − cache.put(lid, payload)
328 − out[lid] = payload
329 − return out
330 −
331 − def _backfill(self, cache: du.TtlDetailCache,
332 − done: set[str]) -> list[Listing]:
333 − """Rattrapage : fiches ACTIVES en BD encore pauvres, hors recherche.
334 −
335 − Le flux public tourne (chaque sync ne re-liste qu'une fraction du
336 − parc) : sans cette phase, une annonce sortie de la recherche garde à
337 − jamais sa fiche BD pauvre (1 photo, pas de description ni GPS).
338 − On visite sa page détail (budget LOUKA_FBMP_BACKFILL, cache/TTL
339 − habituels) et on ré-émet l'annonce UNIQUEMENT si la fiche est
340 − toujours en ligne ET que le détail apporte quelque chose — les
341 − annonces mortes suivent donc le cycle normal miss_count → retrait.
342 − """
343 − if BACKFILL_LIMIT <= 0:
344 − return []
145 + u = (f"{BASE}/{slug}/propertyrentals"
146 + f"?minPrice={lo}&maxPrice={hi}&sortBy=creation_time_descend")
147 + urls.append(u)
148 + by_url[u] = city
149 + for cid, city in regions.items():
150 + for lo, hi in REGIONAL_BANDS:
151 + u = (f"{BASE}/{cid}/propertyrentals"
152 + f"?minPrice={lo}&maxPrice={hi}&sortBy=creation_time_descend")
153 + urls.append(u)
154 + by_url[u] = city
155 + return urls, by_url
156 +
157 + def _run_actor(self, payload: dict, token: str) -> list[dict]:
158 + """Lance l'acteur, attend la fin, retourne les items du dataset."""
159 + r = _requests.post(
160 + f"{APIFY_API}/acts/{ACTOR}/runs?waitForFinish=120",
161 + json=payload, timeout=180,
162 + headers={"Authorization": f"Bearer {token}"})
163 + r.raise_for_status()
164 + run = r.json()["data"]
165 + deadline = time.time() + RUN_TIMEOUT
166 + while run["status"] in ("READY", "RUNNING") and time.time() < deadline:
167 + time.sleep(10)
168 + run = _requests.get(
169 + f"{APIFY_API}/actor-runs/{run['id']}", timeout=60,
170 + headers={"Authorization": f"Bearer {token}"}).json()["data"]
171 + if run["status"] != "SUCCEEDED":
172 + raise RuntimeError(f"acteur {ACTOR} : run {run['id']} "
173 + f"terminé en {run['status']}")
174 + items: list[dict] = []
175 + offset = 0
176 + while True:
177 + batch = _requests.get(
178 + f"{APIFY_API}/datasets/{run['defaultDatasetId']}/items"
179 + f"?limit=1000&offset={offset}", timeout=120,
180 + headers={"Authorization": f"Bearer {token}"}).json()
181 + items.extend(batch)
182 + if len(batch) < 1000:
183 + return items
184 + offset += 1000
185 +
186 + # -- caches / BD -----------------------------------------------------------
187 + def _fresh_ids(self, cache: du.TtlDetailCache) -> list[str]:
188 + """IDs dont le payload détail en cache est encore frais (clé + TTL) :
189 + l'acteur ne les revisitera pas."""
190 + rows = cache.con.execute(
191 + "SELECT external_id FROM detail_cache"
192 + " WHERE source=? AND key=? AND fetched_at > ?",
193 + (self.source_id, DETAIL_KEY,
194 + time.time() - TTL_DAYS * 86400)).fetchall()
195 + return [r["external_id"] for r in rows]
196 +
197 + def _poor_active_rows(self, cache: du.TtlDetailCache) -> list:
198 + """Fiches ACTIVES en BD encore pauvres (candidates au rattrapage)."""
345 199 rows = cache.con.execute(
346 200 "SELECT external_id, url, title, address, sector, city, unit_type,"
347 201 " bedrooms, bathrooms, price, price_label, availability,"
@@ -350,15 +204,44 @@ class FacebookMarketplaceConnector(BaseConnector):
350 204 " FROM listings WHERE source=? AND active=1"
351 205 " ORDER BY last_seen DESC", (self.source_id,)).fetchall()
352 206
353 − def _poor(r) -> bool:
207 + def poor(r) -> bool:
354 208 try:
355 209 n_img = len(json.loads(r["images"] or "[]"))
356 210 except ValueError:
357 211 n_img = 0
358 212 return (not (r["description"] or "").strip()
359 213 or r["lat"] is None or n_img <= 1)
214 + return [r for r in rows if poor(r)]
360 215
361 − def _adds(r, d: dict) -> bool:
216 + def _listing_from_row(self, r) -> Listing:
217 + """Reconstruit le Listing depuis sa ligne BD (phase de rattrapage)."""
218 + def js(s, default):
219 + try:
220 + return json.loads(s) if s else default
221 + except ValueError:
222 + return default
223 + return Listing(
224 + source=self.source_id, external_id=r["external_id"],
225 + url=r["url"], title=r["title"] or "", address=r["address"] or "",
226 + sector=r["sector"] or "", city=r["city"] or "",
227 + unit_type=r["unit_type"] or "", bedrooms=r["bedrooms"],
228 + bathrooms=r["bathrooms"], price=r["price"],
229 + price_label=r["price_label"] or "",
230 + availability=r["availability"] or "",
231 + availability_date=r["availability_date"],
232 + area_sqft=r["area_sqft"], pets=r["pets"],
233 + furnished=(None if r["furnished"] is None else bool(r["furnished"])),
234 + description=r["description"] or "",
235 + amenities=js(r["amenities"], []), details=js(r["details"], {}),
236 + images=js(r["images"], []), lat=r["lat"], lng=r["lng"],
237 + )
238 +
239 + def _backfill(self, cache: du.TtlDetailCache, poor_rows: list,
240 + done: set[str]) -> list[Listing]:
241 + """Rattrapage : ré-émet les fiches actives pauvres dont le cache
242 + (rempli par l'acteur via extraDetailIds) apporte du neuf. Les
243 + annonces mortes suivent le cycle normal miss_count → retrait."""
244 + def adds(r, d: dict) -> bool:
362 245 if d.get("description") and len(d["description"]) > \
363 246 len(r["description"] or ""):
364 247 return True
@@ -372,26 +255,14 @@ class FacebookMarketplaceConnector(BaseConnector):
372 255 return True
373 256 return bool(d.get("city")) and not (r["city"] or "")
374 257
375 − rows = [r for r in rows
376 − if r["external_id"] not in done and _poor(r)]
377 − payloads: dict[str, dict] = {}
378 − todo: list[str] = []
379 − for r in rows:
380 − lid = r["external_id"]
381 − payload, fresh = cache.peek(lid)
382 − if fresh:
383 − if _usable(payload):
384 − payloads[lid] = payload # déjà en cache : gratuit
385 − elif len(todo) < BACKFILL_LIMIT:
386 − todo.append(lid)
387 − payloads.update(self._fetch_details(cache, todo))
388 −
389 258 out: list[Listing] = []
390 − for r in rows:
391 − d = payloads.get(r["external_id"])
259 + for r in poor_rows:
260 + if r["external_id"] in done:
261 + continue
262 + d, _fresh = cache.peek(r["external_id"])
392 263 if not _usable(d) or d.get("gone") or _non_qc(d):
393 264 continue # morte / hors QC / rien de neuf
394 − if not _adds(r, d):
265 + if not adds(r, d):
395 266 continue # rien à apporter : laisser vivre son cycle
396 267 lst = self._listing_from_row(r)
397 268 du.apply_detail(lst, {k: v for k, v in d.items()
@@ -404,93 +275,84 @@ class FacebookMarketplaceConnector(BaseConnector):
404 275 out.append(lst)
405 276 return out
406 277
407 − def _listing_from_row(self, r) -> Listing:
408 − """Reconstruit le Listing depuis sa ligne BD (phase de rattrapage)."""
409 − def js(s, default):
410 − try:
411 − return json.loads(s) if s else default
412 − except ValueError:
413 − return default
414 − return Listing(
415 − source=self.source_id, external_id=r["external_id"],
416 − url=r["url"], title=r["title"] or "", address=r["address"] or "",
417 − sector=r["sector"] or "", city=r["city"] or "",
418 − unit_type=r["unit_type"] or "", bedrooms=r["bedrooms"],
419 − bathrooms=r["bathrooms"], price=r["price"],
420 − price_label=r["price_label"] or "",
421 − availability=r["availability"] or "",
422 − availability_date=r["availability_date"],
423 − area_sqft=r["area_sqft"], pets=r["pets"],
424 − furnished=(None if r["furnished"] is None else bool(r["furnished"])),
425 − description=r["description"] or "",
426 − amenities=js(r["amenities"], []), details=js(r["details"], {}),
427 − images=js(r["images"], []), lat=r["lat"], lng=r["lng"],
428 − )
429 −
278 + # -- pipeline principal ----------------------------------------------------
430 279 def fetch(self) -> list[Listing]:
431 − if not os.environ.get("SCRAPFLY_KEY"):
432 − raise RuntimeError("SCRAPFLY_KEY manquant (voir .env)")
433 − cities = dict(CITIES)
434 − if CITY_LIMIT:
435 − wanted = {c.strip() for c in CITY_LIMIT.split(",")}
436 − cities = {k: v for k, v in CITIES.items() if k in wanted}
437 −
438 − found = self._search_all(cities)
439 −
440 − # candidats retenus AVANT tout enrichissement : pas de requête détail
441 − # gaspillée sur les annonces sans prix ou déjà louées
442 − candidates: list[tuple[str, dict, str]] = []
443 − for lid, (obj, city) in found.items():
444 − if _price(obj) is None:
445 − continue # sans prix mensuel valable : ignorer
446 − if obj.get("is_sold") or obj.get("is_pending"):
447 − continue # déjà loué / en attente
448 − candidates.append((lid, obj, city))
449 −
450 − # enrichissement détail : cache BD d'abord (peek), puis les fiches
451 − # jamais vues / périmées EN PARALLÈLE dans la limite du budget
452 − cache = du.TtlDetailCache(self, budget=DETAIL_LIMIT, ttl_days=TTL_DAYS,
453 − key=DETAIL_KEY, fetch_html=self._scrape)
454 − details: dict[str, dict] = {}
455 − todo: list[str] = []
280 + token = os.environ.get("APIFY_TOKEN")
281 + if not token:
282 + raise RuntimeError("APIFY_TOKEN manquant (voir .env)")
283 + urls, city_by_url = self._search_urls()
284 +
285 + cache = du.TtlDetailCache(self, budget=0, ttl_days=TTL_DAYS,
286 + key=DETAIL_KEY, fetch_html=lambda _u: "")
456 287 try:
457 − for lid, _obj, _city in candidates:
458 − payload, fresh = cache.peek(lid)
459 − if _usable(payload):
460 − details[lid] = payload # frais OU périmé toléré (v1 inclus)
461 − if not fresh and len(todo) < cache.budget:
462 − todo.append(lid)
463 − details.update(self._fetch_details(cache, todo))
288 + fresh = set(self._fresh_ids(cache))
289 + poor_rows = self._poor_active_rows(cache)
290 + extra = [r["external_id"] for r in poor_rows
291 + if r["external_id"] not in fresh][:BACKFILL_LIMIT]
292 +
293 + actor_input: dict = {
294 + "searchUrls": urls,
295 + "getDetails": True,
296 + "maxDetails": DETAIL_LIMIT + BACKFILL_LIMIT,
297 + "skipDetailIds": sorted(fresh),
298 + "extraDetailIds": extra,
299 + "concurrency": CONCURRENCY,
300 + "requestDelay": 1,
301 + }
302 + # abonnement résidentiel Oxylabs (déjà payé) plutôt que le proxy
303 + # Apify facturé au Go ; l'acteur retombe sur Apify RESIDENTIAL
304 + # si le gabarit est absent
305 + ox_u = os.environ.get("OXYLABS_PROXY_USER")
306 + ox_p = os.environ.get("OXYLABS_PROXY_PASS")
307 + if ox_u and ox_p:
308 + actor_input["proxyUrlTemplate"] = (
309 + f"http://{ox_u}-cc-CA-sessid-{{session}}:{ox_p}"
310 + f"@pr.oxylabs.io:7777")
311 +
312 + items = self._run_actor(actor_input, token)
313 +
314 + # payloads détail -> cache BD (mêmes formes/clés que l'ère Scrapfly)
315 + for it in items:
316 + if it.get("kind") != "detail":
317 + continue
318 + if not it.get("ok"):
319 + continue # échec réseau acteur : pas de cache
320 + payload = {k: v for k, v in it.items()
321 + if k not in ("kind", "id", "ok") and v is not None}
322 + cache.put(str(it["id"]), payload or {"nopdp": True})
464 323
465 324 out: dict[str, Listing] = {}
466 − for lid, obj, city in candidates:
467 − detail = details.get(lid) or {}
468 − if not _usable(detail):
469 − detail = {}
325 + for it in items:
326 + if it.get("kind") != "listing":
327 + continue
328 + lid = str(it["id"])
329 + price = it.get("price")
330 + if price is None or not (PRICE_MIN <= price <= PRICE_MAX):
331 + continue # sans prix mensuel valable : ignorer
332 + if it.get("is_sold") or it.get("is_pending"):
333 + continue # déjà loué / en attente
334 + if _non_qc(it):
335 + continue # suggestion FB hors Québec dès la recherche
336 + detail, _f = cache.peek(lid)
337 + detail = detail if _usable(detail) else {}
470 338 if detail.get("gone"):
471 339 continue # la fiche dit : loué / retiré
472 340 if detail and _non_qc(detail):
473 341 continue # annonce hors Québec glissée dans le flux
474 − title = obj.get("marketplace_listing_title") or ""
475 − price = _price(obj)
476 − loc = obj.get("location") or {}
477 − coords = loc.get("reverse_geocode") or {}
478 − obj_city = (detail.get("city")
479 − or coords.get("city")
480 − or (coords.get("city_page") or {}).get("display_name")
481 − or city)
482 − photo = ((obj.get("primary_listing_photo") or {})
483 − .get("image") or {}).get("uri") or ""
342 + title = it.get("title") or ""
484 343 desc = detail.get("description") or ""
344 + photo = it.get("primary_photo") or ""
485 345 images = detail.get("images") or ([photo] if photo else [])
346 + city = (detail.get("city") or it.get("city")
347 + or city_by_url.get(it.get("source_url") or "", ""))
486 348 out[lid] = Listing(
487 349 source=self.source_id,
488 350 external_id=lid,
489 351 url=f"{BASE}/item/{lid}/",
490 352 title=title[:200],
491 − city=obj_city,
353 + city=city,
492 354 unit_type=_unit_type(title, desc),
493 − price=price,
355 + price=float(price),
494 356 price_label=f"{price:,.0f} $/mois".replace(",", " "),
495 357 description=desc,
496 358 images=images,
@@ -500,7 +362,7 @@ class FacebookMarketplaceConnector(BaseConnector):
500 362
501 363 listings = list(out.values())
502 364 # rattrapage des fiches actives pauvres sorties de la recherche
503 − listings.extend(self._backfill(cache, set(out)))
365 + listings.extend(self._backfill(cache, poor_rows, set(out)))
504 366 finally:
505 367 cache.close()
506 368 return listings
507 369