This Google Maps scraper tutorial shows how to turn known Google Maps place URLs into a CSV of business details with the Google Maps Details Scraper template for UScraper. You will prepare URLs, import the workflow, validate rows, and know when the Google Places API is a better fit.
Before you start
Prerequisites and scope
You need UScraper installed as a local desktop app, a small list of Google Maps place detail URLs you are allowed to process, and a folder for CSV exports. Start with three to five URLs, not a city-wide lead list. Google Maps can vary by country, language, sign-in state, consent prompt, and business type.
This tutorial covers Google Maps business details from known place pages. It is not a Google Maps radius search crawler, route optimizer, or keyword discovery engine. The JSON cannot pipe listings discovered on a search results page into later navigation blocks, so add specific place URLs to navigate.urls.
Review Google's current Maps Platform terms and your use-case policy. Technical access is not permission to collect, store, republish, enrich, or sell a dataset.
Keep the input list, run date, purpose, and exported file with the project notes. That audit trail matters when a CSV feeds sales or operations decisions.
Workflow map
What the Google Maps details scraper does
The template follows the exported JSON graph: Set Window Size -> Navigate -> Wait for Page Load -> Wait for Element -> Inject JavaScript -> Sleep -> Structured Export -> Loop Continue. Navigate owns the URL list, waits look for the rendered heading, JavaScript handles common accept buttons and panel scrolling, Structured Export appends the CSV row, and Loop Continue advances.
| Export area | Columns | How to validate |
|---|---|---|
| Place identity | name, category, detail_url, header_image | Compare against the loaded place header. |
| Reputation | rating, rating_count, review_keyword1 through review_keyword10 | Check visible review counts and chips. |
| Location | address, located_in, latitude, longitude, plus_code | Confirm address and URL coordinates. |
| Contact | website, phone | Open the website and check phone formatting. |
| Availability context | current_status, next_status, open_hours, scraped_at | Confirm hours were visible before export. |
API decision
Google Places API vs scraping
Google's Places API overview explains the supported API path. In that model, Text Search finds places from text queries and Place Details returns selected fields for a place ID.
Best when you already have approved place URLs, need a supervised CSV, and prefer browser-visible QA over API setup.
If the deliverable is a reviewable CSV from a known place list, UScraper is a good fit. For production applications, recurring local search, or broad search within radius Google Maps coverage, evaluate the official API path first.
Runbook
How to scrape Google Maps business details to CSV
Import the workflow
Open the Google Maps details scraper template, download the JSON, and import it into UScraper.
Replace the sample URL
In Navigate, replace the sample with your approved Google Maps place URLs. Preserve useful query parameters, language settings, and coordinates.
Check waits and prompts
Keep the 45-second page load and heading waits for the first run. If a consent screen appears, resolve it in the browser session before trusting the CSV.
Set the export folder
In Structured Export, change the sample save location and keep google-maps-listing-and-details-page-scraper.csv unless your team has a naming convention.
Run one URL, then batch
Execute one place, inspect the row, compare it against the browser, then run the rest. Append mode also preserves mistakes if the first row is wrong.
Quality checks
Validate the CSV before using it
Open the CSV beside Google Maps and spot-check early, middle, and final rows. Sort by detail_url for duplicates. Filter blank name, address, website, and phone cells to separate missing values from extraction failures.
| Symptom | Likely cause | Fix |
|---|---|---|
Empty name | The page never reached a visible place heading | Extend waits, handle prompts, rerun one URL. |
Missing website or phone | The place does not expose the field, or Maps rendered a different panel | Check the live page and keep blank cells when the field is absent. |
Blank open_hours | Hours were collapsed, hidden by locale, or loaded late | Scroll manually, rerun, or add a stronger interaction step. |
Wrong keyword | The URL is a place URL, not a /maps/search/ URL | Treat keyword as optional context, not a required ID. |
| Coordinates missing | The URL format did not expose @lat,lng or !3d/!4d values | Keep the row and enrich coordinates later if required. |
The template uses best-effort JavaScript columns because Google Maps is a dynamic interface, not a fixed CSV feed.
FAQ
Google Maps scraper tutorial FAQ
Google Maps can show public business information, but automated collection and reuse may still be restricted by Google terms, privacy law, database rights, copyright, and local rules. Review the current terms, avoid bypassing access controls, keep batches modest, and get legal review before using exported rows commercially.
Next step
Download the Google Maps details scraper template
When you are ready to run the workflow, download the JSON from Google Maps Details Scraper for CSV Export and keep this tutorial open for QA. Browse all UScraper templates or the UScraper blog for more CSV export tutorials.

