Yelp (avis et notes, sans clé) — connecteur yelp-scrape
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.
État : actif · Palier (tier) : 5 · Backend : Scrapfly
Description de la source
Connecteur d'ENRICHISSEMENT Yelp SANS clé API (avis/notes par scraping léger). Une seule page de RECHERCHE yelp.ca par resto (find_desc=&find_loc=) 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.
- Plateforme : yelp · Site : https://www.yelp.ca
- 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. - Contexte de prix : aucun
- Module :
restoka/connectors/yelp_scrape.py—YelpScrapeConnector
Accès
- Type d'accès : pages HTML (rendu serveur)
- Endpoint de base : https://www.yelp.ca/search?find_desc={desc}&find_loc={loc}
- URLs du module : https://www.yelp.ca/search?find_desc={desc}&find_loc={loc} · https://www.yelp.ca/biz/
- Pagination : réponse unique (pas de pagination)
- Backend anti-bot / rendu : Scrapfly (asp + render_js — contournement anti-bot)
- Politesse : 1.0 s entre requêtes, timeout 60 s, UA
RestoKaBot/1.0 (+https://www.resto-ka.com/bot) - Authentification : aucune — accès public/anonyme
Champs récupérés → schéma cible
Aucune fiche en BD pour cette source (connecteur en attente ou clé manquante) — schéma cible : table restaurants + menus.
Fréquence & budget
- Cadence déclarée (registre) : quotidien par petits lots (80 pages), re-vérification 30 jours
- Cadence observée (médiane sync_log) : —
- Caps / budgets du module :
MAX_CONSECUTIVE_FAILURES= 3
Volumétrie & complétude
- Aucune donnée en BD pour cette source.
- Runs journalisés (60 derniers) : 0, dont 0 en erreur
Erreurs connues & dépannage
Aucune erreur dans les 60 derniers runs journalisés.
Rejouer 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;).
Licence, attribution & conditions
- 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). - 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. - Retrait sur demande : contact@spboucher.ai.
Historique
- 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par
scripts/gen_connector_docs.py).