This tutorial shows how to scrape Google Maps store listings in Japan into CSV with the Google Maps Store Listing Scraper Japan template for UScraper. You will import the workflow, adjust the search query, set the export path, validate rows, and compare the approach with the Google Places API.
Before you start
Prerequisites and policy checks
You need UScraper installed as a local desktop app, the free template JSON, a folder where the CSV can be saved, and a focused Google Maps search URL. The bundled template starts with the Japan query 居酒屋 東京, which produces restaurant listings around Tokyo. For production research, replace it with your own category and city.
Review the current Google Maps Platform Terms and your compliance requirements before automation. This article covers visible listing-card fields for a controlled local workflow; it is not a guide to bypassing sign-in walls, CAPTCHAs, rate limits, account controls, or restricted datasets.
Use the smallest run that answers the business question. Keep the search query, scrape time, and CSV filename with every export so the dataset can be audited later.
Workflow anatomy
How the Google Maps Japan scraper works
The template is compact: Navigate -> Wait for Page Load -> Wait for Element -> Inject JavaScript -> Wait for Hidden Export Rows -> Structured Export -> End. Navigate opens a Google Maps Japan search URL. The waits confirm that result cards are visible. The JavaScript block scrolls the feed, captures unique cards, and creates a hidden table of normalized rows. Structured Export reads those rows and writes google-maps-store-listing-scraper.csv.
The key guardrail is the bounded scroll collector. It stops when the feed reaches the end, when row count stops increasing, or when maxScrolls hits 35. That makes the workflow better for supervised Google Maps business data scraping than for unsupervised crawling.
| Workflow part | What it controls | Practical note |
|---|---|---|
| Search URL | Category, city, locale, and keyword | Change this first when you move from Tokyo restaurants to another Japan market. |
| Wait for cards | Confirms div[role="article"][aria-label] appears | Empty exports usually start here, not in the CSV block. |
| JavaScript collector | Scroll depth, dedupe, field parsing, hidden rows | Increase maxScrolls only after a clean small run. |
| Structured Export | CSV filename, save folder, headers, columns | Keep one folder per project or city to avoid mixing batches. |
Runbook
How to scrape Google Maps listings to CSV
Import the template
Open the Google Maps Store Listing Scraper Japan page, download the JSON, and import it into UScraper.
Edit the Maps search
Replace the default Tokyo izakaya search URL with your approved keyword and city. Keep the URL on Google Maps and run one city-category pair at a time.
Confirm waits
Run the page load and listing-card waits before changing selectors. If Google shows consent, verification, or a slow-loading feed, handle that before exporting.
Set the CSV destination
In Structured Export, confirm the filename, local save folder, headers, and columns. Use a project-specific folder for each lead list or market study.
Run, inspect, then scale
Run a small batch, open the CSV, click several Maps URLs, and compare fields against the browser before increasing scroll depth or repeating the query.
Output
CSV columns from the template
The export shape comes from the JSON workflow. Website and phone are exported when Google Maps exposes them on loaded result cards; some listings reveal those values only after opening a detail page, and some businesses do not publish them.
google-maps-store-listing-scraper.csvColumn
search_keyword
Decoded Maps search term used for the run.
Column
title
Business or store name from the result card.
Column
maps_url
Google Maps URL for the listing when available.
Column
rating
Visible star rating text.
Column
review_count
Review count cleaned from Japanese review labels.
Column
category
Primary category parsed from the card information line.
Column
address
Visible street or area text from the listing card.
Column
website
Business website URL when visible on the card.
Column
phone
Telephone link when present.
Column
hours
Opening-hours text or status when visible.
Column
longitude
Longitude parsed from the Maps URL coordinate segment.
Column
latitude
Latitude parsed from the Maps URL coordinate segment.
Column
scraped_at
ISO timestamp for when the row was collected.
For lead research, sort by title and maps_url first. For local SEO work, filter by missing website, low review_count, or mismatched category. For territory mapping, spot-check coordinates before uploading rows into a map or CRM.
Troubleshooting
Common issues and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| CSV has headers but no rows | Listing cards did not appear or the hidden export table was never created | Reopen the Maps URL, handle prompts, and rerun the waits before export. |
| Fewer rows than expected | Google Maps virtualized the feed, throttled loading, or reached the end of visible results | Keep the batch narrow, slow the scroll delay, then raise maxScrolls gradually. |
| Website or phone is blank | The field is hidden on the result card or absent for that business | Open a few detail pages manually before deciding whether you need a detail-page workflow. |
| Rating text looks wrong | Locale or page layout changed | Inspect the live card and update the extraction pattern in the JavaScript block. |
| Duplicate businesses appear | Similar listings have different Maps URLs or the same brand has multiple branches | Deduplicate by maps_url first, then by normalized title plus address. |
API decision
Google Places API vs scraper
The official Places API is the right path when you are building a production app, need place IDs, want documented fields, or need a formal billing and terms route. Place Details requests use field masks, and Google's Place Data Fields reference shows which fields can be requested.
A local scraper is different. It is useful when an analyst needs to inspect the rendered Maps experience, create a one-off CSV for a narrow market, or test coverage before investing in an API workflow.
| Choose this route | Best fit | Trade-off |
|---|---|---|
| Google Places API | Production apps, stable schemas, place IDs, supported billing, documented field masks | Requires API setup, pricing review, and terms alignment. |
| UScraper template | Supervised local CSV, visible browser QA, no-code workflow editing, focused Japan store listing research | Selectors and visible fields can change, and the workflow should stay modest. |
| Hosted scraper service | Managed cloud runs, scheduling, larger queue handling | Data custody, recurring usage cost, and platform lock-in need review. |
The "best Google Maps scraper" is the one that matches the job. For a small Japan lead list, a local desktop workflow can be faster to validate. For a customer-facing application, the API path is usually the cleaner foundation.
FAQ
Google Maps Japan scraper FAQ
Google Maps can display public business information, but automated collection may still be limited by Google terms, privacy law, database rights, copyright, and local regulations. Review the current Google Maps Platform Terms and your own use case, avoid bypassing access controls, keep runs modest, and get legal review before using the CSV commercially.
Next step
Download the Google Maps Japan scraper template
Use this article as the runbook and the Google Maps Store Listing Scraper Japan template as the download path. For adjacent workflows, browse the full UScraper template library, or read more CSV export tutorials on the UScraper blog.

