Google Maps Business Scraper avatar

Google Maps Business Scraper

Pricing

$20.00/month + usage

Go to Apify Store
Google Maps Business Scraper

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

Techionik

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

3

Monthly active users

4 days ago

Last modified

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

  1. Reads keywords and locations from the Apify input
  2. Generates a Google Maps search URL for each keyword-location pair
  3. Uses PlaywrightCrawler to load Google Maps results
  4. Scrolls the results feed to load additional businesses
  5. Collects unique business place links
  6. Opens each business detail page
  7. Extracts business information
  8. Deduplicates results per keyword-location batch
  9. 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


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.