Skip to content

๐Ÿš€ Extract business leads from Google Maps automatically - 100+ results per search, with emails & phone numbers

License

Notifications You must be signed in to change notification settings

parnika-sa/Google-Maps-Lead-Scraper-Pro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ Google Maps Lead Scraper Pro

Extract Business Leads from Google Maps Automatically ๐Ÿš€

A professional automation tool to scrape business data (name, phone, website, emails) from Google Maps with a beautiful web interface.

Python Flask License Tests


๐ŸŽฏ What This Does (Ek Sentence Mein)

Problem: Manual data collection = time-consuming, error-prone
Solution: This tool automatically extracts 100+ business leads from Google Maps in minutes


โšก Use Cases

โœ… Business Development - Find prospects automatically
โœ… Sales Lead Generation - Build targeted contact lists
โœ… Market Research - Analyze competitor presence
โœ… Real Estate - Find property-related businesses
โœ… Franchise Research - Compare business density by area


๐Ÿš€ Quick Start (3 Steps)

Step 1: Install

pip install -r requirements.txt
playwright install chromium

Step 2: Run

python app.py

Step 3: Open Browser

http://localhost:5000

Then:

  1. Enter business type (e.g., "Restaurant", "Plumber", "Cafe")
  2. Enter city (e.g., "New York", "Mumbai", "London")
  3. Click "Start Scraping"
  4. Download CSV or JSON

That's it! โœ…


๐Ÿงช Verify Installation

Run the test suite:

python test_setup.py

Output:

โœ… All tests passed! Ready to run.

๐Ÿ“Š What You Get

Field Example
Business Name Starbucks Coffee
Address 123 Main St, New York, NY 10001
Phone (212) 555-0123
Website https://starbucks.com
Emails manager@starbucks.com

Sample Output (CSV)

name,address,phone,website,emails
Starbucks,"123 Main St, New York","(212) 555-0123","https://starbucks.com","manager@starbucks.com"
Blue Bottle Coffee,"456 Park Ave, New York","(212) 555-0456","https://bluebottlecoffee.com","contact@bluebottlecoffee.com"
Joe Coffee Company,"789 Broadway, New York","(212) 555-0789","https://joecoffee.com","N/A"

Sample Output (JSON)

[
  {
    "name": "Starbucks",
    "address": "123 Main St, New York",
    "phone": "(212) 555-0123",
    "website": "https://starbucks.com",
    "emails": "manager@starbucks.com"
  }
]

๐ŸŽฎ Usage Examples

Example 1: Find All Pizza Places in NYC

Keyword: Pizza
City: New York
Max Results: Leave empty (get all)
Timeout: 15 minutes
Skip Emails: OFF (get emails too)
Result: 150+ pizza restaurants with phone & email

Example 2: Quick Test (5 Restaurants)

Keyword: Restaurant
City: Los Angeles
Max Results: 5
Timeout: 5 minutes
Skip Emails: ON (faster)
Result: Quick list in ~3 minutes

Example 3: B2B Lead Generation

Keyword: Digital Marketing Agency
City: San Francisco
Max Results: 100
Timeout: 20 minutes
Skip Emails: OFF
Result: 100 agencies with contact info

โš™๏ธ Features

Web Interface

โœ… No coding needed - just click and fill
โœ… Real-time progress tracking
โœ… Beautiful dashboard with stats
โœ… Mobile responsive

Smart Scraping

โœ… Automatic retry on errors
โœ… Smart rate limiting (won't get banned)
โœ… Email validation (no false positives)
โœ… Duplicate removal

Professional Output

โœ… CSV format (for Excel/Sheets)
โœ… JSON format (for APIs)
โœ… Detailed logs for debugging
โœ… Resume capability (don't lose progress)


๐Ÿ“‹ Settings Explained

Setting What It Does
Keyword Type of business (e.g., "Cafe", "Gym", "Lawyer")
City Location to search (e.g., "New York", "Mumbai")
Max Results Stop after N businesses (leave empty for all)
Timeout Max time to run (5-30 minutes)
Skip Emails Faster if you don't need emails
Headless Mode Faster (no visible browser)

๐Ÿ“ˆ Performance

Scenario Results Time
Small city search 30-50 3-5 min
Medium city 100-150 10-15 min
Large city (no emails) 200+ 15-20 min
Large city (with emails) 100-150 20-30 min

๐Ÿ› ๏ธ How It Works

  1. Search โ†’ Opens Google Maps & searches your keyword
  2. Scroll โ†’ Loads all available results (not just first page)
  3. Extract โ†’ Gets name, phone, website, address
  4. Email Mine โ†’ Visits websites & extracts emails (optional)
  5. Deduplicate โ†’ Removes duplicates & validates data
  6. Export โ†’ Saves as CSV & JSON

See detailed workflow: HOW_IT_WORKS.md


๐Ÿ“ Output Files

output/
โ”œโ”€โ”€ businesses.csv      โ† Open in Excel
โ””โ”€โ”€ businesses.json     โ† Use in APIs

logs/
โ””โ”€โ”€ scraper_*.log       โ† Debugging info

๐Ÿ’ป Command Line (Advanced)

If you prefer terminal:

# Basic search
python maps_scraper.py --keyword "Restaurant" --city "New York"

# With limits
python maps_scraper.py --keyword "Cafe" --city "London" --max-results 50

# Fast mode (no emails)
python maps_scraper.py --keyword "Gym" --city "Paris" --no-emails --headless

# Resume from checkpoint
python maps_scraper.py --keyword "Plumber" --city "Mumbai" --resume --timeout 900

โšก Tips for Best Results

  1. Start with 10 results โ†’ Test before big scrape
  2. Use headless mode โ†’ 2-3x faster (default: ON)
  3. Skip emails first โ†’ Get all businesses, extract emails later
  4. Specific keywords work better โ†’ "Italian Restaurant" > "Restaurant"
  5. Run at off-hours โ†’ Less chance of getting blocked

โš ๏ธ Important

  • โœ… Legal for personal/business use
  • โœ… Respects rate limits (built-in delays)
  • โš ๏ธ Don't scrape too aggressively (may get IP blocked)
  • ๐Ÿ’ก Consider proxies for large-scale scraping

๐Ÿ› Troubleshooting

Problem Solution
No results found Try simpler keyword or different city
Very slow Enable "Skip Emails", reduce timeout
Getting blocked Wait 2-3 hours, try different city
Crashes midway Use "Resume" feature to continue

See HOW_IT_WORKS.md for complete guide.


๐Ÿ“ฆ Requirements

  • Python 3.8+
  • Flask 3.0+
  • Playwright (Chromium browser)

๐Ÿš€ Installation (Detailed)

1. Clone Repository

git clone https://github.com/parnika-sa/maps.git
cd maps

2. Create Virtual Environment

python -m venv venv
venv\Scripts\activate

3. Install Dependencies

pip install -r requirements.txt
playwright install chromium

4. Verify Setup

python test_setup.py

5. Run

python app.py

6. Open Browser

http://localhost:5000

Done! ๐ŸŽ‰


๐Ÿค Contributing

Want to improve this? Check CONTRIBUTING.md for guidelines.


๐Ÿ“ License

MIT License - See LICENSE for details

Free to use for personal & commercial projects


๐Ÿ“ž Support

Questions? Check HOW_IT_WORKS.md for detailed documentation.


โญ If This Helps, Star It!

Your support motivates me to improve this tool ๐Ÿ™


Made with โค๏ธ by Ankit Maurya

About

๐Ÿš€ Extract business leads from Google Maps automatically - 100+ results per search, with emails & phone numbers

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published