Naver Place Scraper - Korea Local Business & Map Data avatar

Naver Place Scraper - Korea Local Business & Map Data

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Naver Place Scraper - Korea Local Business & Map Data

Naver Place Scraper - Korea Local Business & Map Data

Naver Place & Naver Map scraper (Korea): search local businesses by area + keyword and export name, category, address, phone, rating, visitor & blog review counts, hours and GPS coordinates. Korea local-business lead generation and market data — fast, no login.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

29

Total users

1

Monthly active users

5 days ago

Last modified

Security

Limited permissions

Share

Naver Place Scraper 🇰🇷 — Korea Local Business, Reviews & Map Data

Extract local business data from Naver Place / Naver Map — Korea's #1 local directory — as clean, structured data. This Naver Place scraper lets you scrape Naver Place by area + keyword (e.g. 강남 맛집 / "Gangnam restaurants") and returns name, category, road & lot address, phone, visitor rating, visitor & blog/cafe review counts, business hours, GPS coordinates, amenities, booking & Naver Pay flags, and image URLs — with no login and no coding.

Export to JSON, CSV, Excel, or API.

💡 Why Naver, not Google Maps? In Korea, Google Maps is structurally weak (Korean law restricts exporting domestic map data), so Naver dominates local search. Naver Place is the source for Korean restaurants, cafes, shops, salons and clinics — data a global Google Maps scraper simply can't deliver. This Naver Place scraper is built for lead-gen teams, market researchers, food/travel platforms, and data/AI teams who need reliable Naver Place data at scale.


📋 Table of contents


🔎 Why scrape Naver Place?

Naver Place (the business layer of Naver Map) is the dominant local-business directory in South Korea. When Koreans look for a restaurant, cafe, hair salon, hospital or hotel, they search Naver — not Google. Every place has a rich public profile: category, addresses in both road-name and jibun (lot) formats, phone, a visitor review score, visitor and blog/cafe review counts, business hours, amenities, booking links, Naver Pay support and photos. That makes Naver Place data the single best structured source of Korean local-commerce information.

Collecting this by hand is slow and painful. Naver's interface is Korean-first, paginated, and rate-limited; the useful fields are buried inside the page's embedded application state rather than plain HTML; and a request from a non-Korean IP is throttled or blocked. Copy-pasting a few hundred listings across neighborhoods and categories is not realistic, and it goes stale the moment a business updates its hours, rating or phone number.

This Naver Place scraper automates all of it. Give it Korean search queries (area + keyword) and it pages through the results, de-duplicates places, and returns a clean record per business — ready for a CRM, spreadsheet, map, or data warehouse.

Common reasons people scrape Naver Place:

  • 📇 Lead generation — build lists of Korean businesses by area and category, with phone + address, for sales outreach.
  • 📊 Market & competitive research — map business density, ratings and review volume across Korean districts.
  • 🍽️ Food, travel & review platforms — aggregate Korean restaurant/cafe listings with ratings, coordinates and photos.
  • 🗺️ Location intelligence & site selection — use GPS coordinates to analyze clusters and whitespace by neighborhood.
  • ⭐ Reputation & review benchmarking — track visitor review scores and review counts for you and your competitors.
  • 🤖 Data & AI datasets — assemble Korean local-business datasets with reputation and contact signals.
  • 📈 Franchise & expansion analysis — compare how a category (e.g. cafes) performs across areas before opening.

✨ What this Naver Place scraper does

  • ✅ Search by area + keyword — pass natural Korean queries such as 강남 맛집, 홍대 카페, 제주 호텔; each query is searched separately.
  • ✅ Five place verticals — choose Restaurants & cafes, All places (general), Hair & beauty salons, Hospitals & clinics, or Attractions & things to do.
  • ✅ Automatic pagination — pages through each search (~50 places per page) and keeps going until there are no more new results, returning hundreds to thousands of records across your queries.
  • ✅ Automatic de-duplication — every place is keyed by its Naver placeId, so the same business is never emitted twice, even when it appears across multiple pages or queries.
  • ✅ Rich place records — captures, per business:
    • Identity: placeId, name, category, businessCategory.
    • Location: roadAddress (road-name), address (jibun/lot), commonAddress, fullAddress, plus GPS latitude / longitude.
    • Contact: phone (usable number), virtualPhone (Naver safe number), landlinePhone (raw landline when present).
    • Reputation: visitorReviewScore (rating), visitorReviewCount, blogCafeReviewCount, bookingReviewCount, totalReviewCount.
    • Details: newBusinessHours, options (amenities), hasBooking, hasNPay (Naver Pay), michelinGuide when present.
    • Media & links: imageUrl, imageCount, imageUrls, placeUrl, mobileUrl.
    • Provenance: searchQuery, scrapedAt.
  • ✅ Korea-ready proxy handling — defaults to KR Residential proxies (required; Naver serves Korea-specific results and rate-limits per IP) with automatic IP rotation and retries on 429/network errors.
  • ✅ Fast, API-first parsing — no browser; reads Naver's embedded application state directly, so runs are quick and cheap.
  • ✅ Export anywhere — download as JSON, CSV, Excel, XML, HTML or pull from the Apify API; integrate with Make, Zapier, Google Sheets or a webhook.

🎯 Use cases

  • 📇 Sales & lead generation agencies — pull restaurants, cafes, salons or clinics in a target district with phone + address for cold outreach.
  • 🍽️ Food & restaurant tech — build and refresh Korean restaurant/cafe catalogs with ratings, review counts, hours and coordinates.
  • 🧳 Travel & hospitality platforms — aggregate Korean hotels, attractions and dining with map pins and reputation signals.
  • 📊 Market researchers & consultants — quantify business density, average ratings and review volume by neighborhood and category.
  • 🏢 Franchise & retail expansion — benchmark a category across areas to find under-served locations before signing a lease.
  • ⭐ Reputation / review analytics — monitor visitor scores and review counts over time for competitive and ORM dashboards.
  • 🗺️ GIS & location-intelligence teams — join GPS coordinates with demographic data for spatial analysis.
  • 🤖 AI & data engineering — feed structured Korean local-business records (with contact and reputation fields) into ML pipelines.

📥 Input

Configure the Naver Place scraper with a few simple parameters. The only thing you really need is one or more Korean search queries.

FieldTypeDescription
queriesarray (string list)Korean search terms — combine an area + keyword, e.g. 강남 맛집, 홍대 카페, 제주 호텔. Each line is searched separately. Leave empty to run a ready-made sample of popular Korean searches.
searchTypestring (select)Which Naver Place vertical to search: restaurant (Restaurants & cafes), place (All places), hairshop (Hair & beauty), hospital (Hospitals & clinics), attraction (Attractions). Default restaurant.
maxItemsintegerStop after collecting this many places across all searches. 0 = no limit.
maxPagesPerQueryintegerHow deep to page through each search (~50 places per page). Default 10. Raise it to go deeper, lower it to finish faster.
proxyConfigurationobjectProxy settings. KR Residential is the required default — Naver serves Korea-specific results and rate-limits non-Korean IPs.
maxConcurrencyintegerHow many searches to process in parallel. Default 2 (keep low — Naver rate-limits per IP).

Input example

{
"queries": ["강남 맛집", "홍대 카페", "성수 카페"],
"searchType": "restaurant",
"maxItems": 500,
"maxPagesPerQuery": 10,
"maxConcurrency": 2,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "KR"
}
}

More query ideas:

{ "queries": ["서울 미용실"], "searchType": "hairshop" }
{ "queries": ["부산 병원", "대구 치과"], "searchType": "hospital", "maxItems": 300 }

📤 Output

Every place becomes one structured record. Here is a real record from a fresh verification run (강남 맛집 / Gangnam restaurants, Korean values shown exactly as returned):

{
"placeId": "2083987873",
"name": "이자카야 고코 선릉점",
"category": "이자카야",
"businessCategory": "bar",
"roadAddress": "선릉로86길 37 2층 이자카야 고코 선릉점",
"address": "대치동 890-45",
"commonAddress": "서울 강남구 대치동",
"fullAddress": "서울특별시 강남구 대치동 890-45 2층 이자카야 고코 선릉점",
"phone": "0507-1377-5658",
"landlinePhone": null,
"virtualPhone": "0507-1377-5658",
"latitude": 37.5041178,
"longitude": 127.0526968,
"visitorReviewScore": 4.97,
"visitorReviewCount": 99,
"blogCafeReviewCount": 120,
"bookingReviewCount": 0,
"totalReviewCount": 219,
"newBusinessHours": {
"status": "영업 전",
"description": "11:00에 영업 시작"
},
"options": "단체 이용 가능,포장,예약,무선 인터넷,남/녀 화장실 구분,대기공간",
"hasBooking": true,
"hasNPay": false,
"michelinGuide": null,
"imageUrl": "https://ldb-phinf.pstatic.net/20260918_105/..._JPEG/KakaoTalk_20250709_233928108.jpg",
"imageCount": 62,
"imageUrls": [
"https://ldb-phinf.pstatic.net/20260918_105/..._JPEG/KakaoTalk_20250709_233928108.jpg",
"https://ldb-phinf.pstatic.net/20261018_249/..._JPEG/KakaoTalk_20261018_150849860.jpg"
],
"placeUrl": "https://map.naver.com/p/entry/place/2083987873",
"mobileUrl": "https://m.place.naver.com/restaurant/2083987873/home",
"searchQuery": "강남 맛집",
"scrapedAt": "2026-11-01T23:48:42.739Z"
}

Field reference

FieldDescription
placeIdNaver place ID (stable unique identifier).
nameBusiness name.
categoryNaver display category (e.g. 일식당 / Japanese restaurant).
businessCategoryThe vertical / section the place belongs to.
roadAddressRoad-name (도로명) address.
addressLot / jibun (지번) address.
commonAddressShort common address (city + district + dong).
fullAddressFull administrative address.
phoneUsable contact phone (Naver safe number when that's all that's exposed).
virtualPhoneNaver virtual (safe) phone number. Present when available.
landlinePhoneRaw landline number. Present when the place exposes one (many only have a virtual number).
latitude / longitudeGPS coordinates.
visitorReviewScoreVisitor rating (e.g. 4.89). Present when the place has a score.
visitorReviewCountNumber of visitor reviews.
blogCafeReviewCountNumber of blog/cafe reviews.
bookingReviewCountNumber of booking reviews.
totalReviewCountTotal reviews (falls back to the sum of the above when Naver omits an explicit total).
newBusinessHoursCurrent hours/status object (open/closed + next change).
optionsAmenities / options string (parking, reservations, delivery, Naver Pay, etc.).
hasBookingWhether Naver booking is available (true/false).
hasNPayWhether Naver Pay is accepted (true/false).
michelinGuideMichelin guide info. Present when applicable.
imageUrlPrimary image URL.
imageCountNumber of images on the listing.
imageUrlsArray of image URLs.
placeUrlNaver Place (desktop map) URL.
mobileUrlNaver Place mobile URL.
searchQueryThe query that produced this record.
scrapedAtISO 8601 timestamp of when the record was scraped.

ℹ️ About field coverage (measured on a fresh 400-place run): core fields populate on essentially every record — placeId, name, category, businessCategory, all four address variants, latitude/longitude, placeUrl and mobileUrl came back 100%; blogCafeReviewCount, bookingReviewCount, newBusinessHours, hasNPay and imageCount 100%; totalReviewCount, imageUrl, imageUrls ~99.8%; visitorReviewCount 99.5%; options 96%; phone 92%. A few fields are data-dependent and appear only when the business exposes them — virtualPhone (~68%), visitorReviewScore (~57%, only rated places), hasBooking (~52%), landlinePhone (~24%, most places publish only a virtual number) and michelinGuide (only listed venues). That's real-world Naver data, not a gap.


🔁 Pagination & scale

The actor paginates automatically. For each query it fetches the Naver Place list endpoint page by page (?page=1, ?page=2, …), with roughly 50 places per page, and reads the full place records embedded in the page's application state — so no slow per-place detail request is needed.

Paging continues until one of these stops it:

  • the per-query page cap maxPagesPerQuery (default 10) is reached,
  • the global maxItems budget is hit (0 = no limit), or
  • a page returns no new unique places (Naver often repeats the same places on deeper pages) — at which point the actor moves on to the next query.

Every place is de-duplicated by placeId across all pages and queries, so a multi-query run returns a clean, unique set of hundreds to thousands of businesses. Combine many area+keyword queries to cover an entire city or region in one run.

✅ Verified: a recent run of 8 area+keyword queries returned 400 unique places with 0 duplicates in ~2.3 minutes — ~50–59 places per query across multiple pages, with 100% coverage on all identity and location fields. Raise maxItems / maxPagesPerQuery and add more queries to scale further.


⚙️ How to use

  1. Open the actor on the Apify Console and click Try for free / Start.
  2. Add one or more Search queries in Korean — area + keyword, e.g. 강남 맛집, 홍대 카페, 제주 호텔.
  3. Choose a Business category (restaurants/cafes, all places, hair & beauty, hospitals, attractions).
  4. Set Max places (maxItems) and, if you want to go deeper, raise Max pages per search.
  5. Keep the proxy on its default — KR Residential (required).
  6. Click Save & Start, then export the dataset as JSON, CSV or Excel — or pull it from the Apify API.
  7. To automate, schedule runs or wire the output into Make, Zapier, Google Sheets, a database or a webhook.

You can also run it programmatically via the Apify API / client libraries — pass the same input JSON and read the dataset when the run finishes.


💡 Tips

  • 🇰🇷 Keep the default KR Residential proxy. Naver only serves complete Korea-specific results from a Korean IP and rate-limits others; this is required, not optional.
  • 🗺️ Use area + keyword queries (강남 맛집, 부산 카페, 제주 호텔) and combine many to cover a whole region in a single run.
  • 🧪 Start small. Run one query with a low maxItems to confirm the output shape before scaling up.
  • 📄 Go deeper with maxPagesPerQuery if you need more than ~50 results for a query, but note that Naver repeats places on deep pages — the actor stops automatically when no new places appear.
  • 🐢 Keep maxConcurrency low (2 is a good default). Naver rate-limits per IP; higher concurrency risks more 429s.
  • 💾 Automate it. Schedule runs to track new openings, rating changes and review growth over time, and push results straight into your CRM or spreadsheet.

❓ FAQ

Is scraping Naver Place legal? The actor collects publicly available business listings from Naver Place / Naver Map — the same data any visitor can see without logging in. As with any scraping, use the data responsibly, respect Naver's terms, and comply with local laws and privacy rules (e.g. don't misuse personal contact data). You are responsible for how you use the output.

Do I need a Korean proxy? Yes. Naver serves Korea-specific results and reliably responds only to Korean IPs, rate-limiting others. The actor defaults to KR Residential proxies — keep it on. No separate account or API key is required beyond Apify Proxy.

Do I need to log in or provide Naver credentials? No. There is no login and no coding — just enter your search queries and run.

How many results can I get and how fast is it? Each page returns ~50 places and the actor pages automatically, so a multi-query run easily yields hundreds to thousands of de-duplicated places. It's an API-first scraper (no browser), so runs are fast; throughput is bounded mainly by Naver's per-IP rate limits, which is why concurrency is kept low.

Does it return phone numbers and addresses? Yes — phone and virtualPhone (plus landlinePhone when a place exposes one), and four address variants: roadAddress, address (jibun/lot), commonAddress and fullAddress, plus GPS coordinates.

Does it include ratings and review counts? Yes — visitorReviewScore (rating), visitorReviewCount, blogCafeReviewCount, bookingReviewCount and totalReviewCount.

Can I scrape cafes, salons, clinics or attractions — not just restaurants? Yes. Set the Business category (searchType) to restaurant (restaurants & cafes), place (all places), hairshop (hair & beauty), hospital (hospitals & clinics) or attraction (attractions & things to do).

Can I filter the results? You target results with your queries (area + keyword) and searchType, and control volume with maxItems and maxPagesPerQuery. For finer filtering (e.g. by rating or review count), filter the exported dataset downstream.

What export formats are supported? Is there an API? Download as JSON, CSV, Excel, XML or HTML, or pull results from the Apify API and integrate via Make, Zapier, Google Sheets or a webhook.

How fresh is the data? Every record carries a scrapedAt timestamp and reflects Naver Place at run time. Schedule the actor to keep a dataset continuously up to date.

Why Naver instead of Google Maps for Korea? Google Maps is structurally limited in Korea (domestic map-data export is restricted), so Naver Place is the authoritative source for Korean local businesses — making this Naver Place scraper the right tool for Korean market data.


Building Korean or local-business datasets? Pair this Naver Place scraper with:


▶️ Ready to scrape Naver Place?

Click Start, enter a Korean area + keyword, and export Naver Place data — names, addresses, phones, ratings, reviews, hours and coordinates — as JSON, CSV, Excel or via API in minutes.