Yandex.Eda, Delivery Club, SberMarket et des dizaines d'agrégateurs régionaux de livraison — un véritable filon de données pour les marketeurs, les analystes et les propriétaires de restaurants. Mais dès que l'on commence à collecter systématiquement les prix et les éléments du menu, les services commencent à bloquer les requêtes. Dans cet article, nous allons examiner comment organiser correctement l'analyse des menus et des prix de livraison, quels outils utiliser et comment les proxies aident à éviter les blocages.
Pourquoi analyser les menus de restaurants et les prix de livraison
Le marché de la livraison de nourriture en Russie est l'un des segments les plus dynamiques du e-commerce. Les prix des plats, la composition des menus et les conditions de livraison changent littéralement chaque jour. Suivre ces changements manuellement est impossible lorsqu'il s'agit de dizaines de concurrents ou de centaines de produits. C'est ici qu'une collecte automatique de données est nécessaire.
Voici qui utilise l'analyse des menus et des prix dans la pratique :
- Propriétaires de restaurants et de cafés — suivent les prix des concurrents dans leur région afin d'ajuster rapidement leur propre politique de prix.
- Marketeurs de chaînes de restaurants — analysent quelles positions de menu les concurrents promeuvent à travers des promotions et des offres spéciales.
- Analystes du marché HoReCa — établissent des rapports sur les prix moyens des catégories de plats dans différentes villes et régions.
- Startups agrégateurs — collectent une base de données de restaurants avec menus et prix pour leur propre catalogue.
- Investisseurs et consultants — évaluent l'environnement concurrentiel avant d'ouvrir un nouvel établissement ou une franchise.
- Développeurs d'applications — créent des bases de données de plats pour des applications de comptage de calories ou de planification des repas.
Si vous travaillez dans le secteur de la restauration ou en faites l'analyse, le suivi régulier des prix des concurrents n'est pas un luxe, mais une nécessité. Une différence de 30 à 50 roubles sur un plat populaire peut directement influencer le taux de conversion en commandes. Et sans automatisation, vous serez toujours un pas derrière ceux qui ont déjà configuré la collecte de données.
Quelles données collecter auprès des agrégateurs de livraison
Avant de configurer l'analyseur, il est important de comprendre quelles données vous avez besoin. Les agrégateurs de livraison contiennent plusieurs couches d'informations, et chacune d'elles est utile pour différentes tâches.
| Type de données | Ce que cela inclut | Pour qui c'est utile |
|---|---|---|
| Menus et éléments | Noms des plats, descriptions, composition, poids, KJ, protéines, lipides, glucides | Développeurs d'applications, diététiciens |
| Prix des plats | Prix actuel, prix avec réduction, historique des changements | Propriétaires de restaurants, marketeurs |
| Conditions de livraison | Coût de livraison, montant minimum de commande, temps de livraison | Analystes, startups |
| Promotions et offres spéciales | Réductions, combos, plats promotionnels, offres saisonnières | Marketeurs, veille concurrentielle |
| Évaluations et avis | Notes des établissements, nombre d'avis, tags de qualité | Investisseurs, consultants |
| Données géographiques | Adresses, zones de livraison, quartiers de présence | Analystes de marché, franchises |
La surveillance des prix dans le temps est particulièrement précieuse : si vous collectez des données une fois par jour pendant plusieurs mois, vous pouvez voir des modèles de formation des prix chez les concurrents — quand ils augmentent les prix, quand ils lancent des promotions et comment ils réagissent à des événements externes (fêtes, événements sportifs, mauvais temps).
Particularités de la protection de Yandex.Eda, Delivery Club et d'autres agrégateurs
Les grands agrégateurs de livraison protègent activement leurs données contre la collecte automatique. Et c'est compréhensible : leur base de données de restaurants et les prix actuels sont leur avantage concurrentiel. Avant de configurer l'analyseur, il faut comprendre quelles protections vous allez rencontrer.
Yandex.Eda
Utilise plusieurs niveaux de protection simultanément. Tout d'abord, un géocodage actif est appliqué : le contenu du menu et les prix sont affichés en fonction de votre adresse IP — si l'IP provient de Moscou, vous voyez les restaurants moscovites. Deuxièmement, le site fonctionne comme une SPA (Single Page Application) sur React, c'est-à-dire que les données sont chargées via des requêtes API, et non intégrées dans le HTML. Troisièmement, en cas d'activité suspecte, Yandex SmartCaptcha s'active. En cas de requêtes fréquentes depuis une seule IP, vous êtes simplement bloqué sur le site.
Delivery Club (SberMarket)
Architecture similaire : les données sont fournies via une API interne, et non via du HTML statique. Le service analyse les modèles de comportement : si les requêtes arrivent trop rapidement ou sans pauses — blocage. Une analyse de l'User-Agent et des en-têtes des requêtes est également effectuée. Des en-têtes non standards suscitent immédiatement des soupçons.
Agrégateurs régionaux
Des services comme Chibbis, Goloso, des agrégateurs locaux dans les régions ont généralement une protection plus faible. Certains d'entre eux utilisent des pages HTML simples qui peuvent être analysées avec des outils standards. Cependant, ici aussi, le blocage par IP en cas de requêtes fréquentes est une pratique standard.
Principaux mécanismes de blocage des analyseurs sur les agrégateurs de livraison :
- Blocage IP en cas de dépassement de la limite de requêtes (rate limiting)
- Géoblocage — affichage de contenu différent pour différentes IP
- Analyse de l'User-Agent et des en-têtes HTTP
- Captcha en cas d'activité suspecte
- Rendu JavaScript des données (architecture SPA)
- Analyse du comportement : vitesse des clics, défilement, pauses
Outils pour l'analyse sans code et avec code
Bonne nouvelle : pour analyser les menus de restaurants, il n'est pas nécessaire de savoir programmer. Il existe des solutions no-code prêtes à l'emploi qui gèrent la plupart des tâches. Mais pour travailler avec des sites SPA comme Yandex.Eda, des outils plus sérieux seront nécessaires.
Outils no-code (sans programmation)
Octoparse — l'un des parseurs visuels les plus populaires. Permet de cliquer sur les éléments de la page et de construire un scénario de collecte de données sans écrire de code. Il existe un mode cloud avec rotation des IP. Convient pour la collecte de menus sur des sites avec une structure simple.
ParseHub — un outil similaire avec une interface visuelle. Peut travailler avec des pages JavaScript, ce qui le rend applicable pour les agrégateurs modernes. Supporte les proxies.
Apify — une plateforme avec des « acteurs » prêts à l'emploi (des parseurs prêts pour des sites populaires). Pour certains agrégateurs de livraison, il existe déjà des solutions prêtes dans leur marketplace. Peut être lancé via une interface web sans code.
Outils avec code (pour développeurs)
Python + Requests + BeautifulSoup — une combinaison classique pour l'analyse de pages statiques. Rapide, facile, mais ne gère pas le rendu JavaScript.
Python + Selenium ou Playwright — contrôle un véritable navigateur (Chrome/Firefox), donc gère les sites SPA, JavaScript et même certains captchas. Playwright est considéré comme une solution plus moderne et rapide. C'est cette combinaison qui fonctionne avec Yandex.Eda et Delivery Club.
Scrapy — un framework professionnel pour l'analyse à grande échelle en Python. Supporte les files d'attente de requêtes, le middleware pour les proxies, l'exportation dans différents formats. Pour de grands projets de collecte de données sur les restaurants — le choix optimal.
| Outil | Nécessite du code ? | Rendu JS | Proxies | Convient pour |
|---|---|---|---|---|
| Octoparse | Non | Partiellement | Rotation intégrée | Agrégateurs régionaux |
| ParseHub | Non | Oui | Proxies externes | La plupart des agrégateurs |
| Apify | Non | Oui | Intégrée + externes | Yandex.Eda, Delivery Club |
| Selenium/Playwright | Oui (Python) | Oui | Proxies externes | Tous les sites |
| Scrapy | Oui (Python) | Via plugins | Proxies externes | Collecte de données à grande échelle |
Pourquoi l'analyse ne fonctionne pas sans proxies
C'est une question clé. De nombreux analystes débutants essaient de lancer un analyseur directement depuis leur IP et se heurtent immédiatement à un blocage. La raison est simple : les agrégateurs de livraison voient des centaines de requêtes provenant d'une seule adresse en peu de temps et bloquent automatiquement cette adresse. La restauration de l'accès peut prendre de quelques heures à plusieurs jours.
Les proxies résolvent ce problème en répartissant les requêtes entre de nombreuses adresses IP différentes. Du point de vue du serveur, les requêtes ressemblent à un trafic normal provenant de différents utilisateurs dans différents endroits. Mais tous les proxies ne sont pas également efficaces pour cette tâche.
Proxies résidentiels
Les proxies résidentiels utilisent des adresses IP de véritables utilisateurs domestiques. Du point de vue de Yandex.Eda ou Delivery Club — c'est une personne ordinaire qui est venue voir le menu d'un restaurant. Ces proxies sont pratiquement jamais bloqués lorsqu'ils sont utilisés correctement. C'est le choix idéal pour la collecte de données à partir de grands agrégateurs avec une protection sérieuse.
Proxies mobiles
Les proxies mobiles — adresses IP des opérateurs mobiles (MTS, Beeline, MegaFon, etc.). Leur particularité est qu'une seule IP mobile peut être utilisée par des milliers de véritables utilisateurs en même temps (via NAT), donc les sites bloquent très rarement les adresses mobiles. Cela en fait l'une des options les plus fiables pour l'analyse avec une fréquence de requêtes élevée.
Proxies de centres de données
Les proxies de centres de données sont les plus rapides et les moins chers, mais leurs IP sont facilement identifiées comme « non humaines ». Pour les agrégateurs régionaux avec une protection simple, ils conviennent, mais Yandex.Eda et Delivery Club les bloquent assez rapidement. Cependant, les proxies de centres de données fonctionnent bien pour un premier contournement de la structure du site et pour tester l'analyseur avant son lancement en production.
Quel type de proxy choisir pour analyser les menus :
- Yandex.Eda, Delivery Club → proxies résidentiels ou mobiles
- Agrégateurs régionaux (Chibbis, etc.) → proxies de centres de données ou résidentiels
- Collecte de données à travers la Russie (différentes villes) → résidentiels avec géociblage par ville
- Surveillance à haute fréquence (chaque heure) → proxies mobiles avec rotation
Configuration étape par étape de l'analyseur avec proxies
Examinons un scénario pratique : vous souhaitez collecter quotidiennement les prix des pizzas de 20 concurrents dans votre ville à partir de Yandex.Eda. Voici comment le configurer étape par étape.
Étape 1. Étudiez la structure de l'API de l'agrégateur
Ouvrez Yandex.Eda dans votre navigateur, appuyez sur F12 (DevTools), allez dans l'onglet Réseau et filtrez les requêtes par XHR/Fetch. Trouvez la page du restaurant et regardez quelles requêtes API sont envoyées lors du chargement du menu. En général, c'est quelque chose comme api/v1/menu?restaurantId=.... Notez les en-têtes de ces requêtes — ils seront nécessaires pour l'imitation.
Étape 2. Choisissez un outil
Si vous ne codez pas — utilisez Apify ou ParseHub. Si vous codez en Python — Playwright sera le choix optimal pour travailler avec des sites JavaScript. Installez l'outil nécessaire et assurez-vous qu'il prend en charge la connexion de proxies externes.
Étape 3. Obtenez des proxies avec géociblage
C'est un point important. Yandex.Eda affiche différents restaurants en fonction de la ville. Si vous analysez les menus des restaurants d'Ekaterinbourg — vous avez besoin de proxies avec des IP d'Ekaterinbourg. Les proxies résidentiels avec géociblage par ville permettent d'obtenir exactement le contenu que voit un utilisateur local. Indiquez la région souhaitée lors de la configuration des proxies.
Étape 4. Configurez la rotation des proxies
N'utilisez pas un seul proxy pour toutes les requêtes. Configurez la rotation : changez d'IP toutes les 5 à 10 requêtes. Dans Apify, cela se fait via les paramètres du pool de proxies. Dans Scrapy — via le middleware. Dans Playwright — en passant un nouveau proxy à chaque création de contexte de navigateur. Plus l'IP change souvent, moins le risque de blocage est élevé.
Étape 5. Configurez des délais entre les requêtes
Ajoutez des pauses aléatoires entre les requêtes — de 2 à 8 secondes. Cela imite le comportement d'un utilisateur réel. Ne faites jamais de requêtes avec un intervalle de moins d'une seconde — c'est un chemin sûr vers le ban. Dans Scrapy, utilisez le paramètre DOWNLOAD_DELAY et activez AUTOTHROTTLE_ENABLED.
Étape 6. Configurez les bons en-têtes de requêtes
Transmettez toujours un User-Agent réaliste (la chaîne du navigateur), l'en-tête Accept-Language (par exemple, fr-FR,fr;q=0.9) et le Referer. Les requêtes sans ces en-têtes ressemblent à celles d'un bot et sont bloquées en priorité. Utilisez des chaînes User-Agent actuelles de Chrome ou Firefox.
Étape 7. Configurez un calendrier et le stockage des données
Lancez l'analyseur la nuit (entre 2h00 et 6h00) — la charge sur les serveurs des agrégateurs est minimale, et le trafic suspect est moins visible. Conservez les données dans une base de données (PostgreSQL, MySQL) ou au moins dans un CSV avec des horodatages. Cela permettra de construire un historique des changements de prix.
# Exemple de configuration de proxy dans Playwright (Python)
from playwright.sync_api import sync_playwright
import random
import time
proxies = [
{"server": "http://proxy1.example.com:8080", "username": "user", "password": "pass"},
{"server": "http://proxy2.example.com:8080", "username": "user", "password": "pass"},
# ... plus de proxies
]
def parse_restaurant_menu(url):
proxy = random.choice(proxies)
with sync_playwright() as p:
browser = p.chromium.launch()
context = browser.new_context(
proxy=proxy,
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
)
page = context.new_page()
# Pause aléatoire de 2 à 8 secondes
time.sleep(random.uniform(2, 8))
page.goto(url)
page.wait_for_selector('.menu-item') # attendre le chargement du menu
# Collecte des données sur les plats
items = page.query_selector_all('.menu-item')
menu_data = []
for item in items:
name = item.query_selector('.item-name').inner_text()
price = item.query_selector('.item-price').inner_text()
menu_data.append({'name': name, 'price': price})
browser.close()
return menu_data
Erreurs typiques et comment les éviter
Même avec une configuration correcte des outils, de nombreuses personnes rencontrent des problèmes lors de l'analyse des données de livraison de nourriture. Voici les erreurs les plus courantes et comment les résoudre.
Erreur 1 : Utilisation d'un seul proxy pour toutes les requêtes
Même le meilleur proxy résidentiel sera bloqué si des centaines de requêtes par jour sont envoyées à un seul site. Utilisez toujours un pool d'au moins 10 à 20 proxies avec rotation. Plus vous analysez de restaurants, plus vous aurez besoin de proxies.
Erreur 2 : Ignorer le géociblage
Yandex.Eda et Delivery Club affichent un contenu différent selon la ville de l'utilisateur. Si vous souhaitez collecter des données sur les restaurants de Novossibirsk, mais que vous utilisez des proxies moscovites — vous obtiendrez des données moscovites. Vérifiez toujours que le proxy correspond à la région souhaitée.
Erreur 3 : Analyse du HTML au lieu de l'API
Les parseurs débutants essaient de collecter des données à partir du code HTML des pages. Mais sur les sites SPA (et Yandex.Eda en est un), les données ne sont pas intégrées dans le HTML — elles sont chargées via l'API. Il est beaucoup plus efficace de trouver le bon point de terminaison API via DevTools et de s'y adresser directement. C'est plus rapide, plus stable et nécessite moins de ressources.
Erreur 4 : Fréquence de requêtes trop élevée
Le désir de collecter des données plus rapidement est compréhensible, mais cela conduit à un blocage instantané. Pour un suivi quotidien des prix chez 50 restaurants, il suffit de lancer l'analyseur une fois par jour avec des pauses de 3 à 5 secondes entre les requêtes. Ne tentez pas d'accélérer le processus en réduisant les délais.
Erreur 5 : Absence de surveillance de la fonctionnalité des proxies
Les proxies peuvent « mourir » — ils sont bloqués, leur durée de vie expire. Si l'analyseur continue de fonctionner avec un proxy bloqué, vous obtiendrez des données vides ou des erreurs sans remarquer le problème. Configurez une vérification de la fonctionnalité des proxies avant chaque lancement et un remplacement automatique des adresses non fonctionnelles.
Erreur 6 : Ignorer les changements de structure du site
Les agrégateurs mettent régulièrement à jour leurs sites et API. Un analyseur qui fonctionnait il y a un mois peut cesser de fonctionner après une mise à jour. Configurez des notifications d'erreurs et vérifiez la fonctionnalité de l'analyseur au moins une fois par semaine. Gardez à portée de main la documentation sur la structure des données que vous collectez.
Checklist avant de lancer l'analyseur de menus de restaurants :
- ✅ Pool de 10+ proxies avec rotation configuré
- ✅ Proxies correspondant à la ville/région souhaitée
- ✅ Délais entre les requêtes de 3 à 8 secondes (aléatoires)
- ✅ User-Agent réaliste configuré
- ✅ En-têtes Accept-Language et Referer ajoutés
- ✅ Stockage des données avec horodatages configuré
- ✅ Surveillance des erreurs et notifications activées
- ✅ Lancement planifié pour la nuit
Conclusion
L'analyse des menus de restaurants et des prix de livraison est un véritable outil d'avantage concurrentiel dans le secteur de la restauration et l'analyse du marché HoReCa. Yandex.Eda, Delivery Club et d'autres agrégateurs protègent activement leurs données, mais avec la bonne approche — un choix judicieux des outils, la configuration des délais et l'utilisation de proxies de qualité — la collecte de données fonctionne de manière stable et sans blocages.
Les conclusions clés de cet article : utilisez des outils prenant en charge le rendu JavaScript (Playwright, Apify), configurez la rotation des proxies, n'oubliez pas le géociblage et ajoutez toujours des pauses aléatoires entre les requêtes. Ce sont les trois piliers d'une analyse stable.
Si vous prévoyez de collecter régulièrement des données à partir de Yandex.Eda, Delivery Club ou d'agrégateurs régionaux de livraison, nous vous recommandons de prêter attention aux proxies résidentiels — ils offrent la meilleure résistance aux blocages et prennent en charge le géociblage par villes russes, ce qui est crucial pour la collecte correcte des données sur les prix dans des régions spécifiques.
```