Naver Blog Scraper β€” Search + Post Content + Cafe [$1.5πŸ’°] avatar

Naver Blog Scraper β€” Search + Post Content + Cafe [$1.5πŸ’°]

Pricing

from $1.50 / 1,000 naver rows

Go to Apify Store
Naver Blog Scraper β€” Search + Post Content + Cafe [$1.5πŸ’°]

Naver Blog Scraper β€” Search + Post Content + Cafe [$1.5πŸ’°]

Naver Blog scraper β€” paste a keyword for blog search, a blog.naver.com post URL for full Korean post content, or a cafe ID for public cafe articles. Flat JSON rows, optional post-body enrichment, date filters. Pure HTTP, no login. $1.50/1k rows

Pricing

from $1.50 / 1,000 naver rows

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Naver Blog Scraper β€” Blog Search + Post Content + Cafe Articles

Naver Blog Scraper logo

Turn Naver Blog and public Naver Cafes into structured data. Paste a keyword to search Naver's blog index, a blog.naver.com post URL to pull the full Korean post body, or a cafe ID to list a public cafe's articles β€” every query line is auto-classified, and every row is flat, UTF-8-clean JSON.

Why Use This Scraper?

  • βœ… Three sources in one actor β€” blog keyword search, full post content, public cafe articles
  • βœ… Paste keywords, post URLs, or cafe IDs together β€” each line auto-routed
  • βœ… Optional post-body enrichment β€” attach full text, images, and tags to every search hit
  • βœ… Korean-safe UTF-8 output end to end β€” no mojibake in titles, bodies, or nicknames
  • βœ… Date-range filters and relevance / recency sorting for search
  • βœ… Pure HTTP over Naver's open endpoints β€” no login, no browser, and proxies are optional

Overview

The Naver Blog Scraper is built for marketing and influencer agencies, brand-monitoring teams, SEO specialists, and researchers who need structured data out of Korea's dominant blogging and community platform.

The output is a stream of flat rows carrying a type discriminator: a keyword yields searchResult rows, a post URL yields one post row with the full body, and a cafe ID yields cafeArticle rows. Every row echoes the originating query, so mixed runs stay trivial to split downstream. Turn on includePostContent and each search result is upgraded in place with the post's body text, images, and tags.

Supported Inputs

Query types (auto-detected per line)

Query typePatternExampleRows produced
Blog keyword searchfree text (any language)λ§›μ§‘ or seoul cafeone searchResult row per matching post
Full post contentblog.naver.com / m.blog.naver.com URLhttps://blog.naver.com/someblog/223340163450one post row with the full body
Public cafe articlescafeId:{clubId} or cafe URLcafeId:10322296 or https://cafe.naver.com/joonggonaraone cafeArticle row per article

Copy-pasteable input

{
"queries": [
"λ§›μ§‘",
"https://blog.naver.com/someblog/223340163450",
"cafeId:10322296"
],
"maxItems": 200
}

Unsupported inputs

  • ❌ Members-only / private cafe boards (only public cafe articles are returned)
  • ❌ Naver Shopping, Maps, or Place data β€” those are separate, heavily protected surfaces
  • ❌ Content behind a Naver login, and posts the author has set to private

Use Cases

AudienceUse case
Influencer / blog-marketing agenciesFind relevant bloggers, verify sponsored posts went live, measure reach, track competitor campaigns
Brand & reputation teamsMonitor what Korean bloggers say about a brand; catch negative reviews early
SEO / content teamsReverse-engineer what ranks in Naver search; keyword and content-gap research
Market researchersAggregate blog mentions of a product or topic for trend and sentiment analysis
Community analystsTrack discussion volume and topics across public Naver Cafes

How It Works

How the Naver Blog Scraper works

  1. Input β€” add any mix of keywords, post URLs, and cafe IDs, one per line
  2. Classify β€” each line is auto-routed: free text β†’ blog search JSON API, post URL β†’ mobile post page, cafe ID β†’ cafe article API
  3. Fetch β€” the actor calls Naver's open endpoints over plain HTTP with polite concurrency, retries, and back-off
  4. Enrich (optional) β€” with includePostContent, each search result also fetches its mobile post page for body text, images, and tags
  5. Output β€” flat, typed, UTF-8 JSON rows land in the dataset, exportable as JSON, CSV, Excel, or XML

Input Configuration

Input fields

FieldTypeRequiredNotes
queriesarray<string>yesOne query per line; each auto-classified (see Supported Inputs)
includePostContentbooleanoptionalEnrich each search result with full body text, images, tags. Roughly doubles requests. Default false
orderBystring enumoptionalSearch sort: sim (relevance) or recentdate (newest). Default sim
fromstring (date)optionalSearch mode only: results published on/after YYYY-MM-DD
tostring (date)optionalSearch mode only: results published on/before YYYY-MM-DD; empty = up to now
maxItemsintegeroptionalGlobal cap on rows across all queries. Default 100
maxConcurrencyintegeroptionalParallel requests, default 3, hard cap 10 β€” Naver scores IP reputation, keep it low
proxyobjectoptionalOff by default. Enable Apify residential proxies if you hit blocks or CAPTCHA responses

Common scenarios

1. Blog search, newest first, enriched with full post bodies

{
"queries": ["강남 카페"],
"includePostContent": true,
"orderBy": "recentdate",
"maxItems": 50
}

2. Date-sliced harvest (get past Naver's ~1,000-result cap)

{
"queries": ["μ‹ μ œν’ˆ 리뷰"],
"orderBy": "recentdate",
"from": "2026-01-01",
"to": "2026-03-31",
"maxItems": 1000
}

3. Public cafe article list

{
"queries": ["cafeId:10322296"],
"maxItems": 300
}

Output Overview

Every row is flat and carries type, query, and scrapedAt, plus:

  • searchResult rows β€” post URL, title, snippet, blogId, logNo, author nickname, blog name, publish date, thumbnail URLs, and totalCount for the query. With includePostContent, also bodyText, bodyImageUrls, and tags.
  • post rows β€” post URL, blogId, logNo, title, author, publish date, full bodyText, bodyImageUrls, and tags.
  • cafeArticle rows β€” cafe ID and name, article ID and URL, subject, board (menu) name, writer nickname, read/comment/like counts, write date, and whether the article has images.

Output Samples

Keyword query β†’ searchResult row (trimmed)

{
"type": "searchResult",
"query": "카페",
"postUrl": "https://blog.naver.com/hope95_08_30/224343354021",
"title": "κ΅¬λ‘œλ””μ§€ν„Έλ‹¨μ§€ μΉ΄νŽ˜λ“œλ£¨μ™€γ…£κ°€μ„±λΉ„μΉ΄νŽ˜ λ‚΄λˆλ‚΄μ‚° 솔직후기",
"snippet": "κ΅¬λ‘œλ””μ§€ν„Έλ‹¨μ§€ κ°€μ„±λΉ„μΉ΄νŽ˜ μΉ΄νŽ˜λ“œλ£¨μ™€ … 였늘 μ†Œκ°œν•΄ λ“œλ¦΄ 곳은 …",
"blogId": "hope95_08_30",
"logNo": "224343354021",
"authorName": "μ°Œλ‹ˆ",
"blogName": "μ°Œλ‹ˆμ™€ λ™μ΄μ˜ 일상",
"blogUrl": "https://blog.naver.com/hope95_08_30",
"postDate": "2026-07-12T00:00:00.000Z",
"thumbnailUrls": ["https://blogthumb.pstatic.net/…"],
"totalCount": 1000,
"scrapedAt": "2026-07-17T…"
/* + bodyText, bodyImageUrls, tags when includePostContent is on */
}

Post URL query β†’ post row (trimmed)

{
"type": "post",
"query": "https://blog.naver.com/yeewon1217/223340163450",
"postUrl": "https://blog.naver.com/yeewon1217/223340163450",
"mobilePostUrl": "https://m.blog.naver.com/yeewon1217/223340163450",
"blogId": "yeewon1217",
"logNo": "223340163450",
"title": "2024λ…„ 1μ›” 이야기",
"authorName": "μ—μ˜¨",
"publishedAt": "2024-01-…",
"bodyText": "…1,518 characters of Korean post body…",
"bodyImageUrls": ["https://postfiles.pstatic.net/…", "… 71 images …"],
"tags": []
}

Cafe query β†’ cafeArticle row

{
"type": "cafeArticle",
"query": "cafeId:10322296",
"cafeId": "10322296",
"cafeName": "γ†ν”Όν„°νŒ¬μ˜ 쒋은방 κ΅¬ν•˜κΈ°γ†",
"articleId": "19570814",
"articleUrl": "https://cafe.naver.com/ca-fe/cafes/10322296/articles/19570814",
"subject": "κ±°μ£Όν›„κΈ°",
"menuName": "κ±°μ£Ό ν›„κΈ°",
"writerNickname": "μ˜€μ˜€μœ‘μ•„λΌ",
"maskedMemberId": "chae****",
"readCount": 0,
"commentCount": 0,
"likeCount": 0,
"hasImage": false,
"scrapedAt": "2026-07-17T…"
}

Key Output Fields

Common

  • type, query, scrapedAt

Blog search result

  • postUrl, title, snippet, blogId, logNo, gdid
  • authorName, blogName, blogUrl, postDate, thumbnailUrls, totalCount

Blog post

  • title, authorName, publishedAt, bodyText
  • bodyImageUrls, tags, mobilePostUrl

Cafe article

  • cafeId, cafeName, articleId, articleUrl, subject, menuName
  • writerNickname, maskedMemberId, readCount, commentCount, likeCount, writeDate, hasImage

FAQ

Do I need a proxy?

Usually not β€” Naver's blog search API and mobile post pages are open and work without a proxy from most IPs. But Naver does score IP reputation, so if you run at high volume and start seeing blocks or CAPTCHA responses, enable Apify residential proxies in the proxy input.

How does the actor decide which mode to run?

By the shape of each query line: a blog.naver.com/m.blog.naver.com URL fetches full post content, cafeId: or a cafe.naver.com URL lists cafe articles, and anything else is a blog keyword search. Mix all three in one run.

Naver caps every blog search query at roughly 1,000 reachable results. To harvest more, sort by recentdate and split the run into from/to date ranges β€” each slice returns its own up-to-1,000 window.

What does includePostContent cost me?

It fetches each search result's mobile post page for the full body, which roughly doubles the number of requests per run. Keep maxItems modest when it's on, and expect longer runtimes.

Can I scrape private or members-only content?

No. The actor reads only public blog posts and public cafe articles. Members-only cafe boards, private posts, and anything behind a Naver login are out of scope.

Does it handle Korean text correctly?

Yes β€” the entire pipeline is UTF-8, so Korean titles, post bodies, tags, and cafe nicknames come through intact with no mojibake.

Does this scrape Naver Shopping, Maps, or Place reviews?

No. Those surfaces use different, heavily protected endpoints and are not covered by this actor.

Support

Additional Services

  • Need Naver Place / Maps / Shopping coverage, comment threads, or scheduled monitoring? Those are bigger builds β€” drop a line and I'll scope them.
  • Custom output shapes, private builds, or direct API access (no Apify fee, just a usage fee): muhamed.didovic@gmail.com

Explore More Scrapers

If you found this useful, you might also like:

Full list at apify.com/memo23.


⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by NAVER Corporation or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available data on blog.naver.com and public Naver Cafe boards β€” no authenticated endpoints, no members-only boards, and no content behind the Naver login. Users are responsible for ensuring their use complies with NAVER's Terms of Service, applicable data-protection law (South Korea's PIPA, GDPR, CCPA, etc.), and any contractual obligations of their own organization. Please keep concurrency low to respect Naver's infrastructure.


SEO Keywords

naver blog scraper, scrape naver blog, naver blog API, blog.naver.com scraper, naver cafe scraper, naver blog search, korean blog scraper, naver blog crawler, naver post content extraction, naver blog data, korea influencer marketing data, naver blog monitoring, korean social media scraper, naver SEO research, blog review scraper, korean market research data, naver cafe articles, Apify naver, naver blog CSV export, korea brand monitoring