google-maps-scraper
Geospatial scraper for Google Maps using Uber's H3 hexagonal grid. Extracts business listings (name, phone, website, address, rating, category, coordinates) and enriches each result with emails and social links harvested directly from the business website.
Analisi AI · Italiano
openai · gpt-4o-miniSintesi
Questo progetto è uno scraper basato sull'H3 hexagonal grid di Uber, progettato per estrarre informazioni dettagliate da Google Maps. Raccoglie dati specifici di attività commerciali come nome, telefono, sito web, indirizzo, rating e categoria. Inoltre, arricchisce i risultati cercando indirizzi email e link a social media direttamente dai siti web delle attività, rendendolo uno strumento potente per la raccolta di lead geolocalizzati.
Casi d'uso
- →Generazione di lead per agenzie di marketing che cercano attività commerciali in specifiche aree geografiche.
- →Analisi di mercato per aziende che desiderano identificare la densità e la distribuzione di categorie commerciali (es. ristoranti, palestre) in diverse città o quartieri.
- →Costruzione di database personalizzati per piattaforme di servizi locali o directory online, con informazioni complete sulle attività.
- →Ricerca di fornitori o partner commerciali in base alla loro localizzazione e categoria di attività.
- →Validazione o aggiornamento di dati esistenti sulle attività commerciali per scopi di data enrichment o mappatura.
Idee SaaS / Business
Una piattaforma web che permette alle piccole e medie imprese di ricercare e scaricare database di potenziali clienti basati su criteri geografici, categoria di attività e presenza online (email, social media), con un modello di abbonamento o pagamento per lead.
Un servizio che aiuta le aziende a identificare le migliori posizioni per nuove aperture di negozi o filiali, analizzando la densità di concorrenti, la presenza di 'target businesses' e la copertura geografica in specifiche aree metropolitane, offrendo report dettagliati e mappe interattive.
Un'API che permette ad altre applicazioni di integrare la funzionalità di arricchimento dei dati di attività commerciali di Google Maps. Gli utenti potrebbero fornire un elenco di siti web o nomi di attività e ricevere in risposta dati completi, inclusi email, social media e coordinate H3, con un modello pay-per-call o tier-based.
README · tradotto in italiano
🗺️ Scraper di Mappe con Motore H3
Scraper geospaziale per Google Maps che utilizza la griglia esagonale H3 di Uber. Estrae elenchi di attività commerciali (nome, telefono, sito web, indirizzo, rating, categoria, coordinate) e arricchisce ogni risultato con email e link social raccolti direttamente dal sito web dell'attività.
Setup
pip install -r requirements.txt
playwright install chromium
Avvio rapido
Modifica QUERY e LOCATION in main.py, quindi esegui:
python main.py
Output
Vengono scritti automaticamente tre file:
| File | Formato | Note |
|---|---|---|
results.json | JSON | Sempre scritto (anche come checkpoint "crash-safe" prima dell'arricchimento) |
results.csv | CSV | Sempre scritto |
results.xlsx | Excel | Scritto se openpyxl è installato |
Schema dei record
{
"nome": "Clinica Veterinaria XYZ",
"categoria": "veterinary care",
"telefono": "+39 06 123456",
"sito": "https://clinicaxyz.it",
"indirizzo": "Via Roma 1, 00100 Roma RM",
"rating": "4.2 stelle",
"lat": 41.90,
"lng": 12.49,
"h3": "891e2650b3bffff",
"url": "https://maps.google.com/maps/place/...",
"source": "veterinari Dragoncello, Roma",
"emails": ["info@clinicaxyz.it"],
"social": {
"instagram": ["https://instagram.com/clinicaxyz"],
"facebook": ["https://facebook.com/clinicaxyz"]
}
}
Architettura
main.py
├── src/geocoder.py → nome luogo → coordinate (OpenStreetMap Nominatim)
├── src/h3_grid.py → celle esagonali H3 (fallback: src/grid.py Cartesiano)
├── src/scraper_worker.py → motore di scraping Playwright
├── src/enricher.py → raccolta email + social per sito web
├── src/writer.py → output JSON / CSV / Excel
├── src/config.py → profili di velocità + etichette cookie multilingua
└── src/logger.py → livelli di log LOW / MEDIUM / HIGH
Parametri chiave (main.py)
| Parametro | Valore predefinito | Descrizione |
|---|---|---|
QUERY | — | Cosa cercare (es. "dentisti") |
LOCATION | — | Dove cercare (es. "Roma", "Prati, Roma") |
SKIP_DETAILS | False | True = solo nomi + URL (≈ 4× più veloce) |
H3_RESOLUTION | 9 | Dimensione esagono: 7 ≈ 5 km, 8 ≈ 1 km, 9 ≈ 200 m |
H3_K_RINGS | 2 | Raggio in anelli (5 → ~61 celle ≈ 3 km) |
MAX_WORKERS | 1 | 1 = sequenziale; 2–3 = tab parallele |
HEADLESS | False | True = browser invisibile (modalità server) |
LOG_LEVEL | "MEDIUM" | LOW / MEDIUM / HIGH |
Per la documentazione completa vedere ADVANCED.md.
Attività commit · ultime 26 settimane
stimaApprofondimenti AI
Chiedi al repo
AI · contesto README + issueFai una domanda sul progetto. L'AI legge README e issue recenti.
Hai bisogno di un server per far girare arcangelorosato-dev/google-maps-scraper?
Abbiamo testato decine di provider e Hostinger VPS è il miglior rapporto qualità/prezzo per self-hostare le repo che trovi qui. Setup in 1 click, pannello semplice e supporto 24/7.
Questo progetto esiste grazie a voi
RepoRadar AI è gratis e senza pubblicità. Le donazioni coprono server, API e modelli AI.
Ogni analisi tradotta che leggi costa qualche centesimo di chiamate al modello. Se RepoRadar ti ha fatto risparmiare tempo, considera una piccola donazione cripto — anche pochi euro aiutano a mantenere il servizio libero per tutti.
0x86ECDF546d8dFc0739d44c066A6110F11cdB7773bc1qqe0wcmhnt78enk8ql0lxvey4z8hquxsxjtyz8rEtTK61Lz7kfdDM8543TMMiAUUTbFVpzX5tvPEcBtZ3ajGrazie di cuore — ogni contributo conta.