Scrape Naver for Korean Market Research
Export Naver search results — news, blogs, cafes, Knowledge-iN, video — as JSON to research Korean consumers, competitors, and trends Google misses.

TL;DR — The Naver Scraper exports Naver results — integrated search, news, blogs, cafes, Knowledge-iN, video — as JSON with rank, publisher, and date. It's the path into the Korean-language web that Google doesn't cover.
Why Korean market research runs through Naver
Korea's internet doesn't live on Google. Naver is the dominant platform for search, blogging, community Q&A, and product discussion — its cafes and Knowledge-iN hold consumer opinion that exists nowhere else. Researching Korean buyers via Google alone samples a minority of the conversation.
The job-to-be-done is structured access: queries in, ranked Korean-language results out — filterable by surface, sortable by recency.
How does this compare to the alternatives?
| Google searches for Korea | Manual Naver browsing | Thirdwatch actor | |
|---|---|---|---|
| Cost | Free, partial | Free, unscalable | Pay per result |
| Reliability | Misses cafe/blog depth | One page at a time | Structured export |
| Setup time | Zero | Language barrier | Minutes |
| Maintenance | Repeat queries | Manual | Scheduled runs |
How to research a market in 4 steps
How do I run the query set?
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("thirdwatch/naver-scraper").call(
run_input={
"queries": ["비건 화장품", "비건 스킨케어 추천"],
"searchType": "all",
"sort": "relevance",
"maxResultsPerQuery": 30,
"proxyConfiguration": {"useApifyProxy": False},
}
)
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())How do I split by surface?
import pandas as pd
df = pd.DataFrame(rows)
print(df.groupby("search_type").size())
print(df[df.search_type == "cafe"][["title", "url", "publisher"]].head())search_type/result_source mark each record — news for announcements, cafe/blog for voice-of-customer.
How do I get fresh sentiment?
run = client.actor("thirdwatch/naver-scraper").call(
run_input={
"queries": ["비건 화장품"],
"searchType": "blog",
"sort": "recent",
"period": "week",
"maxResultsPerQuery": 50,
}
)sort: recent + period: week is the fresh-sentiment configuration — what Koreans published this week.
How do I translate to research notes?
title, url, publisher, published_label, rank per record — export to CSV, then translate titles/snippets in bulk. Publisher patterns (which cafes, which blogs) are themselves the channel map.
Sample output
{"query": "맛집", "search_type": "cafe", "rank": 1,
"title": "강릉 현지인 맛집 추천 필수 코스",
"url": "https://cafe.naver.com/ungsangjang/871328",
"publisher": "부산 경남 맘스홀릭 육아 생활정보",
"published_label": "2주 전", "result_source": "cafe", "is_sponsored": false}Common pitfalls
Korean queries need Korean strings — romanized queries reach a smaller, expat-facing slice. published_label is Naver's relative-date text ("2주 전") — parse it or capture run date as the reference point. Sponsored slots exist; is_sponsored flags them so your corpus stays organic. The actor covers Naver's public surfaces; logged-in cafe content stays behind membership.
Related use cases
Frequently asked questions
Why Naver instead of Google for Korea research?
Naver is Korea's dominant search and content platform — its blogs, cafes, and Knowledge-iN hold consumer opinion Google barely indexes. Korean market research without Naver is partial by construction.
What surfaces does the actor cover?
Integrated search plus dedicated tabs: web, news, blog, cafe, kin (Knowledge-iN), and video — selectable via searchType, each returned as ranked records with title, URL, publisher, and date.
Do I need Korean-language queries?
For consumer topics, yes — Korean queries return the real corpus. The queries array takes any strings; romanized or English queries surface Korea's English-facing content.
Can I filter to recent results only?
Yes — period bounds results to day, week, month, 3months, 6months, or year windows, and sort can switch from relevance to recent.