Naver Blog Search Scraper
Pricing
Pay per event
Naver Blog Search Scraper
Search Naver's blog tab by keyword and get one row per post: post URL, blogId, logNo, title, snippet, blog name, publish date and thumbnail. Korean keywords supported, deep paging up to 600 posts per query, ads skipped. Export to JSON or CSV.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
21 hours ago
Last modified
Categories
Share
🎯 What this scrapes
Naver has no public search API for its blog tab. This Actor takes one or more keywords (Korean or any UTF-8 text), runs the Naver blog search and writes one dataset row per blog post: post URL, blogId, logNo, title, snippet, blog name, blog URL, publish date and thumbnail. Ads are skipped, duplicate posts are removed, and every keyword is paged automatically up to the cap you set (600 posts per keyword at most).
Only public search-result metadata is collected. Post bodies, comments and likes are not part of the output.
🔥 Features
- 🔎 Korean keywords work out of the box. Queries are sent as UTF-8, one search per keyword.
- 📄 Deep paging. Up to 600 posts per keyword (20 pages), 30 posts per page, de-duplicated by
blogId+logNo. - 🚫 Ads are skipped. Only organic blog posts become rows.
- 🛡️ We rotate browser fingerprints so Naver sees a real browser, not a script.
- 🌐 We rotate proxies through Apify Proxy with a fresh session on every block.
- 🔁 We retry with exponential backoff on
408 / 429 / 5xxand honourRetry-After. Up to 5 attempts per page. - 🧱 One bad keyword never sinks the run. Rows already collected are kept and the status message says where a keyword stopped.
- 🧊 Clean, typed rows with ISO-8601 timestamps and stable post IDs.
- 💰 You pay only for results that land.
💡 Use cases
- SEO research. See which blogs and posts show up for a Korean keyword.
- Brand and product monitoring. Track what bloggers write about a product, place or topic.
- Market research. Build Korean-language corpora of post titles and snippets from public search results.
- Influencer discovery. Find active blogs per topic; rows include the influencer profile URL when Naver exposes one.
⚙️ How to use it
- Click Try for free.
- Add one or more keywords to
queries, one per line. - Set
maxResultsPerQuery(default 60, maximum 600). - Click Start, then export the dataset as JSON, CSV or Excel.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
queries | array | yes | ["강릉 맛집"] | Keywords to search, 1 to 50. Blanks are dropped and exact duplicates removed. |
maxResultsPerQuery | integer | no | 60 | 1 to 600 posts per keyword. |
proxyConfiguration | object | no | Apify Proxy | Results depend on the exit region. |
{"queries": ["강릉 맛집"],"maxResultsPerQuery": 60,"proxyConfiguration": { "useApifyProxy": true }}
📤 Output
One row per blog post.
| Field | Type | Notes |
|---|---|---|
query | string | Keyword that produced the row. |
position | integer | 1-based position among the keyword's de-duplicated organic posts. |
postUrl | string | Blog post URL. |
blogId / logNo | string | Parsed from the post URL. |
title / snippet | string | Post title and result snippet (highlights removed). |
blogName / blogUrl | string | Blog display name and home URL. |
influencerUrl | string | null | Naver influencer profile, when the source is one. |
publishedAtRaw | string | null | Date text exactly as Naver shows it. |
publishedAt | string | null | ISO date, only for absolute dates such as 2026.07.24.. |
publishedAtRelative | string | null | Relative text such as 3주 전, kept unconverted. |
thumbnailUrl | string | null | First post image. |
scrapedAt | string | ISO-8601 UTC timestamp of the run. |
{"query": "강릉 맛집","position": 1,"postUrl": "https://blog.naver.com/104204303/224424493170","blogId": "104204303","logNo": "224424493170","title": "강릉 물회 맛집 장안횟집 풍자 또간집 미역국이 킥","snippet": "강릉 맛집 메뉴판 메뉴는 물회와 회덮밥, 미역국을 중심으로 ...","blogName": "매아","blogUrl": "https://blog.naver.com/104204303","influencerUrl": "https://in.naver.com/104204303","publishedAtRaw": "2주 전","publishedAt": null,"publishedAtRelative": "2주 전","thumbnailUrl": "https://search.pstatic.net/common/?src=...&type=f250_208","scrapedAt": "2026-10-11T10:00:00Z"}
💰 Pricing
Pay-per-event. You are charged only for what the run produces.
| Event | USD | What it is |
|---|---|---|
actor-start | $0.20 | One-off warm-up charge per run |
result | $0.002 | Per blog post written to the dataset |
Example: 1 000 posts cost $2.00 for results plus the $0.20 start fee, so about $2.20 in total. A keyword with no matching posts costs only the start fee.
🚧 Limitations
- Blog tab only: no cafe, news or Knowledge-iN results and no post bodies.
- Results depend on the exit region of the proxy, so the same keyword can return a slightly different set from different regions.
- Relative dates such as
3주 전are kept as text and not converted to a calendar date. - Depth is capped at 600 posts per keyword.
- No sort or date-range filter: results come in Naver's default blog-tab order.
❓ FAQ
Does it return ads? No, ad cards are skipped.
Can I search in Korean? Yes, keywords are sent as UTF-8.
What if a keyword has no results? The run succeeds with zero rows for that keyword and the status message says so.
Why are two keywords returning the same post? Rows are de-duplicated within a keyword, not across keywords. Each row carries its query so you can group or de-duplicate as you like.
What happens if Naver blocks a request? We retry with backoff, rotate the session and fingerprint, and keep the rows already collected. If a keyword cannot finish, the status message shows how far it got.
💬 Your feedback
Found a bug or need a new field? Open an issue on the Actor's Issues tab in Apify Console.