# Naver Blog Topic Feed Scraper (네이버 블로그 주제별) (`hgservices/naver-blog-topic-feed-scraper`) Actor

Scrape Naver Blog (네이버 블로그) featured posts by topic — 맛집, 국내여행, 상품리뷰, 육아, IT and 25 more: titles, snippets, authors, publish dates, likes, comment counts, thumbnails and the 내돈내산 flag. Up to 1,000 posts per topic.

- **URL**: https://apify.com/hgservices/naver-blog-topic-feed-scraper.md
- **Developed by:** [Harish Garg](https://apify.com/hgservices) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 scraped posts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Naver Blog Topic Feed Scraper (네이버 블로그 주제별)

**Scrape the featured posts of [Naver Blog](https://section.blog.naver.com) topics** (주제별 보기) — 맛집, 국내여행, 상품리뷰, 육아·결혼, IT·컴퓨터 and 24 more. For each post you get the **title, snippet, author, publish date, likes, comment count, thumbnails** and the **내돈내산 (self-purchased) flag**, in Naver's order.

Export the posts as JSON, CSV, Excel, XML or HTML, or read them from the API.

No Naver account. No login. No coding needed.

### What does Naver Blog Topic Feed Scraper do?

Naver Blog sorts posts into 29 topics on its 주제별 보기 page. Select the topics that you want. For each topic, the scraper returns the posts that Naver features there now:

- **Post data** — title, snippet, desktop and mobile post URL, publish date, thumbnails, and whether the post has a video.
- **Engagement** — likes (공감) and comment count.
- **Author data** — nickname, blog URL and profile image.
- **Topic data** — the feed topic, the post's rank in the feed, and the post's own topic.
- **내돈내산 flag** — `selfPurchased: true` when Naver labels the post as bought with the author's own money.
- **Up to 1,000 posts per topic** — all the posts that Naver shows for a topic.
- **Many topics in one run** — select one topic or all 29.

### Use cases

- **Korean trend research** — See what Korean bloggers write about now in food, travel, parenting, beauty, IT and more.
- **Influencer and blogger discovery** — Find active bloggers in a topic, with the likes and comments that their posts get.
- **Content ideas and Naver SEO** — Study the titles and subjects that Naver features in your category.
- **Self-paid review research** — Collect 내돈내산 posts in 상품리뷰 or 맛집 for honest consumer opinions.
- **Daily topic monitoring** — Run the scraper on a schedule and collect the new featured posts every day.
- **Korean NLP and AI datasets** — Collect fresh Korean text that is already labeled by topic.

### How to scrape Naver Blog topics in Apify Console

1. Click **Try for free** and sign in to Apify. A free account is enough.
2. In **Topics**, select one or more topics, for example **맛집 (Restaurants)**.
3. In **Max posts per topic**, set the number of posts that you want for each topic. The default is 100.
4. Click **Start**.
5. Open the **Output** tab. View the posts as a table, or download them as JSON, CSV, Excel, XML or HTML.

### Input

| Field        | Type     | Default | Description                                                                                |
| ------------ | -------- | ------- | ------------------------------------------------------------------------------------------ |
| `topics`     | string\[] | —       | The Naver Blog topics to scrape. Each topic is scraped separately. Required                |
| `maxResults` | integer  | `100`   | The most posts to return for each topic, from 1 to 1,000. `0` = all the posts of the topic |

#### Topic values

| Value                      | Topic         | Value              | Topic         |
| -------------------------- | ------------- | ------------------ | ------------- |
| `books`                    | 문학·책       | `cooking-recipes`  | 요리·레시피   |
| `movies`                   | 영화          | `product-reviews`  | 상품리뷰      |
| `performances-exhibitions` | 공연·전시     | `games`            | 게임          |
| `dramas`                   | 드라마        | `sports`           | 스포츠        |
| `broadcasting`             | 방송          | `cars`             | 자동차        |
| `music`                    | 음악          | `domestic-travel`  | 국내여행      |
| `celebrities`              | 스타·연예인   | `world-travel`     | 세계여행      |
| `comics-animation`         | 만화·애니     | `restaurants`      | 맛집          |
| `daily-life`               | 일상·생각     | `it-computers`     | IT·컴퓨터     |
| `parenting-marriage`       | 육아·결혼     | `society-politics` | 사회·정치     |
| `pets`                     | 반려동물      | `health-medicine`  | 건강·의학     |
| `quotes-images`            | 좋은글·이미지 | `business-economy` | 비즈니스·경제 |
| `fashion-beauty`           | 패션·미용     | `education`        | 교육·학문     |
| `interior-diy`             | 인테리어·DIY  | `languages`        | 어학·외국어   |
|                            |               | `gardening`        | 원예·재배     |

#### Input examples

**The newest 100 featured 맛집 posts**

```json
{
    "topics": ["restaurants"]
}
```

**Three topics, 300 posts each**

```json
{
    "topics": ["restaurants", "domestic-travel", "product-reviews"],
    "maxResults": 300
}
```

**All the posts of one topic**

```json
{
    "topics": ["it-computers"],
    "maxResults": 0
}
```

### Output

You get one row for each post of each topic. Example (shortened):

```json
{
    "topic": "restaurants",
    "topicName": "맛집",
    "rank": 3,
    "blogId": "paperchan",
    "logNo": "224438187954",
    "url": "https://blog.naver.com/paperchan/224438187954",
    "mobileUrl": "https://m.blog.naver.com/paperchan/224438187954",
    "title": "(청주) 극동반점",
    "snippet": "예전만큼 맛있는 짜장면을 만드는 곳이 점점 줄고 있는지라 화상의 손맛이 살아있는 맛있는 짜장면을 먹으러 들린 ...",
    "nickName": "레이니",
    "blogUrl": "https://blog.naver.com/paperchan",
    "profileImageUrl": "https://blogpfthumb-phinf.pstatic.net/.../22-398-paperchan.jpg?type=s1",
    "publishedAt": "2026-10-11T10:31:31.220Z",
    "likeCount": 93,
    "commentCount": 17,
    "thumbnailUrl": "https://blogthumb.pstatic.net/.../8.jpg?type=s2",
    "thumbnails": [
        "https://blogthumb.pstatic.net/.../8.jpg?type=s2",
        "https://blogthumb.pstatic.net/.../1.jpg?type=s2"
    ],
    "hasVideo": false,
    "postTopic": "맛집",
    "selfPurchased": false,
    "scrapedAt": "2026-10-11T15:28:49.407Z"
}
```

#### Output fields

| Field                                    | Description                                                                         |
| ---------------------------------------- | ----------------------------------------------------------------------------------- |
| `topic`, `topicName`                     | The feed topic: the input value and the Korean name                                 |
| `rank`                                   | The post's position in the topic feed (1 = first)                                   |
| `blogId`, `logNo`                        | The blogger's ID and the post's numeric ID                                          |
| `url`, `mobileUrl`                       | The desktop and mobile post URLs                                                    |
| `title`, `snippet`                       | The post title and the start of the post text, as plain text                        |
| `nickName`, `blogUrl`, `profileImageUrl` | The author's nickname, blog URL and profile image                                   |
| `publishedAt`                            | The publish time (ISO 8601, UTC)                                                    |
| `likeCount`, `commentCount`              | Likes (공감) and comments                                                           |
| `thumbnailUrl`, `thumbnails`             | The first thumbnail, and all the thumbnails that Naver shows for the post           |
| `hasVideo`                               | `true` when Naver shows a video thumbnail for the post                              |
| `postTopic`                              | The topic of the post itself. It can be different from the feed topic (see the FAQ) |
| `selfPurchased`                          | `true` when Naver labels the post 내돈내산 (bought with the author's own money)     |
| `scrapedAt`                              | When the post was scraped (UTC)                                                     |

### Use Naver Blog Topic Feed Scraper with the Apify API

Run the scraper and read the results from any programming language with the [Apify API](https://docs.apify.com/api/v2). Get your API token in Apify Console under **Settings → API & Integrations**, and replace `<YOUR_API_TOKEN>` below.

**HTTP (cURL)** — run the scraper and get the posts in one call:

```bash
curl -X POST "https://api.apify.com/v2/acts/hgservices~naver-blog-topic-feed-scraper/run-sync-get-dataset-items?format=json" \
  -H "Authorization: Bearer <YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{ "topics": ["restaurants"], "maxResults": 50 }'
```

Change `format=json` to `format=csv` or `format=xlsx` to get a spreadsheet. For large runs (many topics or 1,000 posts each), start the run with `POST /v2/acts/hgservices~naver-blog-topic-feed-scraper/runs` and read the dataset when the run finishes.

**JavaScript / Node.js**

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });

const run = await client.actor('hgservices/naver-blog-topic-feed-scraper').call({
    topics: ['restaurants', 'domestic-travel'],
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const post of items) {
    console.log(post.topicName, post.rank, post.title, post.likeCount, post.url);
}
```

**Python** (`apify-client` 3.0 or later)

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run = client.actor("hgservices/naver-blog-topic-feed-scraper").call(run_input={
    "topics": ["product-reviews"],
    "maxResults": 500,
})
if run is None:
    raise RuntimeError("The run was not found.")

posts = list(client.dataset(run.default_dataset_id).iterate_items())
self_paid = [p for p in posts if p["selfPurchased"]]
print(f"{len(self_paid)} of {len(posts)} posts are 내돈내산")

posts.sort(key=lambda p: p["likeCount"] or 0, reverse=True)
for post in posts[:10]:
    print(post["likeCount"], post["title"], post["url"])
```

### Use Naver Blog data in Claude, ChatGPT and other AI assistants

This scraper works as a tool for AI assistants through the [Apify MCP server](https://mcp.apify.com/). Your assistant can find the scraper, read its input options, run it, and use the posts in its answer.

**Claude (claude.ai or Claude Desktop)** — Go to **Settings → Connectors**, add a custom connector, and enter `https://mcp.apify.com`. Sign in to Apify when Claude asks.

**Claude Code**

```bash
claude mcp add --transport http apify https://mcp.apify.com
```

**ChatGPT** — Turn on **Developer mode** in **Settings → Apps & Connectors → Advanced settings**. Then create a connector with the MCP server URL `https://mcp.apify.com`.

**Cursor, VS Code and other MCP clients** — Add `https://mcp.apify.com` as a remote MCP server. To give the assistant only this scraper, use `https://mcp.apify.com?tools=hgservices/naver-blog-topic-feed-scraper`.

Then ask in plain language:

> Use the Naver Blog Topic Feed Scraper to get 200 posts from the 맛집 topic, and tell me which cities and dishes come up most often.

> Get the newest 100 posts of the 육아·결혼 topic and summarize the main subjects in English.

> Which bloggers in the 국내여행 topic get the most likes this week?

### Integrations and scheduling

Connect the scraper to the tools that you already use with [Apify integrations](https://apify.com/integrations): **Google Sheets, Slack, Zapier, Make, n8n, Airbyte, Keboola** and more. Use **webhooks** to call your own endpoint when a run finishes.

Use **Schedules** in Apify Console to run the scraper automatically, for example every morning to collect the new featured posts of your topics.

### Pricing

This scraper uses **pay-per-event** pricing:

- **Topic** — one charge for each topic in your input, for each run. The scraper charges a topic before it reads the feed, also when the feed has no posts.
- **Post** — one charge for each post in your dataset.

The prices of the events are on the **Pricing** tab. Use **Max posts per topic** to control the cost of a run. Apify's free plan lets you try the scraper at no cost.

### Good to know

- **The feed changes all the time.** Naver adds new posts to a topic feed during the day. Each run gets the feed as Naver shows it at that time.
- **Daily tracking.** Schedule the scraper every day with a small **Max posts per topic** to get the new posts only.
- **Only posts of one topic?** Filter the dataset on `postTopic`.
- **Same post, more topics.** When two topic feeds show the same post, the post is in the dataset once for each topic.

### Related Actors

- **[Naver Blog Search Scraper](https://apify.com/hgservices/naver-blog-search-scraper)** — Naver Blog posts by keyword, with optional full content.
- **[Naver Blog Post Scraper](https://apify.com/hgservices/naver-blog-post-scraper)** — the full content of posts by URL.
- **[Naver Blog Comments Scraper](https://apify.com/hgservices/naver-blog-comments-scraper)** — all the comments and replies of Naver Blog posts.
- **[Naver Blog Profile Scraper](https://apify.com/hgservices/naver-blog-profile-scraper)** — a blogger's profile, follower and visitor counts, and full post list.

### FAQ

**Do I need a Naver account?**
No. You need only an Apify account. The scraper reads the public topic pages that every visitor can see without an account.

**Is the feed sorted by popularity?**
No. Naver's topic feed shows recent posts that Naver selects for the topic. The order is close to newest first, but not exactly. Use `likeCount` and `commentCount` to sort by popularity.

**Why does a 맛집 feed contain a post about interior design?**
Naver's topic feed also shows posts from related topics. The scraper returns the feed as Naver shows it. `postTopic` gives the topic of each post.

**Can I get more than 1,000 posts per topic?**
No. Naver shows at most 1,000 posts per topic. To get more posts on a subject, use the [Naver Blog Search Scraper](https://apify.com/hgservices/naver-blog-search-scraper) with a keyword.

**Can I get the full text of the posts?**
The topic feed gives the start of the text (`snippet`). To get the full content, send the post URLs to the [Naver Blog Post Scraper](https://apify.com/hgservices/naver-blog-post-scraper).

**Is it legal to scrape Naver Blog?**
The scraper collects only publicly available content and never signs in. Use the data in line with Naver's Terms of Service and the laws that apply to you, including personal-data rules.

### Support

Did you find a bug, or do you need a field that is not here? Open an issue on the **Issues** tab. Custom solutions are available on request.

This scraper is not affiliated with or endorsed by Naver.

# Actor input Schema

## `topics` (type: `array`):

The Naver Blog topics (주제) to collect. Each topic is collected separately and its posts are tagged with the topic.

## `maxResults` (type: `integer`):

The most posts to return for each topic. Naver shows at most 1,000 posts per topic; 0 = all of them. You are billed per post, so use this to control cost.

## Actor input object example

```json
{
  "topics": [
    "restaurants"
  ],
  "maxResults": 100
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "topics": [
        "restaurants"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hgservices/naver-blog-topic-feed-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 = { "topics": ["restaurants"] }

# Run the Actor and wait for it to finish
run = client.actor("hgservices/naver-blog-topic-feed-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 '{
  "topics": [
    "restaurants"
  ]
}' |
apify call hgservices/naver-blog-topic-feed-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hgservices/naver-blog-topic-feed-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/fMZsfVbtnuNplolbY/builds/zdgkQwC7yciRYkEah/openapi.json
