# Naver Scraper - Korean Search Results, News & Blogs (`thirdwatch/naver-scraper`) Actor

Export Naver search results with titles, links, snippets, publishers, dates, and ranks across integrated search, news, blogs, cafes, Knowledge-iN, and video. Built for research and data pipelines. No login, cookies, or API keys — clean JSON output and pay-per-result pricing.

- **URL**: https://apify.com/thirdwatch/naver-scraper.md
- **Developed by:** [Thirdwatch](https://apify.com/thirdwatch) (community)
- **Categories:** SEO tools, News
- **Stats:** 2 total users, 1 monthly users, 0.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.
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 Scraper

> Export Korean search results from Naver: titles, links, snippets, publishers, dates, and ranks.

### What you get

Naver handles the majority of search in South Korea, and its results look nothing like Google's. This Actor collects its organic results as structured rows across the tabs that matter, with true on-page rank preserved.

| Tab | What it returns |
|---|---|
| Integrated search | The blended page Koreans actually see |
| Web documents | Classic web results with sitelinks |
| News | Articles from Korean publishers, sortable and date-filterable |
| Blogs | Naver Blog posts with author and recency |
| Cafes | Naver Cafe community posts with the cafe name |
| Knowledge-iN | Q\&A threads |
| Video | Video results with channel names |

### Output fields

| Field | Description |
|---|---|
| `query`, `search_type`, `rank`, `page` | What was searched and where this result sat |
| `title`, `url`, `description` | The result itself |
| `publisher` | Publisher, blog author, cafe name, or channel |
| `published_label` | Naver's own recency label, such as `3시간 전` or `2026.07.02.` |
| `result_source` | `news`, `blog`, `cafe`, `kin`, `video`, `shopping`, or `web` |
| `is_sponsored` | Whether Naver marked the placement as paid |
| `sitelinks`, `thumbnail_url` | Extra links and image for the result |
| `search_url`, `scraped_at`, `source` | Reproducibility fields |

### Example output

```json
{"query":"맛집","search_type":"cafe","rank":1,"title":"강릉 현지인 맛집 추천 필수 코스","url":"https://cafe.naver.com/ungsangjang/871328","publisher":"부산 경남 맘스홀릭 육아 생활정보","published_label":"2주 전","result_source":"cafe","is_sponsored":false}
```

### Input parameters

| Parameter | Required | Description |
|---|---|---|
| `queries` | Yes | Korean or English search terms |
| `searchType` | No | Tab to read; defaults to integrated search |
| `sort` | No | News tab: most relevant or most recent |
| `period` | No | News tab: past day, week, month, 3 months, 6 months, or year |
| `includeSponsored` | No | Keep Naver's paid placements; off by default |
| `maxResultsPerQuery` | No | Results per term; defaults to 30 |
| `proxyConfiguration` | No | Optional Apify Proxy settings if Naver starts refusing the run's IP |

### Use cases

- Brands entering Korea can track share of voice across news, blogs, and cafes.
- SEO teams can monitor Naver rank for a keyword set the way they already do for Google.
- PR and comms can watch Korean coverage of a company or product by recency window.
- Market researchers can mine cafe and blog discussion for consumer sentiment.

### Limitations

Naver's blended results are assembled per query and per tab, so counts and ordering shift between runs; the row's `rank` records where a result sat in that run. Dates come as Naver's relative labels, which the Actor keeps verbatim rather than guessing an exact timestamp. The image tab is not supported because it renders through a different component tree. Naver answers most datacenter addresses, but if it starts returning HTTP 418 the run stops with that message and a Korean residential proxy is the fix. Shopping results are only reachable through the blended page, as Naver's shopping search blocks automated requests outright.

### Compared to alternatives

Most Korean search Actors cover one surface, usually news, and return whatever the page happened to render. This one handles both of Naver's markup generations (the current component tree and the legacy `li.bx` layout the cafe tab still uses), classifies each result by its true source, strips paid placements by default, and preserves rank and page so results are comparable over time.

### FAQ

#### Is a Naver developer account required?

No. The Actor reads the public results pages; there are no credentials to register.

#### Why do some rows have no description?

Naver omits snippets for some result types, such as short video and image-led cards. The field is left empty rather than filled with the page's boilerplate.

#### Can I get more than 400 results for one term?

Naver's own paging runs out well before that on most queries. Split the topic into several narrower terms instead.

### Related Actors

- [Google Trends Real-Time - Traffic & News](https://apify.com/thirdwatch/google-trends-realtime-scraper) — Thirdwatch
- [Google News Scraper - Fast, Pay Per Result, No Proxy](https://apify.com/thirdwatch/google-news-scraper) — Thirdwatch
- [Substack Scraper - Posts, Authors & Search](https://apify.com/thirdwatch/substack-scraper) — Thirdwatch
- [VK Posts Scraper - Walls, Media & Engagement](https://apify.com/thirdwatch/vk-posts-scraper) — Thirdwatch

Last verified: 2026-09

More scrapers at [thirdwatch.dev](https://thirdwatch.dev).

# Actor input Schema

## `queries` (type: `array`):

Korean or English search terms to run on Naver.

## `searchType` (type: `string`):

Which Naver results tab to read. Integrated search returns the blended page.

## `sort` (type: `string`):

Relevance or newest first. Applies to the news tab.

## `period` (type: `string`):

Restrict news results to a recent window.

## `includeSponsored` (type: `boolean`):

Keep Naver's paid placements alongside organic results.

## `maxResultsPerQuery` (type: `integer`):

Upper bound on saved results for each search term.

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

Optional. Naver answers most datacenter IPs, but a Korean residential proxy is the fallback if it starts refusing requests.

## Actor input object example

```json
{
  "queries": [
    "삼성전자"
  ],
  "searchType": "all",
  "sort": "relevance",
  "period": "all",
  "includeSponsored": false,
  "maxResultsPerQuery": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (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 = {
    "queries": [
        "삼성전자"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("thirdwatch/naver-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 = { "queries": ["삼성전자"] }

# Run the Actor and wait for it to finish
run = client.actor("thirdwatch/naver-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 '{
  "queries": [
    "삼성전자"
  ]
}' |
apify call thirdwatch/naver-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,thirdwatch/naver-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/Tl6hd8370kYTThoUp/builds/zhEpXLwREHEFO3DBu/openapi.json
