SPB Git forge

spb/resto-ka

Public

Resto·Ka — tous les restaurants du Québec, menus complets et prix réels (famille ·Ka)

52commits 1branches 0releases
11.6 MBsize
maindefault branch
19 days agolast push
Python 69.3% TypeScript 16.7% CSS 7.9% JavaScript 4.7% HTML 1.4%
4.2 KB · 56 lines markdown
Rendered Raw Blame History
1# Uber Eats (menus livraison + notes) — connecteur `ubereats`23_Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-18 06:06 — ne pas éditer à la main, régénérer._45**État : actif** · Palier (tier) : 2 · Backend : Scrapfly67## Description de la source89Connecteur d'ENRICHISSEMENT Uber Eats (menus livraison + notes) — SANS clé API. Découverte par les sitemaps publics (robots.txt -> sitemap-store-*.xml.gz, URLs /ca/store/<slug>/<uuid>, index local data/ubereats-stores.json rafraîchi tous les 30 j). Chaque page de resto embarque un état React Query (__REACT_QUERY_STATE__) avec le menu complet (sections + items + prix en cents), la note Uber Eats, l'adresse, le téléphone et les GPS. Croisement CONSERVATEUR avec un resto EXISTANT seulement (téléphone identique, OU code postal + numéro civique identiques, OU GPS <120 m + nom similaire) : n'émet AUCUNE fiche. Menu -> table menus en price_context `delivery` (prix majorés ~25-30 %, CLAUDE.md §6.2), note -> details.ubereats. Économe : Scrapfly ASP (1 page ≈ 1 crédit constaté), budget UBEREATS_BUDGET (défaut 60) pages resto/cycle, verdict par magasin mis en cache (detail_cache), re-visite 30 j. Conformité §15 : extraction minimale, usage d'appoint (restos sans menu ailleurs), prix toujours étiquetés `delivery`, lien source conservé.1011- **Plateforme** : ubereats · **Site** : https://www.ubereats.com12- **Extraction (registre)** : Découverte par sitemaps publics (robots.txt -> sitemap-store-*.xml.gz, URLs /ca/store/, index local data/ubereats-stores.json rafraîchi 30 j). Chaque page resto embarque __REACT_QUERY_STATE__ (getStoreV1) : menu complet (sections/items/prix en cents), note, adresse, téléphone, GPS. Croisement conservateur avec un resto EXISTANT (téléphone identique OU postal+civique OU GPS<120 m + nom similaire) — n'émet aucune fiche. Menu -> table menus en price_context delivery (prix majorés ~25-30 %), note -> details.ubereats. Budget UBEREATS_BUDGET (60 pages/cycle), verdicts en cache, re-visite 30 j.13- **Contexte de prix** : delivery14- **Module** : `restoka/connectors/ubereats.py` — `UberEatsConnector`1516## Accès1718- **Type d'accès** : sitemap XML + pages HTML19- **Endpoint de base** : https://www.ubereats.com/robots.txt20- **URLs du module** : https://www.ubereats.com/robots.txt21- **Pagination** : réponse unique (pas de pagination)22- **Backend anti-bot / rendu** : Scrapfly (asp + render_js — contournement anti-bot)23- **Politesse** : 1.0 s entre requêtes, timeout 60 s, UA `RestoKaBot/1.0 (+https://www.resto-ka.com/bot)`24- **Authentification** : aucune — accès public/anonyme2526## Champs récupérés → schéma cible2728Aucune fiche en BD pour cette source (connecteur en attente ou clé manquante) — schéma cible : table `restaurants` + `menus`.2930## Fréquence & budget3132- **Cadence déclarée (registre)** : quotidien par petits lots (60 pages), re-vérification 30 jours33- **Cadence observée** (médiane sync_log) : —34- **Caps / budgets du module** : `MAX_CANDIDATES` = 3, `MAX_CONSECUTIVE_FAILURES` = 3, `MAX_GPS_M` = 120.03536## Volumétrie & complétude3738- Aucune donnée en BD pour cette source.39- **Runs journalisés (60 derniers)** : 0, dont 0 en erreur4041## Erreurs connues & dépannage4243Aucune erreur dans les 60 derniers runs journalisés.4445Rejouer la source seule : `python3 run.py sync ubereats` · vérifier `sync_log` (`SELECT * FROM sync_log WHERE source='ubereats' ORDER BY ts DESC LIMIT 5;`).4647## Licence, attribution & conditions4849- **Cadre d'accès (registre, `acces_legal`)** : Palier 2 (CLAUDE.md §9, §15) : CGU restrictives, Cloudflare — Scrapfly ASP (~1 crédit/page constaté). Usage d'appoint minimal : menus pour restos sans source dine-in/takeout, prix TOUJOURS étiquetés delivery, lien vers la fiche source conservé. Préférer UEAT/site du resto dès que disponible.50- **Scraping / API** : User-Agent identifiable `RestoKaBot/1.0 (+https://www.resto-ka.com/bot; contact@spboucher.ai)`, throttling poli, aucun contournement d'accès ; les fiches pointent vers la source d'origine.51- Retrait sur demande : contact@spboucher.ai.5253## Historique5455- 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par `scripts/gen_connector_docs.py`).56