This tutorial shows how to scrape Google Maps listings in Spanish into CSV with the Google Maps Listing Scraper Spanish template for UScraper. You will import the workflow, replace the sample place URLs, set the export path, validate a small batch, and troubleshoot empty fields.
Before you start
Prerequisites and scope
You need UScraper installed as a local desktop app, a small set of Google Maps place URLs you are allowed to process, and a folder where the CSV can be written. Start with three to ten place URLs. Google Maps can throttle sessions, show verification prompts, vary its DOM by locale, or change selectors without warning.
This guide is for visible business detail pages such as restaurants, bars, clinics, repair shops, agencies, and stores. It is not for account-only data, private user data, CAPTCHA bypassing, or bulk downloading beyond your allowed use. Read the current Google Maps Platform Terms and Google Maps additional terms before production jobs.
Technical access is not the same as permission. Keep the run modest, document your purpose, and use official API or partner routes when you need contractual data rights.
Workflow anatomy
What the Spanish Google Maps scraper does
The JSON workflow is direct: Set Window Size -> Navigate -> Wait for Page Load -> Wait for Element -> Sleep -> optional Click -> Structured Export -> Loop Continue. Navigate holds the place URL list, the wait blocks give the detail panel time to render, and Structured Export appends the loaded page to CSV.
The output is designed for Spanish-language local lead lists. The stock sample uses google.es and hl=es, with columns such as palabra_clave, resenas, direccion, sitio_web, and telefono.
| CSV column | What it captures | Validation check |
|---|---|---|
palabra_clave | The keyword context you assign to the run, such as bar en Madrid | Confirm it matches the lead list you are building. |
titulo and url | Business name and current Google Maps URL | Open the URL and compare the visible title. |
rating and resenas | Star rating and review count text | Check one row because locale formatting can differ. |
categoria | Visible business category | Expect blanks when the category is not exposed in the current view. |
direccion, sitio_web, telefono | Address, business website, and phone | These are the main lead qualification fields. |
latitud and longitud | Coordinates parsed from the URL when available | Treat blanks as optional, not as failed rows. |
horario and hora_actual | Visible opening hours and scrape timestamp | Use the timestamp for audit and reruns. |
Runbook
How to scrape Google Maps listings to CSV
Import the template
Open Google Maps Listing Scraper Spanish, download the JSON, and import it into UScraper.
Replace the sample URLs
In the Navigate block, replace the three sample Google Maps place URLs with approved place URLs from your own Spanish-market research list.
Set the keyword context
Update the palabra_clave expression in Structured Export so every row records the search phrase or segment that produced the place URL.
Confirm the CSV destination
Check the file name, save location, headers, and append mode. Use a project-specific folder so test rows do not mix with production rows.
Run one place first
Run a single URL, compare the CSV against the browser, and adjust waits or selectors before reconnecting the loop for the full list.
Quality control
Validate the CSV export
Open the CSV beside the browser and verify rows from the beginning, middle, and end of the batch. Compare the title, phone, website, address, rating, and hours exactly as a reviewer would use them.
| Symptom | Likely cause | Fix |
|---|---|---|
Empty titulo | The place detail page never reached a visible h1 state | Extend the wait, handle prompts, and rerun one URL. |
Blank telefono or sitio_web | The listing does not show that field, or the selector changed | Check the detail panel manually before treating it as missing data. |
| Review count looks wrong | Locale-specific review text changed | Update the JavaScript pattern and rerun a small sample. |
| Coordinates are missing | The URL did not expose @lat,lng or !3d/!4d coordinates | Keep the row and enrich coordinates separately if required. |
| CSV has mixed projects | Append mode wrote test rows into the same file | Clear the file or choose a new output folder before the final run. |
API and hosted tools
UScraper vs Places API, Apify, and Octoparse
The official Google Places API is cleaner when your project needs documented endpoints, quotas, field masks, billing controls, and contractual API access. UScraper fits a different job: supervised browser-based CSV extraction from known place URLs.
Hosted tools such as Apify and Octoparse can help with cloud scheduling, managed infrastructure, and larger runs. If you are evaluating Apify vs Octoparse Google Maps scrapers, compare them against the actual job: discovery at scale, API-like delivery, or a local CSV someone can QA in the browser.
FAQ
Google Maps scraping FAQ
Google Maps can show public business information, but automated collection may still be limited by Google terms, privacy law, database rights, copyright, and local rules. Review current terms, avoid bypassing access controls, keep runs modest, and get legal review before using exported rows commercially.
Next step
Download the Spanish Google Maps scraper template
When you are ready to run the workflow, download the JSON from Google Maps Listing Scraper Spanish and keep this article open for QA. For related workflows, browse the UScraper template library or the UScraper blog for more CSV export tutorials.

