Skip to content

chrisq-dev/B2B-Lead-Scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 

Repository files navigation

  ____  ____  ____    _                    _   ____
 | __ )|___ \| __ )  | |    ___  __ _  __| | / ___|  ___ _ __ __ _ _ __   ___ _ __
 |  _ \  __) |  _ \  | |   / _ \/ _` |/ _` | \___ \ / __| '__/ _` | '_ \ / _ \ '__| 
 | |_) |/ __/| |_) | | |__|  __/ (_| | (_| |  ___) | (__| | | (_| | |_) |  __/ |
 |____/|_____|____/  |_____\___|\_,_|\__,_| |____/ \___|_|  \__,_| .__/ \___|_|
                                                                   |_|
                                                        v5.0 — Pro Edition

Motor de prospección B2B. Extrae leads verificados desde Google Maps con soporte para múltiples ciudades, múltiples nichos, extracción de emails, sistema de checkpoints y deduplicación inteligente.


⚡ Cómo funciona

El script genera automáticamente todas las combinaciones ciudad × nicho y ejecuta una búsqueda por cada una. Por cada negocio extrae:

  • Nombre del negocio
  • Categoría (Dental Office, Restaurant, etc.)
  • Ciudad
  • Dirección completa
  • Teléfono
  • Emailnuevo en v5.0 — extraído directamente del sitio web del negocio
  • Sitio Web
  • URL de Google Maps

Todos los datos provienen directamente de Google Maps y los sitios web de los negocios — 100% verificados, sin suposiciones.


🚀 Inicio Rápido

cd lead-scraper
./venv/bin/python scraper.py

Primera vez (instalar navegador):

./venv/bin/python -m playwright install chromium

🎯 Menú (5 Pasos)

Paso Pregunta Ejemplo
1 ¿Ciudad(es)? Southlake TX, Keller TX o Durango, CDMX
2 ¿Nicho(s)? Dental Offices, Restaurants, Gyms
3 ¿Nombre del Cliente/Proyecto? Orbital Builders
4 ¿Cuántos leads necesitas? 500 — Enter para máximo posible
5 ¿Ejecutar en modo oculto? y para background, n para debug visual

Ejemplo: 200 leads en Durango

Ciudad(es)  → Durango, Dgo
Nicho(s)    → Dentistas, Gimnasios, Restaurantes
Proyecto    → Cliente Durango
Meta leads  → 200
Headless    → y

El script genera 3 búsquedas y distribuye la meta equitativamente. Al terminar, guarda el Excel automáticamente.


📊 Datos que extrae

Campo Fuente Confiabilidad
Nombre del Negocio Google Maps ✅ 100%
Categoría Google Maps ✅ 100%
Ciudad Google Maps ✅ 100%
Dirección Google Maps ✅ 98%+
Teléfono Google Maps ✅ 95%+
Email Sitio web del negocio ✅ ~60% (depende si el sitio lo publica)
Sitio Web Google Maps ✅ 95%+
Google Maps URL Google Maps ✅ 100%

🆕 Novedades v5.0 Pro Edition

Feature Descripción
✉️ Extracción de Emails Entra al sitio web de cada negocio y extrae emails reales (info@, contact@, etc.)
♻️ Sistema de Checkpoint Guarda el progreso después de cada búsqueda. Si el script se interrumpe, retoma donde se quedó
🔄 Reintentos automáticos Si Maps no carga, reintenta hasta 3 veces antes de saltar esa búsqueda
🎭 Rotación de User-Agents Usa 6 User-Agents reales distintos para evitar detección por parte de Google
🧠 Deduplicación Fuzzy Detecta duplicados similares (ej. "Starbucks" vs "Starbucks Coffee") con 85% de similitud
👻 Modo Debug Opción de ver el navegador en tiempo real para diagnosticar errores

🔢 Capacidad máxima por búsqueda

Google Maps devuelve hasta ~120 resultados por query. Para maximizar leads:

  • Usa más ciudades → más combinaciones → más leads
  • Usa nichos específicos → más densidad de resultados
  • Ejemplo: 5 nichos × 10 ciudades = 50 búsquedas = hasta 6,000 leads

🛡️ Anti-Bloqueo

  • Rotación automática de User-Agents en cada sesión.
  • Scroll progresivo: para cuando Maps no carga más.
  • Espera entre 6 y 12 segundos aleatorios entre búsquedas.
  • Máximo recomendado: 300–500 leads por sesión continua.
  • Si aparece un CAPTCHA: Detén el script, cambia de red o espera 30 minutos.

♻️ Sistema de Checkpoint

Si el script se interrumpe (luz, internet, Ctrl+C), al volver a ejecutarlo con el mismo nombre de proyecto detecta el archivo checkpoint_<proyecto>.json y pregunta si quieres retomar. Las búsquedas ya completadas se saltan automáticamente.

Al finalizar con éxito, el checkpoint se elimina solo.


📁 Estructura

B2B-Lead-Scraper/
├── lead-scraper/
│   ├── scraper.py              ← Script principal
│   ├── requirements.txt        ← Dependencias Python
│   ├── venv/                   ← Entorno virtual
│   ├── checkpoint_*.json       ← Guardado automático de progreso (temporal)
│   └── leads_*.xlsx            ← Archivos generados
└── README.md

🛠️ Dependencias

Librería Uso
playwright Navegación automatizada en Google Maps
openpyxl Generación del Excel con formato profesional
rich Interfaz visual en consola

Nota: urllib (extracción de emails) y difflib (deduplicación fuzzy) son librerías nativas de Python — no requieren instalación.


B2B Lead Scraper v5.0 — Pro Edition

About

Herramienta automatizada de prospección comercial B2B.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages