A premium, high-performance desktop application designed for automated lead generation, business intelligence, and contact extraction directly from Google Maps. Built with a modern, elegant CustomTkinter dark-mode UI and backed by a robust, secure Google Sheets-integrated licensing & hardware-lock system (HWID).
- ⚡ Automated Scraper Engine: High-speed lead extraction including business name, address, phone number, website, rating, review count, and coordinate data.
- 🎨 Premium Glassmorphism UI: Built using modern Python CustomTkinter styling with micro-animations, real-time logs, and smooth transitions.
- 📊 Live Data Preview: View harvested leads in an interactive data grid inside the app before exporting.
- 💾 Multi-Format Export: Export your business leads to professional Excel (
.xlsx) or CSV files with a single click. - 🔑 Sheets-Backed License Manager: Zero-server architecture leveraging Google Sheets as a secure, real-time database to manage client activation keys, expiration dates, and key revoking.
- 🔒 Anti-Piracy Hardware Lock (HWID): Automatically binds generated license keys to the client's specific PC motherboard, preventing unauthorized key sharing.
- 🛠️ Standalone Admin Panel: Comes with a dedicated administrative desktop app to generate custom keys (1 day to lifetime), manage clients, and revoke licenses instantly.
sequenceDiagram
autonumber
actor Client as Client App (Scraper Pro)
participant Sheet as Google Sheets (Database)
actor Admin as Admin Panel (You)
Admin->>Sheet: Generate & Add License Key (Set Expiry / Waiting Status)
Client->>Client: Open App (No License Found)
Client->>Client: Enter Key & Submit
Client->>Sheet: Query Key Validity & HWID
alt Key Valid & HWID Matches/Empty
Sheet-->>Client: Return Success (Bind HWID if Empty)
Client->>Client: Cache Valid State Locally (Encrypted)
Client->>Client: Unlock Scraper GUI
else Key Invalid, Expired, or HWID Mismatch
Sheet-->>Client: Return Access Denied / Error
Client->>Client: Block UI & Show Activation Window
end
- Python 3.10 or higher
- Google Cloud Console Account (for Google Sheets API access)
-
Clone the repository:
git clone https://github.com/hsynpng/google-maps-scraper.git cd google-maps-scraper -
Install dependencies:
pip install -r requirements.txt
-
Configure Google Sheets Database:
- Create a Google Cloud Project and enable the Google Drive API and Google Sheets API.
- Generate a Service Account Key in JSON format and save it as:
data/sheets_credentials.json - Create a new Google Sheet and share it with the service account email (as an Editor).
- Create a file at
data/sheets_config.jsonwith your Spreadsheet ID:{ "sheet_id": "YOUR_SPREADSHEET_ID_HERE" }
-
Run the applications:
- To run the main Scraper application:
python main.py
- To run the Licensing Admin Panel:
python key_generator.py
- To run the main Scraper application:
This software implements strict measures to ensure secure commercial distribution:
- API Security: All active database connections to Google Cloud are handled securely via authorized service account credentials bundled only into the administrator executable.
- Local Caching: License verification status is cryptographically hashed and cached locally to prevent basic offline-bypass exploits while maintaining seamless app launch speeds.
- Instant Revocation: If a client requests a refund or violates terms, simply toggle their status to
revokedin your Google Sheet or click Revoke in your Admin Panel to instantly block access.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ by hsynpng