Google Maps Scraper avatar
Google Maps Scraper

Pricing

Pay per usage

Go to Store
Google Maps Scraper

Google Maps Scraper

Developed by

franck

franck

Maintained by Community

📍 Scrape Google Maps listings by keyword & location. 🗺️ Get name, rating, reviews, address, phone, site, URL & Place ID. ⚙️ Optional details. ⚡ Fast, proxy-ready, Excel export. 🎯 Ideal for lead gen, market research & local SEO.

0.0 (0)

Pricing

Pay per usage

0

Total users

1

Monthly users

1

Last modified

2 days ago

Google Maps Places Scraper

🗺️ Powerful Google Maps scraper that extracts business information from Google Maps search results with intelligent scrolling and optional detailed data collection.

✨ Features

  • 🔍 Multi-term search: Search for multiple keywords in a single run
  • 📍 Location-based: Target specific cities, regions, or countries
  • 🌐 Multi-language support: Scrape in any language (French, English, Spanish, etc.)
  • 🎯 Smart scrolling: Automatically loads more results with intelligent stopping mechanism
  • Speed optimization: Optional detailed data collection (phone & website) for faster runs
  • 🆔 Google Place ID extraction: Includes unique Google Place IDs for each business
  • 📊 Excel export: Results automatically saved as Excel file
  • 🔒 Proxy support: Compatible with Apify proxy for reliable scraping
  • 📈 Scalable: Handle hundreds of results efficiently

🚀 Quick Start

Input Parameters

{
"searchTerms": ["restaurant", "café", "boulangerie"],
"location": "Paris, France",
"maxCrawledPlacesPerSearch": 50,
"language": "fr",
"includeDetails": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Basic Usage

  1. Simple restaurant search:
{
"searchTerms": ["restaurant"],
"location": "Lyon, France",
"maxCrawledPlacesPerSearch": 20
}
  1. Multi-category business search with details:
{
"searchTerms": ["dentist", "pharmacy", "bakery"],
"location": "Marseille, France",
"maxCrawledPlacesPerSearch": 30,
"includeDetails": true,
"language": "fr"
}
  1. Fast bulk scraping (no phone/website):
{
"searchTerms": ["hotel", "restaurant", "shop"],
"location": "Nice, France",
"maxCrawledPlacesPerSearch": 100,
"includeDetails": false
}

📋 Input Parameters

ParameterTypeRequiredDefaultDescription
searchTermsArray[String]["restaurant"]List of search terms (e.g., "restaurant", "hotel", "pharmacy")
locationString"Paris"Target location (city, region, country)
maxCrawledPlacesPerSearchNumber20Maximum results per search term
languageString"fr"Language code (fr, en, es, de, it, etc.)
includeDetailsBooleanfalseCollect phone numbers and websites (slower but more complete)
proxyConfigurationObjectnullProxy settings for reliable scraping

🔧 Parameter Details

  • searchTerms: Can include business types, services, or specific names
  • location: Be specific for better results (e.g., "Paris 15ème" vs "Paris")
  • includeDetails:
    • false: Fast scraping, basic info only
    • true: Complete data with phone & website (2-3x slower)
  • language: Affects Google Maps interface language and result formatting

📊 Output Data Structure

Each scraped place contains:

{
"Place name": "Le Petit Bistrot",
"Total Score": 4.5,
"Reviews Count": 123,
"Street": "15 Rue de la Paix",
"City": "Paris",
"Country Code": "FR",
"Website": "https://lepetitbistrot.fr",
"Phone": "+33 1 42 86 17 20",
"Category Name": "Restaurant français",
"URL": "https://www.google.com/maps/place/...",
"Place ID": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"Search Term": "restaurant",
"Address": "15 Rue de la Paix, 75002 Paris"
}

📈 Data Quality

  • Place ID: 95%+ success rate (unique Google identifier)
  • Basic info: 99%+ (name, address, rating, category)
  • Phone numbers: 60-80% when includeDetails: true
  • Websites: 40-60% when includeDetails: true

🛠️ Advanced Usage

API Integration

// Using Apify API
const { ApifyApi } = require('apify-client');
const client = new ApifyApi({
token: 'YOUR_API_TOKEN'
});
const input = {
searchTerms: ['restaurant', 'café'],
location: 'Toulouse, France',
maxCrawledPlacesPerSearch: 50,
includeDetails: true,
language: 'fr'
};
const run = await client.actor('your-actor-id').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Bulk Processing

For large-scale scraping:

  1. Set includeDetails: false for initial data collection
  2. Use extracted Place ID for detailed information via Google Places API
  3. Process multiple locations in parallel runs

🎯 Best Practices

Performance Optimization

  • Fast mode: Use includeDetails: false for quick data collection
  • Batch processing: Group similar search terms together
  • Location specificity: Use precise locations for better targeting

Rate Limiting

  • Built-in delays between requests
  • Automatic retry mechanism
  • Proxy rotation support

Data Quality

  • Duplicate detection by business name
  • Address standardization
  • Rating and review count validation

🔍 Use Cases

🏢 Business Intelligence

  • Market research and competitor analysis
  • Local business directory creation
  • Lead generation for B2B services

📊 Data Analysis

  • Restaurant rating analysis by location
  • Business density mapping
  • Market penetration studies

🎯 Marketing

  • Local SEO competitor research
  • Advertising target identification
  • Market opportunity assessment

📁 Output Formats

Dataset Items

Each result is pushed to Apify dataset as JSON object

Excel Export

  • Automatic Excel file generation (results.xlsx)
  • Organized columns with proper formatting
  • Ready for analysis in spreadsheet software

CSV Export

  • Available through Apify platform
  • Compatible with most data analysis tools

⚡ Performance Metrics

MetricValue
Speed (basic)~50-100 places/minute
Speed (detailed)~20-30 places/minute
Success Rate95%+
Memory Usage~200MB average
Timeout30 minutes max

🛡️ Reliability Features

  • Smart scrolling: Stops when no new results are found
  • Error handling: Continues on individual place failures
  • Browser management: Automatic restart on crashes
  • Proxy support: Reduces blocking and improves reliability

🌍 Global Coverage

Works worldwide with local Google Maps versions:

  • 🇫🇷 France (google.fr)
  • 🇺🇸 United States (google.com)
  • 🇬🇧 United Kingdom (google.co.uk)
  • 🇩🇪 Germany (google.de)
  • 🇪🇸 Spain (google.es)
  • 🇮🇹 Italy (google.it)
  • And 190+ other countries

🔧 Technical Details

Built With

  • Playwright: Modern browser automation
  • Apify SDK: Scalable web scraping platform
  • Pandas: Data processing and Excel export
  • Smart algorithms: Intelligent result detection

Browser Configuration

  • Stealth mode to avoid detection
  • Optimized for Google Maps
  • Mobile and desktop compatibility
  • Custom headers and user agents

📞 Support & Updates

  • 🐛 Bug reports: Use GitHub issues or Apify support
  • 🔄 Updates: Regular improvements and new features
  • 📚 Documentation: Always up-to-date with latest changes
  • 💬 Community: Active support in Apify Discord
  • 📬 Contact: franck.friard@backboneagency.fr

📄 License & Fair Use

This scraper is designed for legitimate business intelligence and research purposes. Please:

  • Respect robots.txt and terms of service
  • Use reasonable request rates
  • Consider Google Places API for commercial applications
  • Ensure compliance with local data protection laws

Made with ❤️ for the Apify community

Ready to start scraping? Click "Try for FREE" above! 🚀