Google Maps Business Scraper
Pricing
$20.00/month + usage
Google Maps Business Scraper
Scrape business listings from Google Maps using multiple keywords and multiple locations in a single run. Extracts business name, address, phone number, website, category, rating, and review count through Playwright-based browser automation.
Pricing
$20.00/month + usage
Rating
5.0
(2)
Developer

Techionik
Actor stats
1
Bookmarked
6
Total users
3
Monthly active users
4 days ago
Last modified
Categories
Share
Overview
Google Maps Business Scraper is an Apify Actor built using PlaywrightCrawler that extracts business listings from Google Maps based on multiple keywords and multiple locations.
The actor automates Google Maps search, scrolls dynamically loaded results, opens individual business detail pages, and extracts structured business information into an Apify Dataset.
This actor is suitable for:
- Lead generation
- Local business research
- Market analysis
- Data enrichment workflows
Data Extracted
For each keyword and location combination, the actor extracts:
- Business name
- Address
- Phone number
- Website
- Category
- Rating
- Number of reviews
All extracted data is stored in the default Apify Dataset and can be downloaded in JSON, CSV, Excel, or accessed via API.
How the Actor Works
- Reads keywords and locations from the Apify input
- Generates a Google Maps search URL for each keyword-location pair
- Uses PlaywrightCrawler to load Google Maps results
- Scrolls the results feed to load additional businesses
- Collects unique business place links
- Opens each business detail page
- Extracts business information
- Deduplicates results per keyword-location batch
- Stops automatically when the maximum result limit is reached
Input Configuration
Input fields accepted by the actor:
-
keywords (array of strings, required) Example: cafe, dentist, plumber
-
locations (array of strings, required) Example: New York, Los Angeles
-
maxResultsPerSearch (integer, optional) Default value: 50
Example input structure:
{ "keywords": ["cafe", "dentist"], "locations": ["New York", "Los Angeles"], "maxResultsPerSearch": 50 }
Output
Each dataset item contains the following structure:
{ "name": "Business Name", "address": "Full Address", "phone": "+1 234 567 890", "website": "https://example.com", "category": "Business Category", "rating": "4.5", "reviews": "120" }
The dataset can be downloaded as:
- JSON
- CSV
- Excel
- XML
Dataset View
The dataset includes a preconfigured table overview displaying:
- Business Name
- Address
- Phone Number
- Website
- Category
- Rating
- Number of Reviews
This allows easy inspection and export directly from the Apify Console.
Key Learning Goals
This actor demonstrates:
- Using PlaywrightCrawler with Apify Actors
- Browser automation fundamentals
- Handling Google Maps dynamic content
- Scrolling and loading lazy-loaded results
- Opening detail pages for structured data extraction
- Deduplication of scraped business listings
- Graceful handling of missing or blocked data
Limitations and Notes
- Google Maps may apply rate limits or blocking
- Some businesses may not provide phone numbers or websites
- Extracted data depends on Google Maps layout and availability
- The actor runs using headless Chromium for performance
Tech Stack
- Node.js
- Apify SDK v3
- Crawlee
- Playwright
Resources
- Apify Platform Documentation: https://docs.apify.com/platform
- Crawlee PlaywrightCrawler Documentation: https://crawlee.dev
- Scraping Single-Page Applications: https://blog.apify.com/scraping-single-page-applications-with-playwright/
- Apify Academy (Node.js): https://docs.apify.com/academy/node-js
Disclaimer
This actor is intended for educational and research purposes only. Always ensure compliance with Google Maps terms of service and local regulations when collecting data.