Google Maps Scraper avatar
Google Maps Scraper

Under maintenance

Pricing

$4.00 / 1,000 results

Go to Store
Google Maps Scraper

Google Maps Scraper

Under maintenance

Developed by

Omer Yilmaz

Omer Yilmaz

Maintained by Community

Quickly extract data from hundreds of locations. Scrape Google Maps using keywords, categories, locations, or direct URLs. Collect business names, contact details, addresses, opening hours, popular times, menus, pricing info, and more.

5.0 (1)

Pricing

$4.00 / 1,000 results

0

Total users

3

Monthly users

3

Runs succeeded

>99%

Last modified

2 days ago

Google Maps Extractor Advanced

🏎 Fast and powerful Google Maps scraper that extracts comprehensive place details including popular times, reviews, and business information.

πŸ”Ž What does this Google Maps Extractor do?

This advanced Google Maps scraper is designed to overcome the limitations of the standard Google Maps API. With this tool, you can:

πŸ— Scrape Google places by search query - Extract places using keywords and categories
πŸ› Search by location - Target specific cities, states, postal codes, or custom areas
πŸ“ Multiple search terms - Process multiple keywords simultaneously
🌎 Multi-language support - Scrape in different languages
πŸš€ High-speed extraction - Optimized for performance with concurrent processing
⭐ Advanced filtering - Filter by rating, categories, website availability, and more
πŸ“Š Rich data extraction - Get detailed information including popular times, reviews, and atmosphere data

πŸ“ What data does this extractor provide?

This Google Maps Extractor extracts comprehensive data including:

FieldDescription
🏒 place_idUnique Google place identifier
πŸ“ titleBusiness/place name
🏷️ categoryNamePrimary category
πŸ“ addressFull address
🌍 locationLatitude and longitude coordinates
⭐ totalScoreAverage rating
πŸ“Š reviewsCountNumber of reviews
πŸ“± phonePhone number
🌐 websiteWebsite URL
🏷️ categoriesAll place categories
πŸ•’ openingHoursOperating hours
⌚ populartimesPopular times data (when enabled)
πŸ“ reviewsCustomer reviews (when enabled)
🏒 atmosphereDataAmbiance and atmosphere information
πŸ“… scrapedAtExtraction timestamp

πŸš€ How to use

Input Parameters

{
"searchStringsArray": ["restaurant", "cafe"],
"locationQuery": "New York, USA",
"maxCrawledPlacesPerSearch": 100,
"language": "en",
"countryCode": "US",
"placeMinimumStars": "three",
"skipClosedPlaces": false,
"categoryFilterWords": ["restaurant", "food"],
"website": "allPlaces",
"includePopularTimes": true,
"includeReviews": false,
"searchMatching": "all"
}

Required Parameters

  • searchStringsArray - Array of search terms (e.g., ["restaurant", "hotel"])
  • locationQuery - Location to search in (e.g., "New York, USA", "downtown, San Francisco")

Optional Parameters

  • maxCrawledPlacesPerSearch - Maximum places per search term (1-3000, default: 100)
  • language - Language code (en, tr, es, fr, de, etc., default: "en")
  • countryCode - ISO country code (US, TR, GB, etc., default: "US")
  • city - Specific city name
  • state - State/province/region
  • postalCode - Postal/ZIP code
  • placeMinimumStars - Minimum rating filter ("", "one", "two", "three", "four", "five")
  • skipClosedPlaces - Skip permanently/temporarily closed places (default: false)
  • categoryFilterWords - Filter by specific categories
  • searchMatching - Match mode ("all" or "any", default: "all")
  • website - Website filter ("allPlaces", "onlyWithWebsite", "onlyWithoutWebsite")
  • includePopularTimes - Include crowd/popular times data (default: true)
  • includeReviews - Include customer reviews (default: false)
  • maxReviews - Max reviews per place when includeReviews=true (default: 5)
  • customGeolocation - Custom latitude and longitude coordinates for precise location targeting
    • latitude - Latitude coordinate (e.g., 39.8564127)
    • longitude - Longitude coordinate (e.g., 32.7405291)
  • debugMode - Enable detailed logging (default: false)

πŸ’‘ Example Usage

{
"searchStringsArray": ["restaurant"],
"locationQuery": "Manhattan, New York",
"maxCrawledPlacesPerSearch": 50
}

Advanced Multi-Category Search with Custom Location

{
"searchStringsArray": ["coffee"],
"locationQuery": "beytepe, ankara",
"city": "Ankara",
"state": "Γ‡ankaya",
"countryCode": "TR",
"customGeolocation": {
"latitude": 39.8564127,
"longitude": 32.7405291
},
"language": "en",
"placeMinimumStars": "four",
"categoryFilterWords": ["accountant", "airport"],
"skipClosedPlaces": false,
"website": "allPlaces",
"maxCrawledPlacesPerSearch": 57
}

High-Quality Places Only

{
"searchStringsArray": ["hotel"],
"locationQuery": "Istanbul, Turkey",
"placeMinimumStars": "four",
"skipClosedPlaces": true,
"website": "onlyWithWebsite",
"includeReviews": true,
"maxReviews": 10,
"maxCrawledPlacesPerSearch": 200
}
{
"searchStringsArray": ["cafe", "restaurant"],
"locationQuery": "Beytepe University Campus",
"customGeolocation": {
"latitude": 39.8564127,
"longitude": 32.7405291
},
"countryCode": "TR",
"language": "en",
"maxCrawledPlacesPerSearch": 50,
"categoryFilterWords": ["restaurant", "cafe"],
"debugMode": true
}

πŸ“Š Output Format

The actor outputs a dataset with the following structure:

[
{
"place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"title": "Restaurant Name",
"categoryName": "Restaurant",
"address": "123 Main St, New York, NY 10001",
"location": {
"lat": 40.7128,
"lng": -74.0060
},
"totalScore": 4.5,
"reviewsCount": 150,
"phone": "(212) 555-0123",
"website": "https://restaurant.com",
"categories": ["restaurant", "italian_restaurant"],
"translatedCategories": ["Restaurant", "Italian Restaurant"],
"openingHours": [
{
"day": "Monday",
"hours": "11:00 AM - 10:00 PM"
}
],
"populartimes": [
{
"name": "Monday",
"data": [0, 0, 0, 0, 0, 0, 0, 0, 10, 20, 30, 45, 60, 55, 40, 35, 45, 65, 80, 75, 50, 25, 10, 5]
}
],
"searchString": "restaurant",
"rank": 1,
"permanentlyClosed": false,
"temporarilyClosed": false,
"scrapedAt": "2024-01-15T10:30:00.000Z"
}
]

πŸ›  Performance Optimizations

This actor includes several performance improvements over standard scrapers:

  • Concurrent Processing - Multiple search terms processed efficiently
  • Smart Rate Limiting - Prevents blocking while maintaining speed
  • Duplicate Prevention - Automatic deduplication by place_id
  • Memory Efficient - Optimized data structures and processing
  • Error Handling - Robust error recovery and logging
  • Configurable Limits - Prevent infinite loops and control resource usage

πŸ”§ Technical Features

  • Async/Await Architecture - Modern Python async programming
  • Modular Design - Clean, maintainable code structure
  • Type Hints - Full typing support for better development
  • Comprehensive Logging - Detailed logs for debugging
  • Input Validation - Robust parameter validation
  • Flexible Location Handling - Multiple location specification methods

πŸ“ˆ Use Cases

  • Market Research - Analyze competitors and market density
  • Business Intelligence - Gather business data for analysis
  • Location Analysis - Study geographic distribution of businesses
  • Lead Generation - Find potential business contacts
  • Travel Planning - Discover places and attractions
  • Academic Research - Collect data for studies and research

🚨 Rate Limiting & Best Practices

  • The actor implements smart rate limiting to avoid blocks
  • Use reasonable maxCrawledPlacesPerSearch values (100-500 recommended)
  • Space out multiple runs to avoid overwhelming Google's servers
  • Use specific location queries for better performance
  • Consider using categoryFilterWords to refine results

πŸ’° Cost Efficiency

This actor is optimized for cost-efficiency:

  • Fast extraction means lower compute costs
  • Efficient duplicate removal saves processing
  • Configurable limits prevent runaway costs
  • Smart error handling prevents wasted runs

πŸ”— API Integration

Use with Apify API for programmatic access:

from apify_client import ApifyClient
client = ApifyClient("your-api-token")
run_input = {
"searchStringsArray": ["restaurant"],
"locationQuery": "New York, USA",
"maxCrawledPlacesPerSearch": 100
}
run = client.actor("your-actor-id").call(run_input=run_input)
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items

πŸ“ž Support

For questions, feature requests, or issues:

  • Check the input parameters and examples above
  • Enable debugMode for detailed logging
  • Review the actor logs for error messages
  • Ensure your search terms and location are specific enough

This actor provides powerful Google Maps data extraction capabilities while respecting rate limits and service terms.