# Module `cargurus` — searchResults.action JSON _Généré automatiquement par `scripts/gen_connector_docs.py` — ne pas éditer à la main._ ## Vue d'ensemble - **Fichier** : `autoka/connectors/cargurus.py` - **Sources membres** : 1 - **Annonces actives (BD)** : 684 - **Backend de fetch** : Scrapfly - **Mécanique détectée** : — - **Plafonds / cache** : AUTOKA_CARGURUS_MAX - **Classes** : `CarGurusQuebec` → `cargurus` ## Mécanique (en-tête du module) > connectors/cargurus.py : PORTAIL — CarGurus.ca (Québec, avec « deal rating ») > > CarGurus est protégé par DataDome (403 en direct, page « enable JS »). > MAIS son API interne de liste répond en JSON pur à travers Scrapfly ASP > SANS render_js — coût observé : 1 crédit/requête (proxy datacenter) : > GET /Cars/searchResults.action?zip=H2X1Y4&distance=500 > &entitySelectingHelper.selectedEntity=&offset=N&maxResults=50 > &sortDir=ASC&sortType=AGE_IN_DAYS&filtersModified=true > → tableau JSON de ~48 annonces ultra-riches : VIN (≈100 % — alimente la > dédup inter-sources), prix + PRIX ATTENDU + dealRating/dealScore > (l'évaluation « bonne/mauvaise affaire » maison de CarGurus, stockée > dans details), km, boîte, carburant, rouage, carrosserie, couleurs, > moteur, équipements, concessionnaire + ville + téléphone, photo. > > Rayon : zip Montréal (H2X 1Y4) + distance=500 km couvre tout le Québec ; > les débordements ON/NB sont filtrés par sellerRegion == "QC". > Tri : AGE_IN_DAYS ASC = plus récentes d'abord — fenêtre glissante. > > Budget SERRÉ (documenté) : plafond AUTOKA_CARGURUS_MAX (défaut 500) > → ~11 requêtes ≈ 11 crédits Scrapfly par sync, ~130/jour au rythme > de 12 syncs/jour. Les annonces sorties de la fenêtre passent inactives > après le délai de grâce standard (MISS_GRACE). ## Complétude des champs (annonces actives, N = 684) | Champ | % rempli | |---|---| | Marque | 100.0 % | | Modèle | 100.0 % | | Année | 100.0 % | | Kilométrage | 99.7 % | | Prix | 98.7 % | | Carburant | 67.8 % | | Boîte (transmission) | 96.2 % | | VIN | 100.0 % | | Photos | 82.3 % | | Carfax | 0.0 % | | GPS (lat/lng) | 91.8 % | ## Sources membres (BD live) | Source | Nom | Ville | Région | Actives | Masquées (dup VIN) | Dernier sync | Statut | |---|---|---|---|---|---|---|---| | `cargurus` | CarGurus.ca (Québec) | — | — | 684 | 161 | 2026-09-13 15:46 | ERREUR (0 trouvés) | ## Erreurs de synchronisation récentes (sync_log, ok = 0) | Source | Quand | Message | |---|---|---| | `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 | | `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 | | `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 | | `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 | | `cargurus` | 2026-08-19 12:56 | HTTPSConnectionPool(host='api.scrapfly.io', port=443): Read timed out. (read timeout=120) |