Naver News Search Scraper avatar

Naver News Search Scraper

Pricing

Pay per event

Go to Apify Store
Naver News Search Scraper

Naver News Search Scraper

Search Naver News by keyword and export ranked headlines, publishers, publication times, article links, snippets, thumbnails, and query provenance.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

15 hours ago

Last modified

Categories

Share

Search Korea's Naver News index by keyword and turn the ranked results into clean, integration-ready records. The Actor extracts headlines, publishers, publication times, destination links, Naver-hosted links, snippets, thumbnails, result ranks, and query provenance without requiring a Naver account or API key.

Use it for recurring Korean-market media monitoring, PR alerts, competitor tracking, research datasets, and localized news feeds. Search in Korean, English, or a mixture of both.

What does Naver News Search Scraper do?

The Actor sends keyword searches to Naver's public News search, follows result pagination, and saves unique article records in the default Apify dataset.

It can:

  • search one or many keywords;
  • sort results by relevance or newest first;
  • paginate until the requested record limit is reached;
  • deduplicate articles by normalized destination URL;
  • preserve a Naver-hosted article URL when one is present;
  • retain the query, rank, page, and fetch time for auditability;
  • export results as JSON, CSV, Excel, XML, RSS, or JSONL through Apify.

The Actor extracts search-result metadata. It does not download full article bodies or bypass publisher paywalls.

Who is this Naver news scraper for?

  • PR and communications teams monitoring Korean coverage of brands, executives, and launches.
  • Market intelligence analysts tracking competitors, industries, supply chains, and policy topics.
  • Researchers and journalists building reproducible keyword-based Korean news datasets.
  • Localization teams adding a Korea-specific source to global news monitoring.
  • Developers and AI agents that need structured Naver News records through an API or MCP tool.

Choose this Actor when you need article discovery from Naver News. For keyword popularity over time rather than article records, use Naver DataLab Search Trends Scraper.

Why use this Actor?

Naver is a distinct discovery surface from global search engines. A query can expose Korean publishers and local reporting that does not rank prominently elsewhere.

This Actor uses lightweight server-rendered HTML rather than a browser. That keeps runs fast and economical while still providing pagination, Korean text handling, and clear result provenance. It also fails visibly if Naver returns an unrecognized or blocked page instead of silently returning an empty dataset.

What Naver News data can I extract?

FieldTypeMeaning
titlestringHeadline displayed in Naver News search
publisherstring or nullPublisher name when displayed
publishedAtstring or nullBest-effort ISO timestamp derived from Naver's date label
publishedTextstring or nullOriginal date label, such as 3시간 전
articleUrlstringNormalized destination article URL
naverUrlstring or nullNaver-hosted article URL when the destination is on Naver News
snippetstring or nullSummary or matching excerpt displayed by Naver
thumbnailUrlstring or nullSearch-result thumbnail URL
querystringKeyword that produced the result
rankintegerOne-based accepted-result rank for that query
pageintegerNaver search page where the result appeared
fetchedAtstringISO timestamp for the page fetch

Fields that Naver does not display are returned as null; records are not discarded merely because a thumbnail or normalized date is unavailable.

How to scrape Naver News in 4 steps

  1. Open the Actor and click Try for free.
  2. Add one or more terms under Search queries.
  3. Choose Relevance or Newest first, then set Maximum articles.
  4. Start the run and download the default dataset in your preferred format.

A useful first run is:

{
"queries": ["인공지능", "반도체"],
"sort": "date",
"maxItems": 50
}

Input parameters

queries

Required array of 1–50 non-empty search terms. Each term can contain up to 200 characters. Queries run in the order supplied. Duplicate article URLs are removed across the entire run.

sort

  • relevance returns Naver's relevance ordering.
  • date requests newest-first ordering.

The default is relevance.

maxItems

Maximum number of unique records saved across all queries. The accepted range is 1–1,000 and the default is 100. The Actor stops scheduling pages as soon as the limit is reached.

Output example

A current result has this shape:

{
"title": "AI investment expands across Korean industries",
"publisher": "Sample Business Daily",
"publishedAt": "2025-01-15T09:00:00.000Z",
"publishedText": "3시간 전",
"articleUrl": "https://news.sample.kr/article/ai-investment",
"naverUrl": null,
"snippet": "Companies are increasing investment in artificial intelligence projects.",
"thumbnailUrl": "https://search.pstatic.net/common/?src=https%3A%2F%2Fnews.sample.kr%2Fimage.jpg",
"query": "인공지능",
"rank": 1,
"page": 1,
"fetchedAt": "2025-01-15T12:00:00.000Z"
}

Open the run's Dataset tab to preview rows or use the dataset API URL from the Actor output.

How much does it cost to scrape Naver News results?

Pricing uses one start event plus one Item extracted event for each unique dataset item. Rejected, failed, empty, and duplicate records are not charged as results.

Usage tierPrice per news result
Free$0.000041071
Bronze$0.000035714
Silver$0.000027857
Gold$0.000021429
Platinum$0.000014286
Diamond$0.000010000

Each run also has a $0.003 start event. At the Free-tier event price, 100 results cost about $0.0071 including the start event, while 1,000 results cost about $0.0441. Your active Apify tier determines the exact result-event price shown in Console.

The Actor uses 256 MB of memory and direct HTTP. It does not automatically enable paid residential proxies or a browser fallback.

Media-monitoring workflow ideas

Brand and executive alerts

Run newest-first searches for a company name, product, and executive. Schedule the Actor hourly or daily, then send new dataset items to Slack, email, or a webhook.

Competitor and market tracking

Combine Korean-language competitors and category terms in one run. Keep the query field when loading rows into a warehouse so analysts can compare coverage by monitoring theme.

Korean AI or RAG news feed

Feed title, snippet, publisher, and articleUrl into an enrichment pipeline. Fetch article bodies only when the publisher permits it and when your downstream use requires them.

Cross-market research

Join this dataset with Google News Scraper output using normalized destination URLs. This highlights stories unique to Naver's Korean index.

Scheduling and integrations

Use an Apify schedule for repeated monitoring. To avoid reprocessing old records downstream, deduplicate on articleUrl and store fetchedAt as collection provenance.

Common integrations include:

  • Google Sheets for lightweight monitoring lists;
  • Slack or Microsoft Teams for coverage alerts;
  • Make and Zapier for no-code workflows;
  • webhooks for event-driven pipelines;
  • BigQuery, Snowflake, or S3-compatible storage for research archives;
  • LLM classification for topic, sentiment, or entity enrichment.

Run with the Apify API

Set APIFY_TOKEN in your environment. Never commit the token to source control.

cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~naver-news-search-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries":["삼성전자"],"sort":"date","maxItems":50}'

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/naver-news-search-scraper').call({
queries: ['삼성전자', 'HBM'],
sort: 'date',
maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/naver-news-search-scraper').call(run_input={
'queries': ['반도체 공급망'],
'sort': 'relevance',
'maxItems': 100,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use Naver News Search Scraper with MCP

Add the Actor as an Apify MCP tool in Claude Code:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/naver-news-search-scraper"

Claude Desktop — add this server to the MCP configuration file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/naver-news-search-scraper"
}
}
}

Cursor — open Settings → MCP, add a remote server named apify, and use the same URL.

VS Code — add the same remote HTTP server under mcp.servers in your workspace or user MCP configuration.

Example prompts:

  • "Find the newest 30 Naver News articles about 삼성전자 and summarize the publishers."
  • "Collect Naver News coverage for 반도체 공급망 and HBM, then group links by query."
  • "Create a Korean AI news dataset with title, publisher, snippet, and article URL."

Accuracy, pagination, and limits

  • Results reflect Naver's public ranking at run time and can change between runs.
  • A search page can contain grouped or related items; rank counts unique accepted records.
  • Relative publication labels are converted to approximate ISO timestamps using the fetch time. Use publishedText when the exact displayed label matters.
  • Publisher, snippet, thumbnail, normalized date, or Naver URL may be absent on some cards.
  • The maximum output is 1,000 records per run.
  • Naver can change its HTML or apply temporary rate limits. Transient 429 and 5xx responses are retried with bounded backoff.
  • A persistent block or changed page shape fails the run instead of returning a misleading empty dataset.

Responsible use and legality

Naver News search results and linked articles may be protected by copyright, database rights, website terms, and privacy law. Use the Actor only for data you are authorized to access. Respect publishers' terms, do not republish copyrighted article content without permission, and apply appropriate retention and privacy controls.

The Actor collects public search-result metadata and does not bypass login controls or publisher paywalls. You are responsible for your downstream use and for complying with applicable Korean and international law.

Troubleshooting

The run returns no records

Check the query directly on Naver News and verify spelling. A valid query can naturally have no matching records. Try a broader Korean-language term before treating zero results as an error.

The run fails with an upstream HTTP error

Naver may be temporarily rate-limiting requests or changing the result page. Retry later with a smaller workload. The Actor intentionally does not hide persistent blocks behind a successful empty run.

Why is publisher or publishedAt null?

Naver does not show every field for every grouped result. publishedText preserves the visible label, while publishedAt is populated only when the label can be normalized safely.

Why did a later query return fewer items?

maxItems is a global run limit and article URLs are deduplicated across queries. Earlier queries can consume the limit or overlap with later terms.

FAQ

Does this use the official Naver Search API?

No. It parses anonymous, server-rendered Naver News search results. No Naver client ID or secret is required.

Does it extract full article text?

No. It returns search-result metadata and links. Full article extraction has different publisher permissions, layouts, and paywall constraints.

Can it search Korean and English terms?

Yes. Input is UTF-8 and supports Korean, English, and mixed-language queries.

Can I schedule it for monitoring?

Yes. Use Apify schedules and webhooks to automate repeated runs and downstream notifications.

Are results deduplicated?

Yes. Tracking parameters are removed from common destination URLs and duplicate normalized article URLs are saved only once per run.