# Naver News Scraper – Korean News Search by Keyword (네이버 뉴스 검색) (`romantic_boysenberry/naver-news-search-scraper`) Actor

Search Naver News (네이버 뉴스) by keyword and get articles as JSON: title, original and Naver URL, publisher, date (ISO), summary, thumbnail, optional full article text. Sort by relevance or latest, filter by date range. No login, no API key, no browser. $1 per 1,000 articles.

- **URL**: https://apify.com/romantic_boysenberry/naver-news-search-scraper.md
- **Developed by:** [정무 최](https://apify.com/romantic_boysenberry) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.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?

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 News Scraper – Korean News Search by Keyword (네이버 뉴스 검색)

**Naver News Scraper** searches **Naver News (네이버 뉴스)**, the news portal that aggregates practically every Korean newspaper, broadcaster and wire service, and returns the matching articles as clean JSON, CSV or Excel. Type a keyword such as `삼성전자`, `금리 인상` or `K-pop`, pick relevance or latest-first, optionally narrow to a date range, and get the title, original article URL, Naver-hosted URL, publisher, publication date (as shown and as ISO), summary snippet and thumbnail for every result. Turn on **Scrape full article text** and the Actor also fetches the complete article body and exact timestamp for every article hosted on Naver.

No Naver login. No API key. No headless browser. Pay only for the articles you receive.

### What does Naver News Scraper do?

Naver's official Search API returns only 1,000 results per query and strips the publisher name, thumbnail and most dates, which is why most teams end up scraping the news search page instead. This Naver news scraper reads the same server-rendered search page and the infinite-scroll feed that the Naver website uses, so it covers everything Naver News indexes:

- Daily newspapers and wire services (연합뉴스, 조선일보, 중앙일보, 동아일보, 한겨레, 경향신문)
- Broadcasters (KBS, MBC, SBS, JTBC, YTN, 연합뉴스TV)
- Business and finance press (매일경제, 한국경제, 머니투데이, 서울경제, 이데일리)
- IT, entertainment and sports outlets (전자신문, ZDNet Korea, 스포츠조선, OSEN, 뉴스엔)
- Regional and specialist media, and English-language Korean outlets (The Korea Herald, The Korea Times, Yonhap English)

One run can cover a whole topic: search `삼성전자 실적`, sort by latest, limit to the last seven days, and you have every article Naver has indexed on the subject, deduplicated and ready for analysis, in a minute or two.

### Why use this Naver news scraper?

- **Fresh and maintained.** Naver rebuilt its search page in 2025 and the old `start=` pagination silently returns the first page forever. This Actor follows Naver's current infinite-scroll endpoint, so you actually get page 2, 3 and beyond, up to Naver's own cap of about 2,000 results per query.
- **Date range filtering that works.** `dateFrom` and `dateTo` are translated into Naver's native period filter, so a daily monitoring run only pays for the day's new articles.
- **Related articles included.** Naver groups similar stories under a lead article. The Actor collects the lead and the grouped articles, so each search page yields about 30 articles instead of 10.
- **Original and Naver URLs.** Every item carries the publisher's own URL and, when available, the `n.news.naver.com` copy, which is the one you want for stable full-text extraction and comment analysis.
- **Full article text on demand.** Set `scrapeArticleContent` and the Actor adds the article body and the exact publication timestamp from the Naver-hosted page. Works for general news, entertainment and sports sections.
- **Pure HTTP, no browser.** Fast, cheap on compute, and a single 512 MB run handles thousands of articles.
- **Pay per article.** $1.00 per 1,000 articles, billed only for results actually returned. No subscription, no minimum.
- **Ready for AI agents.** Every Apify Actor is also an API endpoint and an MCP server, so Claude, ChatGPT, LangChain or n8n workflows can call Naver News Scraper directly.

### Output: what data can you extract from Naver News?

Each dataset item is one article:

| Field | Example | Description |
|---|---|---|
| `keyword` | `삼성전자` | The search keyword that produced this article |
| `title` | `'성과급 30억' 삼성전자 사내 부부 "서민 탈출한 듯, 5년 내 퇴사"` | Article headline (search highlighting removed) |
| `url` | `https://news.jtbc.co.kr/article/NB12322266` | Original article URL on the publisher's site |
| `naverUrl` | `https://n.news.naver.com/mnews/article/437/0000514953?sid=101` | Naver-hosted copy, `null` when the publisher does not syndicate to Naver |
| `press` | `JTBC` | Publisher name as shown on Naver |
| `pressId` | `437` | Naver press ID (stable key for the publisher) |
| `publishedAt` | `6시간 전` or `2025.01.08.` | Date label exactly as Naver shows it (relative for recent articles) |
| `publishedAtIso` | `2026-10-09T18:49:24+09:00` | ISO 8601 date. Exact when full text is scraped, otherwise derived from the label (`null` for "weeks ago" labels) |
| `summary` | `"서민에서 겨우 '중산층 탈출'한 것 같다"며...` | Snippet shown in search results (lead articles only) |
| `thumbnail` | `https://search.pstatic.net/common/?src=...` | Thumbnail image URL (lead articles only) |
| `content` | `"서민에서 겨우 '중산층 탈출'한 것 같다"며 ...` | Full article text when `scrapeArticleContent` is on, otherwise `null` |
| `position` | `1` | Rank of the article within the keyword's results |

Example output (JSON):

```json
{
  "keyword": "삼성전자",
  "title": "'성과급 30억' 삼성전자 사내 부부 \"서민 탈출한 듯, 5년 내 퇴사\"",
  "url": "https://news.jtbc.co.kr/article/NB12322266?influxDiv=NAVER",
  "naverUrl": "https://n.news.naver.com/mnews/article/437/0000514953?sid=101",
  "press": "JTBC",
  "pressId": "437",
  "publishedAt": "6시간 전",
  "publishedAtIso": "2026-10-09T18:49:24+09:00",
  "summary": "\"서민에서 겨우 '중산층 탈출'한 것 같다\"며 앞으로 \"5년 안에 회사를 그만둘 수 있을 것 같다\"는 삼성전자 직원의 글이 온라인에서 화제가 되고 있습니다...",
  "thumbnail": "https://search.pstatic.net/common/?src=https%3A%2F%2Fimgnews.pstatic.net%2Fimage%2Forigin%2F437%2F2026%2F10%2F09%2F514953.jpg&type=fface200_200",
  "content": "\"서민에서 겨우 '중산층 탈출'한 것 같다\"며 앞으로 \"5년 안에 회사를 그만둘 수 있을 것 같다\"는 삼성전자 직원의 글이 온라인에서 화제가 되고 있습니다.\n아내와 함께 삼성전자 반도체 부문에서 일하고 있다는 이 직원은 ...",
  "position": 1
}
```

Download the dataset as JSON, CSV, Excel, XML or RSS from the Apify Console, or fetch it through the API.

### How to scrape Naver News

1. Open **Naver News Scraper** in Apify Store and click **Try for free**.
2. Enter one or more **keywords** (`삼성전자`, `부동산 규제`, `BTS`). Naver search operators work: `"exact phrase"`, `+required`, `-excluded`.
3. Choose **Sort**: relevance (관련도순) for research, recent (최신순) for monitoring.
4. Optionally set **Date from** and **Date to** (YYYY-MM-DD) and **Max articles per keyword** (default 50).
5. Turn on **Scrape full article text** if you need the article body.
6. Click **Start**. Results appear in the **Output** tab within a minute.
7. Export, or schedule the run to repeat hourly or daily for news monitoring.

#### How many articles does one run return?

Naver shows 10 lead articles per page and groups related coverage under each lead. The Actor collects both, so the first page typically yields about 30 unique articles, later pages 15 to 30. With `maxArticlesPerKeyword` at 50 you can expect 50 articles from two or three requests. Naver stops serving results at roughly 2,000 per query; narrow the query or the date range to go deeper.

### Input parameters

| Parameter | Type | Default | Description |
|---|---|---|---|
| `keywords` | array | `["삼성전자"]` | Naver News search queries. One run can take many keywords. |
| `maxArticlesPerKeyword` | integer | `50` | Articles collected per keyword (1 to 4000). Billing is per article. |
| `sort` | string | `relevance` | `relevance` (관련도순) or `recent` (최신순). |
| `dateFrom` | string | none | Earliest publication date, `YYYY-MM-DD`. |
| `dateTo` | string | none | Latest publication date, `YYYY-MM-DD`. |
| `scrapeArticleContent` | boolean | `false` | Fetch the Naver-hosted article page and add `content` plus the exact ISO timestamp. One extra request per article. |
| `proxyConfiguration` | object | none | Naver News search works from the Apify platform without a proxy. If runs start returning captcha or zero articles, switch to Apify residential proxy, country KR. |

Example input:

```json
{
  "keywords": ["삼성전자", "SK하이닉스"],
  "maxArticlesPerKeyword": 100,
  "sort": "recent",
  "dateFrom": "2026-10-01",
  "dateTo": "2026-10-10",
  "scrapeArticleContent": true,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

### How much does it cost to scrape Naver News?

Naver News Scraper uses Apify's **pay-per-event** pricing: **$0.001 per article** ($1.00 per 1,000 articles). You are charged only for articles that land in your dataset. A run that returns nothing costs nothing beyond Apify platform usage.

| Articles | Price |
|---|---|
| 1,000 | $1.00 |
| 10,000 | $10.00 |
| 100,000 | $100.00 |

Apify's free plan includes $5 of monthly usage, enough for several thousand articles to evaluate the Actor. No proxy is needed by default, so there is no proxy charge. If you do enable Apify residential proxy, that traffic is billed separately at the platform rate; a search page is about 400 KB and yields about 30 articles, so proxy cost per article stays a fraction of a cent. Enabling full article text roughly doubles the traffic per article.

### Use cases for Naver News data

- **Brand and PR monitoring (언론 모니터링):** Schedule an hourly run for your company, product or executive names with `sort: recent` and a one-day window, and push new articles to Slack, email or a Google Sheet.
- **Competitive and market intelligence:** Track coverage volume and tone for competitors, industries or regulators across every Korean outlet at once.
- **Financial research and trading signals:** Monitor listed companies (삼성전자, 현대차, 카카오) and macro topics (금리, 환율, 부동산) with precise timestamps for event studies.
- **Korean NLP and LLM training data:** Tens of thousands of professionally written Korean articles with headlines, summaries and full text for classification, summarization and fine-tuning.
- **Academic and policy research:** Build longitudinal corpora on elections, public health or social issues using the date range filter.
- **K-pop, entertainment and sports analytics:** Follow artists, dramas, clubs and athletes across entertainment and sports desks.
- **AI agents:** Let an agent answer "what is the latest Korean news about X?" by calling the Actor through MCP.

### Use Naver News Scraper from code

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("romantic_boysenberry/naver-news-search-scraper").call(run_input={
    "keywords": ["삼성전자"],
    "sort": "recent",
    "maxArticlesPerKeyword": 100,
    "scrapeArticleContent": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["publishedAtIso"], item["press"], item["title"])
```

**JavaScript**

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

const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('romantic_boysenberry/naver-news-search-scraper').call({
  keywords: ['금리 인상'],
  dateFrom: '2026-10-01',
  maxArticlesPerKeyword: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'articles');
```

**cURL**

```bash
curl -X POST "https://api.apify.com/v2/acts/romantic_boysenberry~naver-news-search-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"keywords":["K-pop"],"sort":"recent","maxArticlesPerKeyword":30}'
```

The Actor also works as an **MCP server** for Claude Desktop, Cursor and other agents, and plugs into **n8n**, **Make**, **Zapier** and **LangChain** through the standard Apify integrations.

### Tips for best results

- Korean keywords return far more results than English ones, except for globally covered topics such as `BTS` or `Samsung`.
- Use quotes for exact phrases (`"반도체 수출"`) and the minus operator to exclude noise (`삼성전자 -갤럭시`).
- For monitoring, combine `sort: recent` with a short date window and a small `maxArticlesPerKeyword`; deduplicate on `url` between runs.
- Use `naverUrl` rather than `url` for full-text work. Publisher sites change layouts constantly; the Naver-hosted page is uniform.
- `publishedAtIso` derived from a relative label such as `6시간 전` is accurate to the hour. If you need the exact minute, enable `scrapeArticleContent`.
- Start without a proxy (the default). Only if Naver begins answering with a captcha page, switch to Apify residential proxy with country KR.

### Limitations

- Naver serves at most about 2,000 results per query. Split broad topics into narrower keywords or date windows.
- `summary` and `thumbnail` are only present on lead articles; grouped related articles carry title, URLs, publisher and date.
- `publishedAtIso` is `null` for labels Naver shows as weeks, months or years ago, unless full text is scraped. Older articles show an absolute date and are converted correctly.
- Full article text is only available for articles with a Naver-hosted copy (`naverUrl`). Articles that exist only on the publisher's site keep `content: null`.
- Naver changes its markup occasionally. If a run suddenly returns zero articles, the Actor fails loudly instead of silently succeeding; check the run log and open an issue.

### Legal and ethical use

Naver News Scraper collects only publicly visible article metadata and, when requested, the public article text. It does not log in, does not bypass paywalls or access controls, and does not collect reporter contact details; e-mail addresses are stripped from article bodies. News articles are protected by copyright; use the data for indexing, analysis, research and monitoring in line with [Naver's terms](https://news.naver.com) and the publishers' terms, applicable copyright law and Korea's Personal Information Protection Act. You are responsible for how you use the output.

### FAQ

**Does Naver have an official news API?**
Yes, the Naver Developers Search API, but it caps results at 1,000 per query, omits the publisher name and thumbnail, has no date filter, and requires a Naver developer account and client credentials. This Actor needs none of that and returns richer fields.

**How is this different from other Naver news scrapers on Apify Store?**
Many were built on the old search layout and either stop at the first page or require a browser. Naver News Scraper follows the current infinite-scroll feed, filters by date natively, includes grouped related articles, and can fetch full text, all over plain HTTP.

**Can I get the full article text?**
Yes. Set `scrapeArticleContent` to `true`. The body is extracted from the Naver-hosted page for general news, entertainment and sports articles.

**Can I filter by publisher?**
Not as a dedicated input yet. Filter the dataset by `press` or `pressId` after the run, or include the outlet name in the keyword.

**Do I need a proxy?**
Not by default. Runs from the Apify platform reach Naver News search directly. If you see captcha errors or zero articles, enable Apify Proxy with the residential group and country KR in the proxy field.

**Can I run it on a schedule?**
Yes. Use Apify Schedules to run hourly or daily, set a short `dateFrom`/`dateTo` window, and connect a webhook or integration to receive new articles automatically.

**Is there a free trial?**
Apify's free plan gives you $5 of usage every month, so you can test Naver News Scraper without a credit card.

### Related Naver and Korean data Actors

- [Naver Place Reviews Scraper](https://apify.com/romantic_boysenberry/naver-place-reviews-scraper) for Naver Map visitor reviews by keyword or place ID
- [Naver News Scraper by oxygenated_quagmire](https://apify.com/oxygenated_quagmire/naver-news-scraper) for an alternative news scraper
- [Naver Blog, Cafe & News Scraper](https://apify.com/zen-studio/naver-blog-cafe-scraper) for blog posts and cafe threads
- [Naver Trends News](https://apify.com/nexgendata/naver-trends-news) for trending-topic news monitoring

***

### 네이버 뉴스 검색 수집기 (한국어 안내)

**네이버 뉴스 검색 수집기**는 네이버 뉴스에서 키워드로 기사를 검색해 제목, 원문 URL, 네이버 뉴스 URL, 언론사, 작성일(표시값과 ISO), 요약, 썸네일을 JSON, CSV, Excel로 내려받는 Apify 액터입니다. 옵션을 켜면 네이버에 송고된 기사의 본문 전문과 정확한 작성 시각도 함께 수집합니다.

- 로그인, API 키, 브라우저 설치 모두 불필요
- 기사 1건당 $0.001 (1,000건에 $1), 받은 만큼만 과금
- 관련도순·최신순 정렬, 기간(YYYY-MM-DD) 필터 지원, 네이버의 최신 무한스크롤 방식 페이지네이션을 따르므로 2페이지 이후도 정상 수집
- 묶음 기사(관련 뉴스)까지 수집해 페이지당 약 30건
- 활용: 기업·브랜드 언론 모니터링, 경쟁사·산업 동향 분석, 금융 리서치, 한국어 NLP 데이터셋, 학술 연구, 연예·스포츠 분석
- 공개된 기사 메타데이터와 본문만 수집하며 기자 이메일 등 개인정보는 제거합니다. 수집 데이터는 저작권법과 네이버·언론사 약관을 지켜 사용하세요

사용법: 액터 페이지에서 **Try for free** → 검색어(예: `삼성전자`) 입력 → 정렬·기간·본문 수집 옵션 선택 → **Start** → Output 탭에서 다운로드. 예약 실행(Schedules)으로 매시간·매일 자동 수집도 가능합니다.

# Actor input Schema

## `keywords` (type: `array`):

Naver News search queries, e.g. "삼성전자", "금리 인상", "K-pop". Korean keywords match best. Naver search operators work too: quotes for exact phrase, + to require, - to exclude.

## `maxArticlesPerKeyword` (type: `integer`):

Upper bound of articles collected for each keyword. Each result page yields 10 main articles plus their related articles (about 30 in total). Billing is per article pushed.

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

relevance = Naver's default ranking (관련도순), recent = newest first (최신순).

## `dateFrom` (type: `string`):

Optional. Only articles published on or after this date. Combine with sort=recent for monitoring.

## `dateTo` (type: `string`):

Optional. Only articles published on or before this date.

## `scrapeArticleContent` (type: `boolean`):

Fetch each article hosted on n.news.naver.com and add its body text as `content` plus the exact publication timestamp. One extra request per article (slower, more proxy traffic). Articles without a Naver-hosted copy keep content = null.

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

Optional. Naver news search works from the Apify platform without a proxy (verified 2026-10), so the default is none. If runs start failing with captcha or 0 articles, switch to Apify Proxy, residential group, country KR.

## Actor input object example

```json
{
  "keywords": [
    "삼성전자"
  ],
  "maxArticlesPerKeyword": 50,
  "sort": "relevance",
  "scrapeArticleContent": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `articles` (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 = {
    "keywords": [
        "삼성전자"
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("romantic_boysenberry/naver-news-search-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 = {
    "keywords": ["삼성전자"],
    "proxyConfiguration": { "useApifyProxy": False },
}

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

```

## MCP server setup

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