How to Scrape Google Maps to CSV Without Code
With A-Parser’s built-in Google Maps scraper (
The export can be opened in Excel, imported into a CRM, or filtered for prospecting, territory planning, and local-market research.
From Search Queries to a Business Directory
You can set up the entire workflow in the A-Parser web interface, without custom scripts, browser extensions, or Node.js libraries.
Enter search queries and an OpenStreetMap region code; A-Parser builds a grid inside the selected boundary and collects listings from every point.
What Google Maps Data Can You Export to CSV?
The built-in
A standard export can include 10 columns:
| Column | Parser Field Maps::Google | Description |
|---|---|---|
| Search Query | query | The keyword that returned the listing |
| Business Name | name | Business name shown in Google Maps |
| Rating | rating | Average rating on a 1–5 scale |
| Reviews | reviews | Review count at the time of collection |
| Address | address | Business address |
| Phone | phones | Contact number from the listing |
| Website | site | Website or external page linked from the listing |
| Categories | categories | Primary and additional business categories |
| Coordinates | coordinates | Latitude and longitude (lat, lng) |
| Listing Link | link | Google Maps URL with CID; useful for deduplication |
Other available fields:
The parser can also returntimestatus(open or closed status),tags(accessibility features and amenities),photo(image URL), andprice(price tier).
How to Set Up Google Maps Scraping in A-Parser
What You Need
- A-Parser Pro or Enterprise.
- A residential proxy pool, such as A-Parser Premium Proxies. A proxy pool is needed for citywide crawling because Google limits frequent requests from one IP address.
- A list of target search queries.
Step 1. Select
Maps::Google1. Open Task Editor in the A-Parser web interface.
2. Select the built-in
Maps::Google parser from the parser list.
Step 2. Add Search Queries
In the Queries field, enter 5–10 complementary terms for your niche.
Semantic coverage matters:
Businesses can appear for different related terms. In the Los Angeles test,cosmetic dentistcontributed 820 rows, whilemedical spacontributed 351 andbotox cliniccontributed 111. Using a single broad term will return fewer results.
The Los Angeles test used these 10 queries:
Code:
cosmetic dentist
skin care clinic
teeth whitening
dental implants
medical spa
dermatologist
laser hair removal
plastic surgeon
med spa
botox clinic
Step 3. Configure Core Parser Parameters
Check these five settings in
1. Coordinates — the center point for a single-point search. Use it for a small locality or when results around a specific map point matter. With Collect full region enabled, you can leave it blank: A-Parser builds the grid from the regional boundary. A value already present in an imported preset does not change that grid.
2. Zoom — map scale. It matters for a single-point search. In full-region mode, A-Parser automatically chooses the scale for each grid point.
3. Country — set
United States when you need an explicit country setting. In our tests, Country did not change the returned listings, while Language did.4. Language — set
English for an English-language export. Check the first rows: a different language setting can produce mixed-language results.5. Max pages — pagination depth per grid point. In the test, one page contained 20 listings:
3 pages returned up to 60 listings per point, while 10 returned up to 200. Start with 3 pages and increase the depth if needed.Step 4. Configure Citywide Crawling (Collect Full Region)
Google Maps results vary by search location. To cover an entire city, A-Parser builds a grid inside the boundary of the selected region.
Where to find the region setting:
The regional crawling options are in Task Editor, under the parser's Parser options section:
- OpenStreetMap Type+ID: enter the region code. For Los Angeles, useR207359. TheRprefix means relation.
- Step in kilometers: set3km.
- OSM Mode: selectLocation code.
How it works: After you enter a relation code, A-Parser determines the regional boundary, builds a grid inside that polygon, and queries every point with your keyword list. The grid follows the regional shape rather than a rectangular bounding box, so it can contain fewer points than a rough bounding-box estimate.
How to find a code for another city:
Open openstreetmap.org, find the city, and open its administrative boundary. The object details panel shows the object type and ID, for exampleRelation: Los Angeles (207359). Add theRprefix for OpenStreetMap Type+ID:R207359. You can also find the relation number in a URL such asopenstreetmap.org/relation/207359.
Step 5. Configure Proxy Checker
In Task options:
- Select your proxy list in the Proxy checker field.
- Set Max retries:
10. Google can return temporary blocks or empty responses; a retry lets the parser try the request again with another proxy. - Set 20–30 threads.
Step 6. Configure CSV Output
You do not need an external conversion script: A-Parser creates one CSV row for every Google Maps listing. Keep the same field order in the result template and the CSV header.
Business Rows
1. In Overall results format, paste:
Code:
[% FOREACH serp %]
[% tools.CSVline(
query,
name,
rating,
reviews,
address,
phones,
site,
categories,
coordinates,
link
) %]
[% END %]
FOREACH serp iterates through the collected listings. tools.CSVline safely handles separators, quotes, and line breaks so business names and addresses do not split into extra columns.CSV Header
2. In Prepend Text, paste:
Code:
Query,Name,Rating,Reviews,Address,Phone,Website,Categories,Coordinates,Link
Keep the line break after
Link; otherwise, the first business row will join the header. The header order must match the field order in tools.CSVline.Encoding, File Name, and Run
3. In Results options, enable Write BOM: Yes (
true) so Excel opens UTF-8 text correctly.4. Save results to a file, for example:
Code:
google_maps_leads_$datefile.format().csv
5. Click Add task or Run. When the task status is
Completed, download the CSV from the task queue.
Check the CSV Before a Full Citywide Run
Before regional crawling, run 1–2 test queries and check the first CSV rows:
- the header and data appear in separate columns;
- phone, address, coordinates, and listing link are in the expected fields;
- text opens correctly in Excel;
- the
Linkfield contains a Google Maps CID; - language and country match the target region;
- empty websites, ratings, and reviews do not necessarily indicate an error: those fields can be absent from a Google Maps listing.
For a lead list, deduplicate the
Link column by CID. Keep the Query field when you need to know which search term returned a listing.Live Benchmark: 4,001 Records from Los Angeles
The Los Angeles test covered medical aesthetics, dermatology, and cosmetic dentistry with 10 search queries and
Max pages = 3.How the Data Was Collected
| Parameter | Value |
|---|---|
| Territory | Los Angeles, California (R207359) |
| Test date | September 30, 2026 |
| Search queries | 10 medical aesthetics and cosmetic dentistry terms |
| Grid points | 183 |
| Grid step | 3 km |
Max pages | 3 |
| Generated subqueries | 1,830 (183 × 10) |
Queries done/all | 1,840 (10 seed queries + 1,830 subqueries) |
| Proxies | A-Parser Premium residential proxy pool |
| A-Parser version | v1.2.3671; NextGen v0.5.79 (Linux) |
| Run time | About 10 minutes |
| Raw rows | 35,760 |
Adjacent grid points overlap, so the same listing can appear in the raw output more than once. Of the 4,001 rows in the final export, 3,999 are unique by CID, and 2 rows have duplicate CIDs.
What We Got
The final
google_maps_leads_la_medspa.csv export is available here (view in HTML):| Metric | Result |
|---|---|
| Rows in final export | 4,001 |
| Phone numbers | 3,885 of 4,001 (97.1%) |
| Addresses | 3,976 of 4,001 (99.4%) |
| Coordinates | 4,001 of 4,001 (100.0%) |
| Categories | 3,996 of 4,001 (99.9%) |
| Ratings | 3,507 of 4,001 (87.7%) |
| Review counts | 3,238 of 4,001 (80.9%) |
| Websites / external pages | 3,057 of 4,001 (76.4%) |
| Google Maps links with CID | 4,001 of 4,001 (100.0%) |
Phone number format:
The export keeps phone numbers in a normalized format without parentheses or hyphens, making them easy to import into a CRM or dialing tool.
What the Results Show
1. Phone numbers and addresses appear more often than websites. Google Maps works well as a starting point for a contact database, but a missing website field should be checked manually.
2. Related queries expand coverage. Using all 10 queries returned far more listings than using
med spa alone.3. CID is needed for final deduplication. Grid overlap creates repeated listings, so remove duplicates before importing into a CRM.
Query Contribution to the Final Export
| Search Query | Rows in Final Export | Share of Export |
|---|---|---|
cosmetic dentist | 820 | 20.5% |
skin care clinic | 647 | 16.2% |
teeth whitening | 547 | 13.7% |
dental implants | 518 | 12.9% |
medical spa | 351 | 8.8% |
dermatologist | 324 | 8.1% |
laser hair removal | 266 | 6.6% |
plastic surgeon | 243 | 6.1% |
med spa | 174 | 4.3% |
botox clinic | 111 | 2.8% |
How to Use Your Export
The CSV is more than just a list of businesses. Use it for segmentation, data checks, and personalized outreach.
| Task | Filter By | Next Step |
|---|---|---|
| Find listings without a linked website | Website = empty | Review the listing manually and verify whether the business has an active website |
| Prioritize listings with more reviews and higher ratings | Reviews, Rating | Filter for businesses with the right review count and rating, then use those details to personalize your outreach |
| Review ratings and review counts | Rating, Reviews | Identify listings with low ratings and enough reviews to warrant further review |
| Segment by geography | Address, Coordinates, Categories | Split the export by area, business type, or sales territory |
| Prepare for CRM import | Name, Phone, Website, Link | Deduplicate by CID, check contacts, and import the records |
Important: An emptyWebsitefield means the Google Maps listing does not contain a linked website. It does not necessarily mean the business has no website. Ratings and review counts are prioritization signals, not proof that a business needs a particular service.
What to Do When Your Results Look Wrong
| Problem | Cause | Solution |
|---|---|---|
| Business names or addresses use the wrong language | Language is set incorrectly | Set Language = English for an English-language export |
| Regional crawling creates too many points | Step in kilometers is too small for the city | Start with a 3 km step and reduce it only when needed |
| The parser covers a wider area than expected | OSM resolved the location name to the wrong boundary | Use OSM Mode = Location code with the exact relation code, such as R207359 |
| Excel shows garbled text | The CSV has no UTF-8 BOM | Enable Write BOM: Yes in Results options |
| The final file contains repeated listings | Adjacent grid points overlap | Remove duplicates by the Link column (CID) in Excel or Template Toolkit |
| Website, rating, or review fields are empty | Those fields are absent from the Google Maps listing | Keep the value empty or filter these rows for your use case |
When to Use A-Parser Instead of a Custom Script
A custom script can make sense when you need unusual data processing or an integration with an internal system. But citywide collection also requires grid generation, proxy management, retries, deduplication, and export formatting.
A-Parser combines these steps in one task. Save the configuration as a preset, replace the city and query list, and run it again when needed.
Ready-to-Use A-Parser Task Preset
In Task Editor, use the import button next to the Task preset field and select Import preset. Open the spoiler and paste the Base64 code into the import field.
Code:
eJx9VV1v2jAU/SuR1UrtlKJ2VTWNN5qVrRstLW23B0DIjS/Bw7Fd26EgxH/f
tRPCxzaeYl/fcz/OPXaWZAbGciVJ8yImjtqpfTBgwVnS7C+JDmvSJJlSmYCz
nGp7JiiJiabGIhK9+uQOrc3m1+CCRwzGtBCOxEviFhoQrTCJ4cwfcob7nM5H
mmZg0TCjovA+l2T1f8BEbHmCPORaWNBGzRcbgDMFHAAE72QC6RTMVpYPh5IE
jAFn+E4PF+eHQGNlcuqQ0UBODeofR+1u76aVfIuQUR0dD9HilBK2kTz9FFzC
yVsBZhFHkuYQR4Y6LjP8wozDu40jyhgGxYWeKAn4tdyhX0odZMpXiGulDOMS
LbjBkNPTMs3N/Rdc7BStHarBrmtWNn/Gg5Zkt2yr5t7H80+XV5/Rgsm5R1BB
mktiHehb+SMP84w9+k4xD0j9Z7UaDmNSEmDbgQ08OtIXjUpn9eETncGz8pzx
IKk1Bnf3SEItyJEX5EgAZXZ0xLA9798oiT45baR2tlNimdOLdlPHi+RvoSep
0NczjYy1jfI9OJi7yrhY19snR2FPMEQRsI8lhjTHVFiIicXi2xQLYfsnOBec
njLdimRkTMmWEB2Ygdi4hfjXBRcMb1hrjKDbCvhvl+5fMVZ1e9upUI/vBmso
r0RMwua6e7e+IoSpjsqwb/aKXQuec4d7m6hCYuPnMZkC6Jqve89XrgzUKara
qsz4jmiQXkSPQb5+cHGvFG+v0m6rku6DV278C16DdJONcpMt4XZQtwO5UUNL
V/HJHh878901pkqOedatbubas5DP+PJ1ZaJyLcAT5GPiS9Lb6K5lq2n6zabX
fWgSEngO168gCXf5+1MZVBuOur7y5eU4kO2cVciUCvHS6+xXY53SXXljzJ4K
gr6wL5uD42nEQDpu3UDaKZf4BhiIUrzwPB1IB+Am0fsEKZY4hIH0vlREHNNQ
6exA5sA4po+spv7UC14JlYV4guLrFE0oN1EonYqBRJz1SW1hMlAyBCjBr8qp
eZV561oF6sIcyhEv/G41rH8n9b9niWr8bR9Kq4cF2+oP371X0w==
Downloads and Next Steps
For a first run, replace the test queries with your niche and check the first 20 rows. If the columns, language, and region look correct, add more queries and run the full citywide crawl.
← Back to All Scraping Guides and Tutorials
Last edited: