Google Maps Lead Scraper avatar
Google Maps Lead Scraper

Pricing

$30.00/month + usage

Go to Apify Store
Google Maps Lead Scraper

Google Maps Lead Scraper

Advanced Google Maps scraper that generates ready-to-use business leads. Extracts emails, phone numbers, websites, social media links, reviews, images, ratings, and structured address data for each place. Ideal for lead generation and research.

Pricing

$30.00/month + usage

Rating

0.0

(0)

Developer

Pratham Yadav

Pratham Yadav

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 hours ago

Last modified

Share

πŸ—ΊοΈ Google Maps Scraper - Complete Edition

A powerful and comprehensive Google Maps scraper built for Apify that extracts detailed business information including contact details, reviews, images, social media profiles, and more.

🌟 Features

Core Data Extraction

  • βœ… Business Name & Category
  • βœ… Ratings & Review Count
  • βœ… Complete Address (parsed into street, city, state, postal code, country)
  • βœ… Phone Numbers (formatted and raw)
  • βœ… Website URLs
  • βœ… GPS Coordinates (latitude/longitude)
  • βœ… Plus Codes
  • βœ… Price Range
  • βœ… Business Status (open, permanently closed, temporarily closed, claimed)

Advanced Features

  • πŸ“§ Email Extraction - Automatically visits business websites to find email addresses
  • πŸ“± Social Media Profiles - Extracts Facebook, Instagram, Twitter, LinkedIn, YouTube, TikTok, and Pinterest links
  • ⭐ Customer Reviews - Scrapes detailed reviews with ratings, text, dates, and reviewer info
  • πŸ–ΌοΈ Business Images - Downloads high-resolution business photos
  • πŸ• Opening Hours - Full weekly schedule
  • πŸ“‹ Additional Info - Amenities, accessibility features, payment options, etc.
  • πŸ” People Also Search - Related business suggestions

πŸš€ Quick Start

Running on Apify

  1. Create an Apify Actor

    • Go to Apify Console
    • Click "Create new Actor"
    • Upload the files or connect to your Git repository
  2. Configure Input

    {
    "keyword": "dentist",
    "location": "New York, USA",
    "maxResults": 10,
    "scrapeEmail": true,
    "scrapeSocialMedia": true
    }
  3. Run the Actor

    • Click "Build" and then "Start"
    • Results will be available in the Dataset

Local Development

# Install dependencies
npm install
# Set up Apify locally
npm install -g apify-cli
apify login
# Initialize actor
apify init
# Run locally
apify run

πŸ“‹ Input Parameters

ParameterTypeDefaultDescription
keywordstringRequiredBusiness type to search (e.g., "restaurant", "hotel")
locationstringRequiredLocation to search (e.g., "Los Angeles, CA")
maxResultsinteger10Maximum number of businesses to scrape (1-500)
headlessbooleantrueRun browser in headless mode
delayMsinteger1000Delay between actions in milliseconds (500-5000)
scrapeReviewsbooleanfalseExtract customer reviews
maxReviewsPerPlaceinteger5Max reviews per business (1-50)
scrapeImagesbooleanfalseExtract business photos
maxImagesPerPlaceinteger10Max images per business (1-50)
scrapeOpeningHoursbooleantrueExtract operating hours
scrapeAdditionalInfobooleantrueExtract amenities and features
scrapePeopleAlsoSearchbooleanfalseExtract related businesses
scrapeEmailbooleantrueExtract email from websites
scrapeSocialMediabooleantrueExtract social media profiles
languagestring"en"Google Maps language (en, es, fr, de, etc.)

πŸ“Š Output Format

{
"place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4",
"business_name": "Smile Dental Clinic",
"category": "Dentist",
"rating": 4.7,
"total_reviews": 156,
"address": "123 Main St, New York, NY 10001, United States",
"street": "123 Main St",
"city": "New York",
"state": "NY",
"postal_code": "10001",
"country_code": "US",
"phone_number": "(212) 555-0123",
"phone_number_formatted": "+12125550123",
"website_url": "https://www.smiledentalclinic.com",
"email": "info@smiledentalclinic.com",
"social_media": {
"facebook": "https://facebook.com/smiledentalclinic",
"instagram": "https://instagram.com/smiledentalclinic",
"twitter": "https://twitter.com/smiledentalnyc",
"linkedin": null,
"youtube": null,
"tiktok": null,
"pinterest": null
},
"latitude": 40.7506,
"longitude": -73.9936,
"plus_code": "8FWV+2P New York",
"price_range": "$$",
"opening_hours": [
{
"day": "Monday",
"hours": "9:00 AM - 6:00 PM"
},
{
"day": "Tuesday",
"hours": "9:00 AM - 6:00 PM"
}
],
"additional_info": {
"Accessibility": ["Wheelchair accessible entrance", "Wheelchair accessible parking lot"],
"Amenities": ["Wi-Fi available", "Free parking"],
"Payments": ["Credit cards accepted", "Insurance accepted"]
},
"people_also_search": [
"Perfect Smile Dental",
"NYC Family Dentistry"
],
"reviews": [
{
"reviewer_name": "John Doe",
"reviewer_reviews_count": 45,
"rating": 5,
"review_text": "Excellent service and very professional staff!",
"review_date": "2 weeks ago"
}
],
"images": [
"https://lh5.googleusercontent.com/p/AF1QipM...",
"https://lh5.googleusercontent.com/p/AF1QipN..."
],
"status": {
"permanently_closed": false,
"temporarily_closed": false,
"claimed": true
},
"google_maps_url": "https://www.google.com/maps/place/...",
"scraped_at": "2024-01-15T10:30:00.000Z"
}

🎯 Use Cases

Lead Generation

Perfect for building targeted business lists with complete contact information including emails and phone numbers.

Market Research

Analyze competitors, gather reviews, and understand market positioning in specific locations.

Data Enrichment

Enhance existing business databases with up-to-date information, social profiles, and customer feedback.

Local SEO

Research local businesses, their ratings, and online presence for SEO strategies.

Sales Intelligence

Build comprehensive prospect lists with multiple contact points (email, phone, social media).

⚑ Performance & Optimization

Speed Optimization

  • Resource Blocking: Automatically blocks unnecessary stylesheets, fonts, and non-essential images
  • Concurrent Requests: Efficiently handles multiple page navigations
  • Smart Waiting: Optimized wait times between actions

Rate Limiting

  • Built-in delays prevent IP blocking
  • Configurable delayMs parameter for custom throttling
  • Respectful of Google's terms of service

Memory Management

  • Efficient page cleanup after each scrape
  • Proper browser context management
  • Suitable for large-scale scraping operations

πŸ› οΈ Technical Details

Technologies Used

  • Playwright - Browser automation
  • Apify SDK - Actor framework and data storage
  • Node.js - Runtime environment

Selectors & Reliability

The scraper uses multiple fallback selectors for each data point to ensure maximum reliability even when Google Maps updates its interface.

Email & Social Media Extraction

When enabled, the scraper:

  1. Visits each business's website
  2. Scans page content for email patterns
  3. Identifies social media links using regex patterns
  4. Filters out placeholder/template emails
  5. Returns clean, normalized results

πŸ“ Best Practices

For Quick Lead Lists:

{
"maxResults": 50,
"scrapeEmail": true,
"scrapeSocialMedia": true,
"scrapeReviews": false,
"scrapeImages": false
}

For Comprehensive Analysis:

{
"maxResults": 20,
"scrapeEmail": true,
"scrapeSocialMedia": true,
"scrapeReviews": true,
"maxReviewsPerPlace": 10,
"scrapeImages": true,
"scrapeAdditionalInfo": true
}

For Maximum Speed:

{
"maxResults": 100,
"scrapeEmail": false,
"scrapeSocialMedia": false,
"scrapeReviews": false,
"scrapeImages": false,
"scrapeOpeningHours": false,
"scrapeAdditionalInfo": false
}

⚠️ Limitations & Considerations

Google Maps Terms of Service

This scraper is provided for educational purposes. Always review and comply with Google's Terms of Service and robots.txt when scraping data.

Rate Limits

  • Google may implement rate limiting for excessive requests
  • Use appropriate delays (delayMs) to avoid blocks
  • Consider using residential proxies for large-scale scraping

Data Accuracy

  • Email and social media extraction depends on website accessibility
  • Some businesses may not have websites or complete information
  • Closed businesses may have outdated data

πŸ”§ Troubleshooting

Common Issues

No results found:

  • Check if search query is too specific
  • Verify location is correctly formatted
  • Try increasing maxResults

Missing emails/social media:

  • Ensure websites are accessible
  • Some sites may block automated access
  • Enable longer timeouts for slow websites

Timeout errors:

  • Increase delayMs parameter
  • Reduce maxResults per run
  • Check internet connection stability

πŸ“ˆ Scaling Tips

  1. Batch Processing: Split large scraping jobs into smaller batches
  2. Proxy Rotation: Use Apify's proxy services for IP rotation
  3. Metamorph: Chain multiple runs for different locations
  4. Dataset Management: Regularly export and clean datasets

🀝 Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

πŸ“„ License

This project is licensed under the Apache-2.0 License.

πŸ™ Support

For issues, questions, or feature requests:

πŸ”— Resources


Disclaimer: This tool is for educational and research purposes. Users are responsible for ensuring their use complies with Google's Terms of Service and applicable laws. The authors assume no liability for misuse of this software.