关于 Zomato Restaurant Scraper - City, Cuisine, Contact
这款开源 Apify Actor 按城市、餐饮类别和菜系抓取 Zomato 餐厅列表,面向销售团队、餐饮科技研究者及竞品分析人员。它输出包含联系方式、地址、评分和双人消费等字段的结构化记录,并支持自定义城市、菜系或 URL。
主要功能
- 01按城市和菜系筛选餐厅
- 02支持多种列表类型
- 03抓取电话、地址和评分
- 04快速、标准及深度扫描
- 05自定义城市、菜系或 URL
- 06输出餐厅记录及运行摘要
适用场景
- 01建立餐厅销售线索名单
- 02研究特定城市的菜系餐厅
- 03比较不同地区的餐厅信息
- 04抓取自定义 Zomato 列表
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraperclaude mcp add --transport http anshumanatrey-zomato-restaurant-scraper https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper{"mcpServers":{"anshumanatrey-zomato-restaurant-scraper":{"type":"http","url":"https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper"}}}在 Cursor 中打开{"servers":{"anshumanatrey-zomato-restaurant-scraper":{"type":"http","url":"https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper"}}}在 VS Code 中打开{"mcpServers":{"anshumanatrey-zomato-restaurant-scraper":{"type":"http","url":"https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper"}}}{"mcpServers":{"anshumanatrey-zomato-restaurant-scraper":{"serverUrl":"https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper需要授权工具
详细介绍
Zomato 餐厅抓取工具
📦 开源 · MIT: github.com/AnshumanAtrey/zomato-restaurant-scraper
按城市和菜系抓取 Zomato 上的餐厅列表。获取包含名称、电话、地址、菜系、评分和双人用餐价格的结构化记录——无需 Zomato 账号。
适用于 B2B 销售团队、食品科技研究人员、幽灵厨房运营者、潜在客户开发机构和竞争情报团队。
快速开始
- 从下拉菜单中选择城市(Bangalore、Delhi NCR、Mumbai、Dubai、Singapore 等,共 40 个城市)
- 选择列表类型(Best、All、Dinner、Breakfast)
- 可选:选择菜系筛选条件(Biryani、Pizza、North Indian、Chinese 等,共 24 种)
- 设置要抓取的餐厅数量(默认 50,最多 1000)
- 点击运行
抓取 50 家餐厅通常需要 3-7 分钟。
可获取的数据
每家餐厅会作为一条数据集记录推送:
| 字段 | 示例 |
|---|---|
name | Truffles |
url | https://www.zomato.com/bangalore/truffles-st-marks-road-central-bangalore/info |
slug | truffles-st-marks-road-central-bangalore |
phone | +91 80 4111 2400 |
address | 22, St Marks Road, Bangalore |
cuisines | American, Burger, Continental |
rating | 4.5 |
costForTwo | ₹800 |
city | bangalore |
area | Central Bangalore |
timestamp | 2026-05-22T09:43:18Z |
最后一条 summary 记录会报告 restaurantsScraped、restaurantsFound、failures、duration 和 sourceUrls。
常见用途
构建 B2B 餐厅潜在客户名单
选择 Mumbai、Best restaurants、maxRestaurants: 200。导出 CSV,即可获取 200 个经过验证的电话号码和地址,用于客户拓展。
抓取特定城市的特定菜系
选择 Hyderabad、All restaurants、Cuisine: Biryani、maxRestaurants: 100。
抓取下拉菜单中没有的城市
使用“Advanced overrides”下的自定义城市字段。输入 Tirunelveli、Erode、Coorg、Manali、Madurai、Varanasi——系统会自动转换为正确的 Zomato URL。
抓取下拉菜单中没有的类别
使用自定义菜系字段。Momos、Kebab、Hyderabadi、Awadhi 均可使用。
抓取已有的 Zomato 精确 URL
将其粘贴到“Advanced overrides”下的自定义 URL字段。此设置会覆盖其他所有下拉菜单选项。
输入项
主要字段
- 城市 — 从印度、阿联酋、卡塔尔、阿曼、马来西亚、新加坡、菲律宾、斯里兰卡和葡萄牙的 40 个 Zomato 城市中选择
- 列表类型 —
Best restaurants(精选推荐)、All restaurants、Dinner spots或Breakfast spots - 菜系 — 可选筛选条件,涵盖 24 种菜系;选择“Any”则不筛选
- 餐厅数量 — 结果上限(1-1000)。先从 20-50 家开始验证,再扩大规模
- 抓取深度:
Quick— 仅抓取餐厅 URL 和名称(速度快、成本低,适用于批量获取 URL 列表)Standard— 完整数据:电话、地址、评分、价格(默认选项,推荐用于 B2B 潜在客户开发)Deep— 完整数据,并针对被拦截的页面进行额外重试(速度最慢,产出最高)
高级覆盖选项(可选)
- 自定义城市 — 输入下拉菜单中没有的任意 Zomato 城市。系统会自动转换为 slug 格式
- 自定义菜系 — 输入下拉菜单中没有的任意 Zomato 菜系类别
- 自定义 URL — 粘贴任意 Zomato 列表 URL,直接抓取该页面。此设置会覆盖以上所有选项
运行时
- 运行超时(秒) — 达到设定时长后强制终止(默认值为 1800 = 30 分钟)
工作原理
- 列表页:导航至构建好的 Zomato URL,滚动页面以加载延迟内容,并提取所有餐厅详情 URL(同时支持
/info和/orderURL 模式) - 详情页:通过快速 HTTP 请求(Cheerio)并发访问每家餐厅的页面,通常比完整浏览器渲染快 5~10 倍
- 自动回退:如果主 URL 返回的餐厅数量为 0,则自动重试
/{city}/restaurants作为回退方案
使用 Apify Residential Proxy 避免触发速率限制。
定价
每条餐厅记录 $0.005。 一次典型的 50 家餐厅扫描费用约为 $0.26。
| 扫描规模 | 预计费用 |
|---|---|
| 20 家餐厅 | $0.10 |
| 50 家餐厅 | $0.25 |
| 100 家餐厅 | $0.50 |
| 500 家餐厅 | $2.50 |
| 1000 家餐厅 | $5.00 |
常见问题
它会抓取菜单菜品吗?
不会——它抓取的是餐厅列表(名称、电话、地址等),而不是菜单。要获取菜单数据,请使用另一个会访问单家餐厅页面并渲染菜单的 actor。
我可以抓取「Dahi Puri」或「Tandoor」吗?
Zomato 按菜系类别而非具体菜品进行分类。dahi-puri 等具体菜品在 Zomato 上没有专属 URL。请改用更宽泛的类别,例如街头小吃或北印度菜。
我可以抓取整个「Tamil Nadu」邦吗?
Zomato 没有邦级 URL。请改为选择具体城市——例如,在 Tamil Nadu 可使用 Chennai、Coimbatore,或自定义城市 Madurai/Tirunelveli。
它可以用于下拉列表中没有的城市吗?
可以。使用自定义城市字段并填写城市名称——例如 Erode、Coorg、Manali、Varanasi 等。该 actor 会自动将城市名转换为 URL slug;如果较小城市不存在 /best-restaurants,则自动回退到 /{city}/restaurants。
为什么没有获取到任何结果?
最可能的原因:
- 不在列表中的菜系与快速扫描搭配使用——请尝试
Standard深度 - 该城市没有此菜系的列表——请尝试移除菜系筛选条件
- 自定义 URL 格式错误——先在浏览器中粘贴并验证
国际城市呢?
下拉列表中包含 Dubai、Abu Dhabi、Sharjah(UAE)、Doha(Qatar)、Muscat(Oman)、Kuala Lumpur(Malaysia)、Singapore、Manila、Colombo 和 Lisbon。其他 Zomato 国际城市(如 Sydney、Auckland)可通过自定义城市字段使用。
数据准确且及时吗?
数据会在运行时从 Zomato 实时获取。电话号码和地址与 Zomato 当前显示的内容完全一致。评分可能会略微滞后于 Zomato 的内部评分。
这样合法吗?
仅抓取 Zomato 上公开可见的数据。你有责任遵守 Zomato 的服务条款、GDPR/DPDP 以及当地法律。未经同意,请勿将电话号码用于大规模陌生电话营销。
输出结构
{
"recordType": "restaurant",
"name": "Truffles",
"url": "https://www.zomato.com/bangalore/truffles-st-marks-road-central-bangalore/info",
"slug": "truffles-st-marks-road-central-bangalore",
"phone": "+91 80 4111 2400",
"address": "22, St Marks Road, Bangalore",
"cuisines": ["American", "Burger", "Continental"],
"rating": 4.5,
"costForTwo": "₹800",
"city": "bangalore",
"area": "Central Bangalore",
"timestamp": "2026-05-22T09:43:18Z"
}
每次运行还会生成一条 summary 记录:
{
"recordType": "summary",
"restaurantsScraped": 50,
"restaurantsFound": 52,
"failures": 2,
"duration": 287,
"sourceUrls": ["https://www.zomato.com/bangalore/best-restaurants"]
}
搭配使用
为餐厅潜在客户名单补充更深入的信息:
- Holehe Email OSINT — 从餐厅网站抓取电子邮件后,检查每位餐厅经营者使用了哪些平台
- NetIntel — 查询每家餐厅网站的 WHOIS、DNS、SSL 和 GeoIP 信息
- Social Analyzer — 查找餐厅品牌在 900 多个平台上的社交媒体信息
- theHarvester — 查找餐饮连锁主要域名的所有子域名和电子邮件
- nmap — 网络侦察(适用于 IT/安全工作流,不适用于潜在客户开发)
- Bug Bounty Finder — 审查餐饮连锁的漏洞披露计划覆盖情况
致谢
由 Anshuman Atrey 使用 Apify SDK、Crawlee、Puppeteer 和 Cheerio 构建。
免责声明
此抓取工具会访问 Zomato 上公开可用的数据。您有责任遵守 Zomato 的服务条款以及您所在司法管辖区的适用法律。请负责任地使用这些数据——未经同意,请勿进行大规模冷呼叫。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。