If you have ever tried extracting local business leads from Google Maps for outreach, sales, or data research, you know the struggle:
- Official Google Places API is expensive and strictly rate-limited for bulk queries.
- Third-party SaaS services charge anywhere from $49 to $199/month for lead credits.
- Existing Open-Source tools often come with heavy friction: requiring Docker Desktop background daemons, complex Python virtual environments, or outdated Puppeteer scripts that break on Google's modern dynamic feeds.
I wanted something instant, lightweight, and local-first — so I built ziara-lead-scrapper, an open-source CLI built with Node.js, TypeScript, and Playwright.
💡 The Problem with Scraping Google Maps
Standard HTTP scrapers (like Axios, Cheerio, or BeautifulSoup) instantly fail on Google Maps because:
- Results are dynamically injected via client-side JavaScript.
- Dynamic infinite scroll containers inside an internal
divlayout. - Regional cookie consent banners that block page loads.
- Strict anti-automation checks on headless browsers.
🛠️ How It Works Under the Hood
1. Zero-Friction Browser Orchestration
Instead of forcing users to install Docker or configure external binaries, the tool leverages Playwright Chromium.
If a standalone Chromium binary isn't detected, it automatically falls back to your local Google Chrome or Microsoft Edge installation.
2. Built-in Anti-Bot Stealth
- Automatically masks
navigator.webdriver. - Realistic scroll pacing and micro-delays mimicking human interaction.
- User-agent rotation and automated cookie consent dismissal.
3. Automated Lead Enrichment (--enrich)
Basic business info (Phone, Address, Rating, Reviews, Website) is good, but contact emails and social profiles are what turn raw data into actionable leads.
When you pass the --enrich flag, the scraper:
- Concurrently visits each scraped business website in the background.
- Extracts public contact emails.
- Pulls company social media handles (LinkedIn, Twitter/X, Instagram, Facebook).
- Sanitizes Unicode artifacts and Google icon glyphs (
\uE000-\uF8FF). - Exports everything cleanly into CSV or JSON.
🚀 Quickstart: Try It in 60 Seconds
You only need Node.js 18+ installed:
bash
# 1. Clone the repository
git clone https://github.com/Aquil1401/ziara-lead-scrapper.git
cd ziara-lead-scrapper
# 2. Install dependencies & build
npm install
npm run build
# 3. Run a test search
node dist/bin/index.js -q "Coffee Shops in Austin" -l 20 --enrich
Top comments (0)