Python 61.6%
TypeScript 20.9%
CSS 11.4%
JavaScript 5.1%
HTML 1.1%
1# Module `cargurus` — searchResults.action JSON23_Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas éditer à la main._45## Vue d'ensemble67- **Fichier** : `autoka/connectors/cargurus.py`8- **Sources membres** : 19- **Annonces actives (BD)** : 68410- **Backend de fetch** : Scrapfly11- **Mécanique détectée** : —12- **Plafonds / cache** : AUTOKA_CARGURUS_MAX13- **Classes** : `CarGurusQuebec` → `cargurus`1415## Mécanique (en-tête du module)1617> connectors/cargurus.py : PORTAIL — CarGurus.ca (Québec, avec « deal rating »)18> 19> CarGurus est protégé par DataDome (403 en direct, page « enable JS »).20> MAIS son API interne de liste répond en JSON pur à travers Scrapfly ASP21> SANS render_js — coût observé : 1 crédit/requête (proxy datacenter) :22> GET /Cars/searchResults.action?zip=H2X1Y4&distance=50023> &entitySelectingHelper.selectedEntity=&offset=N&maxResults=5024> &sortDir=ASC&sortType=AGE_IN_DAYS&filtersModified=true25> → tableau JSON de ~48 annonces ultra-riches : VIN (≈100 % — alimente la26> dédup inter-sources), prix + PRIX ATTENDU + dealRating/dealScore27> (l'évaluation « bonne/mauvaise affaire » maison de CarGurus, stockée28> dans details), km, boîte, carburant, rouage, carrosserie, couleurs,29> moteur, équipements, concessionnaire + ville + téléphone, photo.30> 31> Rayon : zip Montréal (H2X 1Y4) + distance=500 km couvre tout le Québec ;32> les débordements ON/NB sont filtrés par sellerRegion == "QC".33> Tri : AGE_IN_DAYS ASC = plus récentes d'abord — fenêtre glissante.34> 35> Budget SERRÉ (documenté) : plafond AUTOKA_CARGURUS_MAX (défaut 500)36> → ~11 requêtes ≈ 11 crédits Scrapfly par sync, ~130/jour au rythme37> de 12 syncs/jour. Les annonces sorties de la fenêtre passent inactives38> après le délai de grâce standard (MISS_GRACE).3940## Complétude des champs (annonces actives, N = 684)4142| Champ | % rempli |43|---|---|44| Marque | 100.0 % |45| Modèle | 100.0 % |46| Année | 100.0 % |47| Kilométrage | 99.7 % |48| Prix | 98.7 % |49| Carburant | 67.8 % |50| Boîte (transmission) | 96.2 % |51| VIN | 100.0 % |52| Photos | 82.3 % |53| Carfax | 0.0 % |54| GPS (lat/lng) | 91.8 % |5556## Sources membres (BD live)5758| Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut |59|---|---|---|---|---|---|---|---|60| `cargurus` | CarGurus.ca (Québec) | — | — | 684 | 161 | 2026-09-13 15:46 | ERREUR (0 trouvés) |6162## Erreurs de synchronisation récentes (sync_log, ok = 0)6364| Source | Quand | Message |65|---|---|---|66| `cargurus` | 2026-09-13 15:46 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Max retries exceeded with url: /scrape?key=scp-live-4678865fffba41809895d31175deccc0&url=https%3A%2F%2Fww |67| `cargurus` | 2026-09-13 12:23 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Max retries exceeded with url: /scrape?key=scp-live-4678865fffba41809895d31175deccc0&url=https%3A%2F%2Fww |68| `cargurus` | 2026-09-13 03:22 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Max retries exceeded with url: /scrape?key=scp-live-4678865fffba41809895d31175deccc0&url=https%3A%2F%2Fww |69| `cargurus` | 2026-08-28 09:30 | 422 Client Error: Unprocessable Entity for url: https://api.scrapfly.io/scrape?key=scp-live-4678865fffba41809895d31175deccc0&url=https%3A%2F%2Fwww.cargurus.ca%2 |70| `cargurus` | 2026-08-19 12:56 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Read timed out. (read timeout=120) |71