Skip to main content
/WORK / GOOGLE-MAPS-SCRAPER

Google Maps Lead Scraper

Targeted lead scraper for local service businesses.

ShippedSHIPPED2026
/ TECH
PlaywrightPythonpandasasyncio
Google Maps Lead Scraper preview
/ 01 CONTEXT

Outbound sales for local service businesses needs targeted lists. HVAC contractors in Phoenix with 20-300 Google reviews. Medspas in Scottsdale open more than three years. Plumbers in Mesa with a website but no blog.

Apollo, Outscraper, and the other structured-data vendors charge per lead and miss half the long tail. Google Maps has all of it, for free, if you can get it out.

/ 02 CONSTRAINTS

Google Maps rate-limits aggressive scraping and will serve stale or sparse results if you look like a bot.

Maps results are paginated and lazy-loaded, which breaks naive scrapers.

Results include chain locations, duplicates, and closed businesses that need filtering.

Phone numbers and websites are behind a second click per result.

/ 03 APPROACH

Playwright-driven with human-like scroll, randomized delays, and session rotation. Each search query (category + geography) triggers an exhaustive scroll to the end of results, then a per-result detail pull for phone, website, review count, and rating.

Deduplication runs on normalized business name plus address. Filters strip chains (based on a known-chains list) and closed/temporarily-closed results.

Output is a structured CSV with business name, owner name where available, phone, website, review count, star rating, and address. Drops straight into Apollo for email enrichment or into a dialer for cold calls.

/ 04 STACK

Playwright · Python · pandas · asyncio · proxy rotation · CSV export

/ 05 RESULT

Built the initial lead list for BasisWeb cold outreach. 51 verified Phoenix-metro HVAC and plumbing leads in the first batch, feeding the cold email and call pipelines that followed.