Professional Google Maps business lead generation system with Playwright, FastAPI, and smart proxy management.
- ✅ Playwright-based scraping - Reliable, modern browser automation
- ✅ Smart proxy management - Auto-detection, rotation, health tracking
- ✅ FastAPI dashboard - Real-time updates and job management
- ✅ CSV/PDF export - Professional reports with filtering
- ✅ Job queue system - Manage multiple scraping jobs
- ✅ SQLite database - Persistent storage with quality scoring
- ✅ Environment-based config - Type-safe configuration with
.env
# Create virtual environment
uv venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac
# Install packages
uv pip install -e ".[dev]"# Copy environment template
copy .env.example .env # Windows
cp .env.example .env # Linux/Mac
# Edit .env with your settings (optional)python app.pyOpen http://localhost:8000 in your browser
- Documentation Index - All documentation
- Dashboard Guide - Using the web interface
- CSV Import Guide - Bulk job import
- PDF Generation Guide - Export reports
- Architecture - System design
- Deployment Checklist - Production deployment
All configuration is managed through the .env file. Key settings:
# Database
DATABASE_PATH=business_leads.db
# Scraping
MAX_RESULTS_PER_JOB=50
HEADLESS_MODE=false
# Proxy (optional - auto-detected)
PROXIES_FILE=proxies.txt
# Server
HOST=0.0.0.0
PORT=8000See .env.example for all available options.
The scraper includes smart proxy management:
- Auto-detection - Checks for
proxies.txtautomatically - Works with or without proxies - No code changes needed
- Rotation & health tracking - Skips failed proxies
- Multiple formats supported -
ip:port:user:pass,http://user:pass@ip:port
To use proxies:
- Create
proxies.txtin project root - Add proxies (one per line)
- Run scraper - proxies automatically detected!
To disable proxies:
- Delete or rename
proxies.txt
See Smart Proxy Guide for details.
business-scraper/
├── config.py # Configuration management
├── proxy_manager.py # Smart proxy system
├── database_manager.py # Database operations
├── google_maps_scraper.py # Main scraper
├── app.py # FastAPI application
├── .env # Environment configuration
├── .env.example # Configuration template
├── docs/ # Documentation
│ ├── guides/ # User guides
│ ├── technical/ # Technical docs
│ └── deployment/ # Deployment guides
└── templates/ # Web templates
# Run tests
pytest
# Format code
black .
# Lint code
ruff check .
# Type check
mypy .- Backend: FastAPI, Pydantic
- Scraping: Playwright
- Database: SQLite
- Export: Pandas, ReportLab
- Config: Pydantic Settings, python-dotenv
MIT License - See LICENSE file for details
Contributions welcome! Please read the documentation first.
Professional product ready for production use 🚀