
Automated Google Maps Business Scraper
About This Project
Description:
This tool is a powerful Node.js & Puppeteer-based scraper that automates the extraction of business data from Google Maps. It allows users to provide keywords, locations, or geolocation coordinates and retrieves structured business information including names, addresses, phone numbers, websites, and distances within a specified radius.
Designed for marketers, researchers, or businesses needing bulk business data, the scraper supports real-time progress updates, duplicate filtering, and invalid data handling, ensuring reliable and efficient data collection.
Functionalities:
π Keyword & Location Search β Input any keyword and a location or use live geolocation to target specific areas.
π’ Business Data Extraction β Scrapes name, phone number, website, address, and calculates distance from a given point.
π Radius Filtering β Only returns businesses within a specified radius in meters/kilometers.
π Duplicate Handling β Automatically detects and skips duplicate entries.
π« Invalid Data Filtering β Skips entries with missing or malformed addresses.
π‘ Real-Time Streaming β Uses Server-Sent Events (SSE) to stream progress and results live to the client.
π§ Geocoding & Distance Calculation β Converts locations to coordinates and calculates distances using Node-Geocoder + Geolib.
ποΈ Caching β Stores geocoding results with Node-Cache for 24 hours to speed up repeated searches.
βοΈ Error Handling & Logging β Detailed logs for debugging, automatic screenshots on scraping errors.
π₯οΈ Headless Browser Automation β Puppeteer navigates Google Maps, scrolls listings, and extracts relevant data efficiently.
Technology Stack:
Frontend / Client:
βοΈ React.js β Dynamic user interface (
maps-scraper-client/src/App.js)π HTML5 & CSS3 β Public pages (
index.html,styles.css)π₯οΈ JavaScript β Client-side logic (
script.js)π Server-Sent Events (SSE) β Real-time log & data streaming to the browser
Backend / Scraper Engine:
π’ Node.js with Express.js β API endpoints (
/api/scrape,/api/scrape-stream)π€ Puppeteer β Automated browser for Google Maps navigation & scraping
πΊοΈ Node-Geocoder + LocationIQ API β Converts typed locations into latitude/longitude
π Geolib β Distance calculations between user location and businesses
ποΈ Node-Cache β Stores geocoding results for repeated searches
π
β Handles API requests safely
Additional Tools / Features:
π Automatic scrolling & panel handling to extract all visible businesses
π Deduplication & invalid address skipping for cleaner datasets
πΈ Automatic screenshots for debugging failures
β±οΈ Configurable maximum results & timeout handling
Project Structure:
app/βββ page.tsx # Main page (orchestrates all components)
βββ api/
β βββ scrape/route.ts # SSE streaming scraper endpoint
β βββ export/
β βββ csv/route.ts # CSV export
β βββ xlsx/route.ts # Excel export
β βββ pdf/route.ts # PDF export
components/
βββ scraper-form.tsx # Search form with all filters
βββ counters.tsx # Live statistics
βββ log-terminal.tsx # Real-time logs
βββ results-table.tsx # Data display
βββ export-section.tsx # Export buttons
βββ header.tsx / footer.tsx
βββ particle-background.tsx
lib/
βββ maps-scraper.ts # Core Playwright scraper
βββ email-extractor.ts # Email extraction logic
βββ selectors-config.ts # Selector definitions & auto-update tracking
βββ rate-limit.ts # Rate limiting logic
Project Gallery
Technologies Used
Related Projects

Times Booking
Times Booking β Professional Appointment Scheduling Platform

WhatsApp Marketing Automation Tool
This is a Node.jsβbased WhatsApp marketing automation platform designed to help businesses and marketers send bulk messages and media to WhatsApp contacts efficiently.

LedgerFlow β AIβPowered Personal Finance Management Platform
LedgerFlow is a modern AIβpowered personal finance management platform designed to help individuals take control of their financial life with simplicity and intelligence