# 日本餐饮数据 — 餐厅·预算·交通 (`fruitful_quintessence/japan-hotpepper-cn-scraper`) Actor

从日本最大餐厅预约门户HOT PEPPER Gourmet按地区和菜系抓取餐厅数据：店名、料理类型、晚餐/午餐预算、车站交通、GPS坐标、广告判定。

- **URL**: https://apify.com/fruitful\_quintessence/japan-hotpepper-cn-scraper.md
- **Developed by:** [atushi ino](https://apify.com/fruitful_quintessence) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 日本餐饮数据（HOT PEPPERグルメ）— 餐厅·预算·交通

**从日本最大规模的餐厅预约·优惠券门户「HOT PEPPER Gourmet（ホットペッパーグルメ，Recruit运营）」抓取餐厅数据。** 按都道府县+菜系获取餐厅，包括店名、料理类型、宣传语、晚餐/午餐预算、最近车站及交通方式、精确GPS坐标、是否推广位。

适合**日本餐饮市场调研**、**餐厅商机线索收集**、**旅游餐饮分析**、**菜系与消费预算研究**。

> 🇯🇵 English版: [Japan HotPepper Gourmet Restaurants Scraper](https://apify.com/fruitful_quintessence/japan-hotpepper-scraper)

### 输出示例

```json
{
  "shopId": "J004660516",
  "name": "もつ焼き ひふみ屋",
  "genre": "居酒屋｜道玄坂",
  "genreCode": "G001",
  "catchphrase": "厳選もつ焼きが自慢！大人のグルメな隠れ家",
  "dinnerBudget": "4001～5000円",
  "lunchBudget": null,
  "access": "各線【渋谷駅】A2出口より徒歩4分...",
  "area": "SA11",
  "url": "https://www.hotpepper.jp/strJ004660516/",
  "lat": "35.6602652",
  "lon": "139.6971312",
  "isSponsored": false
}
```

### 输入参数

| 参数 | 类型 | 默认 | 说明 |
|------|------|------|------|
| `area` | string | `tokyo` | 都道府县。关键词（tokyo, osaka, hokkaido...）或编码（SA11=东京, SA23=大阪, SA91=福冈...） |
| `genre` | string | `izakaya` | 菜系。关键词（izakaya, ramen, yoshoku...）或编码（G001=居酒屋, G013=拉面...） |
| `maxItems` | integer | 100 | 最大获取数 |
| `maxPages` | integer | 5 | 最大页数（每页约20家） |
| `proxyConfiguration` | object | auto | Apify代理（大批量推荐） |

#### 都道府县编码（全部47个）

`tokyo`=SA11, `kanagawa`=SA12, `osaka`=SA23, `kyoto`=SA22, `aichi`=SA33, `hokkaido`=SA41, `fukuoka`=SA91, `chiba`=SA14, `saitama`=SA13, `hyogo`=SA24, `hiroshima`=SA74, `okinawa`=SA98 等全部。

#### 菜系编码

`izakaya`(居酒屋)=G001, `diningbar`=G002, `creative`(创作料理)=G003, `washoku`(和食)=G004, `yoshoku`(洋食)=G005, `chuuka`(中华)=G007, `asian`=G009, `bar`=G012, `ramen`(拉面)=G013, `okonomiyaki`(御好烧)=G016.

### 使用场景

- **市场调研**：比较日本各地区餐厅密度、菜系构成、价格区间
- **商机线索**：构建地区餐厅数据库（B2B推广、食材/系统供应商）
- **旅游分析**：规划旅游餐饮与预算
- **价格监测**：追踪预算区间分布变化

### 限制

- 仅限HOT PEPPER Gourmet公开显示的数据，非日本全部餐厅
- 列表HTML不含评分/评论（HotPepper为预约型，非评分制）
- `dinnerBudget`/`lunchBudget` 在店铺未显示时为 `null`
- `isSponsored: true` 表示付费推广位

# Actor input Schema

## `area` (type: `string`):

要抓取的都道府县。使用关键词（tokyo, osaka, hokkaido, kanagawa...）或编码（SA11=东京, SA23=大阪...）。

## `genre` (type: `string`):

料理菜系。使用关键词（izakaya, ramen, yoshoku...）或编码（G001=居酒屋, G013=拉面...）。

## `maxItems` (type: `integer`):

最多获取的餐厅数量（每个地区+菜系）。

## `maxPages` (type: `integer`):

最多爬取的列表页数（每页约20家餐厅）。

## `proxyConfiguration` (type: `object`):

使用Apify代理避免IP封锁。

## Actor input object example

```json
{
  "area": "tokyo",
  "genre": "izakaya",
  "maxItems": 100,
  "maxPages": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `shopId` (type: `string`):

HotPepper shop identifier

## `name` (type: `string`):

Restaurant name

## `genre` (type: `string`):

Food genre label

## `genreCode` (type: `string`):

Genre URL code

## `catchphrase` (type: `string`):

Restaurant tagline

## `dinnerBudget` (type: `string`):

Dinner price range

## `lunchBudget` (type: `string`):

Lunch price range

## `access` (type: `string`):

Nearest station & walk time

## `area` (type: `string`):

Prefecture area code

## `url` (type: `string`):

Restaurant page URL

## `imageUrl` (type: `string`):

Main photo URL

## `lat` (type: `string`):

Latitude

## `lon` (type: `string`):

Longitude

## `isSponsored` (type: `string`):

Whether listing is PR/sponsored

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "area": "tokyo",
    "genre": "izakaya",
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fruitful_quintessence/japan-hotpepper-cn-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "area": "tokyo",
    "genre": "izakaya",
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("fruitful_quintessence/japan-hotpepper-cn-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "area": "tokyo",
  "genre": "izakaya",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call fruitful_quintessence/japan-hotpepper-cn-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fruitful_quintessence/japan-hotpepper-cn-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/95ZKdUlpFBo8CBYJh/builds/1qbv3XJ6Pomaya9uz/openapi.json
