Zomato Restaurant Scraper - City, Cuisine, Contact

io.github.AnshumanAtrey由 GitHub 账号 AnshumanAtrey 发布v1.0.6更新于 Oct 30, 2026

Zomato Restaurant Scraper - City, Cuisine, Phone

发布方自己的服务:Zomato

已验证Streamable HTTP可网页运行网页搜索与抓取商业与电商

概览

AI 生成的概览

托管在 Apify 上的抓取工具,让助手按城市和菜系抓取 Zomato 餐厅列表,输出含联系方式的结构化记录。

可以做什么
  • 按城市、列表类型和菜系运行 Zomato 餐厅列表抓取,并可设定最多抓取多少家餐厅。
  • 获取每家餐厅的结构化记录:名称、链接、电话、地址、菜系、评分、人均消费、城市和区域。
  • 读取每次运行的汇总记录,包含已抓取数、发现数、失败数、耗时和来源链接。
  • 通过覆盖参数指定预设列表之外的城市、菜系,或直接给出一条 Zomato 列表链接。
  • 可选择扫描深度,从仅取链接和名称到带额外重试的完整详情。
适用场景
适合需要助手建立或更新餐厅线索名单、比较不同城市或菜系、收集竞品与市场数据的场景,且无需 Zomato 账号。面向销售、餐饮科技研究和获客流程,而非菜单或单品数据。
运行要求
远程 MCP 端点 mcp.apify.com,使用 streamable HTTP,需通过 Authorization 请求头以 Bearer 加 Apify API 令牌的形式认证。运行费用计入该 Apify 账户;无需 Zomato 账号。
安装前请注意
Apify API 令牌是密钥,可授权计入你账户的运行,且每次运行按记录计费(约每条餐厅记录 0.005 美元,50 家约 0.26 美元)。抓取依赖住宅代理和 Zomato 公开数据;README 将遵守 Zomato 服务条款、GDPR/DPDP 及当地法律的責任归于使用者,并提醒不要在未获同意的情况下大规模电话推销。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Zomato Restaurant Scraper - City, Cuisine, Contact,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.AnshumanAtrey%2Fzomato-restaurant-scraper/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "zomato-restaurant-scraper-city-cuisine-c": {
      "type": "http",
      "url": "https://mcp.apify.com/?tools=anshumanatrey/zomato-restaurant-scraper"
    }
  }
}

README

Zomato Restaurant Scraper

📦 Open source · MIT: github.com/AnshumanAtrey/zomato-restaurant-scraper

Scrape restaurant listings from Zomato by city and cuisine. Get structured records with name, phone, address, cuisines, rating, and cost for two — no Zomato account required.

Built for B2B sales teams, food-tech researchers, ghost-kitchen operators, lead-gen agencies, and competitor intelligence.

Quick start

  1. Pick a City from the dropdown (Bangalore, Delhi NCR, Mumbai, Dubai, Singapore, etc. — 40 cities)
  2. Pick a Listing Type (Best, All, Dinner, Breakfast)
  3. Optionally pick a Cuisine filter (Biryani, Pizza, North Indian, Chinese, etc. — 24 options)
  4. Set how many restaurants you want (default 50, up to 1000)
  5. Click Run

A 50-restaurant scan takes one to one and a half minutes on Apify at the default 1 GB of memory (63 to 90 seconds in three runs, 2026-10-30).

What you get

Each restaurant is pushed as one dataset record:

FieldExample
nameTruffles
urlhttps://www.zomato.com/bangalore/truffles-st-marks-road-central-bangalore/info
slugtruffles-st-marks-road-central-bangalore
phone+91 80 4111 2400
address22, St Marks Road, Bangalore
cuisinesAmerican, Burger, Continental
rating4.5
costForTwo₹800
citybangalore
areaCentral Bangalore
timestamp2026-05-22T09:43:18Z

A final summary record reports restaurantsScraped, restaurantsFound, failures, duration, and sourceUrls.

Common use cases

Build a B2B restaurant lead list

Pick Mumbai, Best restaurants, maxRestaurants: 200. Export the CSV. You now have 200 verified phone numbers + addresses for outreach.

Scrape a specific cuisine in a specific city

Pick Hyderabad, All restaurants, Cuisine: Biryani, maxRestaurants: 100.

Scrape a city not in the dropdown

Use the Custom city field under "Advanced overrides". Type Tirunelveli, Erode, Coorg, Manali, Madurai, Varanasi — auto-converted to the right Zomato URL.

Scrape a category not in the dropdown

Use the Custom cuisine field. Momos, Kebab, Hyderabadi, Awadhi all work.

Scrape an exact Zomato URL you already have

Paste it into Custom URL under "Advanced overrides". Overrides every other dropdown.

Inputs

Main fields

  • City — Pick from 40 Zomato cities across India, UAE, Qatar, Oman, Malaysia, Singapore, Philippines, Sri Lanka, Portugal
  • Listing Type — Best restaurants (curated top picks), All restaurants, Dinner spots, or Breakfast spots
  • Cuisine — Optional filter across 24 cuisine categories, or "Any" for no filter
  • How many restaurants — Cap on results (1-1000). Start with 20-50 to verify, then scale up
  • Scan depth:
    • Quick — restaurant URLs + names only (fast, cheap, useful for bulk URL lists)
    • Standard — full data: phone, address, rating, cost (default — recommended for B2B leads)
    • Deep — full data with extra retries for blocked pages (slowest, highest yield)

Advanced overrides (optional)

  • Custom city — Type any Zomato city not in the dropdown. Auto-slugified
  • Custom cuisine — Type any Zomato cuisine category not in the dropdown
  • Custom URL — Paste any Zomato listing URL to scrape it directly. Overrides everything above

Runtime

  • Run timeout (seconds) — Hard kill after this many seconds (default 1800 = 30 min)

How it works

  1. Listing page: navigates to the constructed Zomato URL, scrolls to load lazy content, extracts all restaurant detail URLs (handles both /info and /order URL patterns)
  2. Detail pages: visits each restaurant page concurrently using fast HTTP fetches (Cheerio) — typically 5-10x faster than full browser rendering
  3. Auto-fallback: if the primary URL returns 0 restaurants, automatically retries /{city}/restaurants as a fallback

Uses Apify Residential Proxy to avoid rate-limit issues.

Pricing

$0.005 per restaurant record. A typical 50-restaurant scan costs ~$0.26: 50 restaurant records plus the run's one summary record, which is charged as a record too. On paid Apify plans a record is $0.0045 on Scale and $0.004 on Business and above.

Scan sizeApprox cost
20 restaurants$0.10
50 restaurants$0.25
100 restaurants$0.50
500 restaurants$2.50
1000 restaurants$5.00

FAQ

Does it scrape menu items / dishes?

No — it scrapes restaurant listings (name, phone, address, etc.), not menus. For menu data, use a different actor that hits individual restaurant pages with menu rendering.

Can I scrape "Dahi Puri" or "Tandoor"?

Zomato organizes by cuisine category, not by individual dish. Specific dishes like dahi-puri don't have their own URL on Zomato. Use a broader category like Street Food or North Indian instead.

Can I scrape an entire state like "Tamil Nadu"?

Zomato has no state-level URLs. Pick a specific city instead — e.g., for Tamil Nadu use Chennai, Coimbatore, or custom-city Madurai/Tirunelveli.

Does it work for cities outside the dropdown?

Yes. Use the Custom city field with the city name — Erode, Coorg, Manali, Varanasi, etc. The actor auto-slugifies and auto-falls-back to /{city}/restaurants if /best-restaurants doesn't exist for that smaller city.

Why didn't I get any results?

Most likely causes:

  • Off-list cuisine combined with quick scan — try Standard depth
  • City has no listings for that cuisine — try removing the cuisine filter
  • Custom URL is malformed — paste it in a browser first to verify

What about international cities?

Dubai, Abu Dhabi, Sharjah (UAE), Doha (Qatar), Muscat (Oman), Kuala Lumpur (Malaysia), Singapore, Manila, Colombo, Lisbon are in the dropdown. Other Zomato international cities (e.g., Sydney, Auckland) work via the Custom city field.

Is the data accurate / fresh?

Pulled live from Zomato at run time. Phone numbers and addresses are exactly what Zomato displays today. Ratings may lag slightly behind Zomato's internal scoring.

Is this legal?

Scrapes only publicly visible data on Zomato. You are responsible for complying with Zomato's Terms of Service, GDPR/DPDP, and local laws. Don't use phone numbers for mass cold-calling without consent.

Output structure

json
{  "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"}

Plus one summary record per run:

json
{  "recordType": "summary",  "restaurantsScraped": 50,  "restaurantsFound": 52,  "failures": 2,  "duration": 287,  "sourceUrls": ["https://www.zomato.com/bangalore/best-restaurants"]}

Pairs nicely with

Enrich your restaurant lead lists with deeper intel:

  • Holehe Email OSINT — After scraping restaurant emails from their websites, check which platforms each restaurant owner is on
  • NetIntel — WHOIS, DNS, SSL, GeoIP of each restaurant's website
  • Social Analyzer — Find a restaurant brand's social media presence across 900+ platforms
  • theHarvester — Discover all subdomains + emails for a restaurant chain's primary domain
  • nmap — Network recon (for IT/security workflows, not lead-gen)
  • Bug Bounty Finder — Audit a restaurant chain's disclosure-program coverage

Credits

Built by Anshuman Atrey using Apify SDK, Crawlee, Puppeteer, and Cheerio.

Disclaimer

This scraper accesses publicly available data on Zomato. You are responsible for complying with Zomato's Terms of Service and applicable laws in your jurisdiction. Use the data responsibly — avoid mass cold-calling without consent.

来源:README.md,提交 9e9efbb

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

3
  1. v1.0.6最新Oct 30, 2026
  2. v1.0.3Oct 29, 2026
  3. v1.0.2Sep 24, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Zomato 集成