Google Maps Business Scraper
Automated business data extraction via Google Places API: search by category and location, extract name, address, phone, website, rating, reviews, and coordinates.
Step 01
Problem
Getting contact data from local businesses for prospecting requires searching one by one on Google Maps and manually copying information. It's tedious, slow and error-prone.
Step 02
Context and constraints
Built a Python scraper using the Google Places API (Text Search + Place Details) that searches for businesses by category and province, extracts structured data, and stores it in a database for prospecting and enrichment.
Role: Backend developer: integration with Google Places API, data extraction pipeline, pagination handling, and structured export to CSV/database.
Step 03
Key decisions
- Google Places API over browser scraping: more reliable, no anti-bot detection, official data access.
- Text Search API for initial discovery by category + location query.
- Place Details API for deep extraction: website, phone, reviews, coordinates.
- Pagination handling via next_page_token for complete result coverage.
- SQLite database for local storage with schema for business data and enrichment.
- Integration with Google Sheets for direct export to campaign contact lists.
- Separate enrichment module using DeepSeek AI for data quality enhancement.
Step 04
Outcomes
- Automated extraction of businesses per search with structured data.
- Integration with prospecting pipeline: scraper → enrichment → Sheets → email campaigns.
- Ready for local prospecting campaigns, competitive analysis or commercial databases.
Metrics
- API-based: Google Places Text Search + Place Details.
- Fields extracted: name, address, phone, website, rating, reviews (text), coordinates, place ID.
- Pagination support via next_page_token for complete result sets.
- SQLite storage with database schema.
- Push to Google Sheets integration for campaign workflows.
- Enrichment pipeline using DeepSeek AI for data enhancement.
Step 05
Learnings and next improvement
Google Maps Business Scraper
Automated business data extraction from Google Maps using the official Places API.
Tech stack
- Language: Python 3.11+
- API: Google Places API (Text Search + Place Details)
- Storage: SQLite + Google Sheets integration
- Enrichment: DeepSeek AI for data quality
Data flow
Category + Location → [Google Places Text Search] → [Place Details] → SQLite
↓
[DeepSeek enrichment]
↓
[Google Sheets] → Campaigns
Limitations
- Google Places API has query limits based on API key tier
- Not all businesses return complete data (some lack phone, website, or reviews)
- Free tier has limited quota (consider billing account for production use)
Related projects
- Gmail Email Campaign — uses this data for outreach
- LinkedIn Lead Scraper — complementary prospecting tool
Step 06
Visual resources
