Naver Place Reviews Scraper
Pricing
from $3.00 / 1,000 results
Naver Place Reviews Scraper
Extract visitor reviews, ratings, keywords, photos and visit details from Naver Place, plus linked Naver Blog reviews. Supports place URL/ID and keyword search input. Korean sentiment analysis ready.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Naver Place Reviews + Blog — Korean Review Scraper
Extract visitor reviews and blog reviews from Naver Place — Korea's #1 local business platform. Get full review text (Korean), star ratings, reviewer profiles, visit details, voted keywords, photos, owner replies, linked Naver Blog posts, and aggregated review statistics. No login, no API key, no paid proxy required.
What this actor does
- Visitor reviews — full review body, 1–5 star rating, reviewer nickname + profile URL + total review count, review/visit dates, visit count, voted keywords (음식이 맛있어요, 분위기가 좋아요…), photos, menu item mentioned, owner reply
- Blog reviews — Naver Blog posts linked to the place: title, contents, post URL, blogger name + home, thumbnail, rank
- Review statistics — average rating, total review count, star distribution (5★→1★), review themes, voted-keyword analysis
- Two input modes — direct Place URLs/IDs or keyword search to discover places first
- Parallel place scraping — configurable concurrency with per-place retries
- Empty fields are omitted — every record only contains fields Naver actually returned
How it works
Naver Place's review page (pcmap.place.naver.com/place/<id>/review/visitor) fully server-side renders ~20 visitor reviews, linked blog reviews, and review statistics into its window.__APOLLO_STATE__ blob. This actor parses that state directly with curl_cffi Chrome TLS impersonation — no browser, no login, no captcha, no proxy needed for moderate traffic.
Note on pagination: Naver's cursor-pagination GraphQL API (
pcmap-api.place.naver.com/graphql) is protected by an interactive captcha against automated requests, so this actor collects the reviews Naver embeds in the SSR page (≈20 per place). This matches the reliability-first design of this repo's other Naver actors (seeNaverMapScraper).
Input
| Field | Type | Default | Description |
|---|---|---|---|
placeUrls | array | — | Naver Place URLs or bare Place IDs. Accepts map.naver.com/p/entry/place/<id>, pcmap.place.naver.com/place/<id>/..., m.place.naver.com/..., or just the numeric ID. |
searchKeywords | array | — | Keywords to find places first (e.g. 강남 맛집, Seoul BBQ). |
maxPlacesPerKeyword | int | 3 | Max places scraped per keyword (1–50). |
maxReviews | int | 20 | Max visitor reviews collected per place (SSR embeds ~20). |
includeBlogReviews | bool | true | Also emit linked Naver Blog reviews. |
includeReviewPhotos | bool | false | Include photo URLs on each visitor review. |
includeReviewStats | bool | true | Emit one stats record per place. |
maxConcurrency | int | 3 | Places scraped in parallel (1–10). |
maxItems | int | 100 | Hard cap on total records (1–5000). |
proxyConfiguration | object | AUTO | Optional proxy. |
Example: fetch reviews for specific places
{"placeUrls": ["https://map.naver.com/p/entry/place/38239053","1000750444"],"includeReviewPhotos": true,"maxItems": 50}
Example: discover places by keyword, then fetch reviews
{"searchKeywords": ["강남 맛집", "홍대 카페"],"maxPlacesPerKeyword": 3,"includeBlogReviews": true,"includeReviewStats": true,"maxItems": 100}
Output
Each record has a reviewType field: visitor, blog, or stats.
Visitor review record
| Field | Description |
|---|---|
reviewType: "visitor" | Record kind |
placeId, placeName, placeCategory, placeAddress, placeRoadAddress | Place identity |
placeRating, placeTotalReviews | Place-level rating & count |
placeUrl | Canonical place URL |
searchKeyword | Keyword that found this place (search mode only) |
reviewId | Naver review ID |
reviewText | Full review body (Korean) |
reviewRating | 1–5 stars |
reviewerName, reviewerProfileUrl, reviewerReviewCount | Reviewer identity |
reviewDate, visitDate | Review creation & visit dates (YYYY-MM-DD) |
visitCount | "n번째 방문" count |
votedKeywords | e.g. 음식이 맛있어요, 분위기가 좋아요 |
reviewPhotos | Photo URLs (when includeReviewPhotos) |
reviewReplyText, reviewReplyDate | Business owner's reply |
menuItem | Menu item mentioned in the review |
originType | e.g. 영수증 (receipt-verified) |
language, translatedText | Review language + auto-translation when available |
scrapedAt | ISO 8601 timestamp |
Blog review record
| Field | Description |
|---|---|
reviewType: "blog" | Record kind |
placeId…placeUrl | Place identity (same as above) |
blogTitle | Blog post title |
blogContents | Blog post excerpt/contents |
blogUrl | Link to the full blog post |
bloggerName, bloggerHome | Blogger identity |
blogThumbnailUrl | Post thumbnail |
blogRank | Position in Naver's blog review list |
scrapedAt | ISO 8601 timestamp |
Stats record (one per place)
| Field | Description |
|---|---|
reviewType: "stats" | Record kind |
averageRating | Average visitor review score |
totalReviewCount | Total visitor reviews |
starDistribution | {5: n, 4: n, 3: n, 2: n, 1: n} |
reviewThemes | [{label, count}] — theme analysis |
votedKeywordStats | [{keyword, count}] — most-voted keywords |
Use Cases
- Korean market entry research — what locals say about competitors
- Restaurant/cafe competitive intelligence — ratings, keywords, sentiment
- Customer sentiment analysis — NLP-ready structured Korean review data
- Brand reputation monitoring in Korea
- Academic research on Korean consumer behavior
FAQs
Is a Naver login or API key required? No. The review page is public and server-side rendered.
How many reviews can I get per place? Naver embeds ~20 visitor reviews per SSR page. Naver's deeper pagination API is captcha-protected against automated requests, so this actor intentionally collects the SSR-embedded set (matching the reliability-first design of this repo's Naver actors).
Why is blogDate missing? Naver does not expose a publish date for blog reviews in the review SSR data, and the blog post ID in the URL is not a timestamp — emitting a wrong date would be worse than none.
Can I get reviews for places I don't know yet? Yes — use searchKeywords to discover places first (e.g. 강남 맛집), then reviews are scraped automatically.
What are the Korean fields? votedKeywords are Naver's official review-vote tags (음식이 맛있어요 = "food was delicious", 분위기가 좋아요 = "nice atmosphere"); originType: 영수증 marks receipt-verified reviews.
Does this actor work with the existing NaverMapScraper? Yes — use NaverMapScraper to build a place list (search/detail enrichment), then feed the place IDs into this actor's placeUrls for full review extraction.
Data Source
All data comes from the public Naver Place review pages (pcmap.place.naver.com) — a free, publicly accessible source requiring no login or API key.