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.1 KB · 56 lines markdown
Rendered Raw Blame History
1# Yelp (avis et notes, sans clé) — connecteur `yelp-scrape`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) : 5 · Backend : Scrapfly67## Description de la source89Connecteur d'ENRICHISSEMENT Yelp SANS clé API (avis/notes par scraping léger). Une seule page de RECHERCHE yelp.ca par resto (find_desc=<nom>&find_loc=<ville>) via Scrapfly ASP : la page embarque un cache Apollo (scripts data-apollo-state) avec, PAR commerce, alias, nom, note, nombre d'avis, fourchette de prix, catégories et adresse (ville + civique). Croisement CONSERVATEUR : nom similaire + même numéro civique + ville compatible (jamais fusionner deux établissements). Résultat -> details.yelp {rating, review_count, price, categories, url} (mêmes clés que Yelp Fusion — le connecteur officiel `yelp` reprend la main dès qu'une YELP_API_KEY existe). Économe : budget YELP_SCRAPE_BUDGET (défaut 80) pages/cycle, re-visite 30 jours (hit comme miss), priorité aux restos avec menu. Base légale : pages publiques, extraction minimale (note agrégée + lien vers la fiche Yelp, attribution affichée) — voir CLAUDE.md §15.1011- **Plateforme** : yelp · **Site** : https://www.yelp.ca12- **Extraction (registre)** : Une page de RECHERCHE yelp.ca par resto (find_desc=nom&find_loc=ville) via Scrapfly ASP : le cache Apollo embarqué (scripts data-apollo-state) expose alias, note, nb d'avis, fourchette de prix, catégories, ville et civique par commerce -> details.yelp (mêmes clés que Yelp Fusion). Croisement conservateur : nom similaire + même numéro civique + ville compatible ; ambigu = ignoré. Budget YELP_SCRAPE_BUDGET (80 pages/cycle), re-visite 30 j (hit comme miss), priorité aux restos avec menu. N'émet aucune fiche. Le connecteur `yelp` (API Fusion) reprend la main dès qu'une YELP_API_KEY existe.13- **Contexte de prix** : aucun14- **Module** : `restoka/connectors/yelp_scrape.py` — `YelpScrapeConnector`1516## Accès1718- **Type d'accès** : pages HTML (rendu serveur)19- **Endpoint de base** : https://www.yelp.ca/search?find_desc={desc}&find_loc={loc}20- **URLs du module** : https://www.yelp.ca/search?find_desc={desc}&find_loc={loc} · https://www.yelp.ca/biz/21- **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 (80 pages), re-vérification 30 jours33- **Cadence observée** (médiane sync_log) : —34- **Caps / budgets du module** : `MAX_CONSECUTIVE_FAILURES` = 33536## 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 yelp-scrape` · vérifier `sync_log` (`SELECT * FROM sync_log WHERE source='yelp-scrape' ORDER BY ts DESC LIMIT 5;`).4647## Licence, attribution & conditions4849- **Cadre d'accès (registre, `acces_legal`)** : Pages publiques yelp.ca, extraction minimale (note agrégée + lien fiche), attribution Yelp affichée avec la note (mêmes conditions d'affichage que Fusion). Anti-bot réel : Scrapfly ASP, ~30 crédits/page — budget serré. À remplacer par l'API Fusion (clé gratuite) dès que possible (CLAUDE.md §15).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