Código e Automação

Código e Automação

Código e Automação

15 de jan. de 2026

Go back

Prospecção Inteligente com Google Maps API: criando um Lead Scraper técnico em Python

Projeto técnico em Python usando Google Maps API para coletar, enriquecer e classificar negócios locais com foco em análise de mercado e prospecção qualificada.

A crazy but friendly cartoon scientist with messy hair, wearing a white lab coat, holding a giant glowing EMAIL EXTRACTOR
A crazy but friendly cartoon scientist with messy hair, wearing a white lab coat, holding a giant glowing EMAIL EXTRACTOR
A crazy but friendly cartoon scientist with messy hair, wearing a white lab coat, holding a giant glowing EMAIL EXTRACTOR

Fique por dentro do que há de mais relavante no Marketing Digital, assine a nossa newsletter:

A prospecção comercial baseada em listas genéricas está cada vez menos eficiente. Bases frias, dados desatualizados e ausência de contexto reduzem drasticamente a taxa de resposta — especialmente quando falamos de serviços de Google Ads, Meta Ads e estratégias de aquisição de alto valor.

Neste artigo, apresento um projeto técnico completo desenvolvido em Python que resolve esse problema de forma estruturada: um pipeline de coleta, enriquecimento e classificação de negócios locais usando a Google Places API, com foco em qualidade, governança e uso consciente de dados públicos.

O projeto é open-source e pode ser acessado aqui:

👉 https://github.com/adrockmkt/lead_scraper_maps

O problema: listas grandes, pouco contexto e baixa conversão

Em projetos de mídia paga e consultoria, o gargalo raramente está na execução técnica das campanhas. Ele começa antes, na origem do lead:

  • Empresas sem site próprio

  • Negócios que não investem em mídia

  • Regiões sem concorrência (CPC baixo = baixa maturidade)

  • Contatos genéricos ou inexistentes

O objetivo do projeto foi criar uma solução que não prioriza volume, mas sim contexto competitivo e maturidade digital.

Visão geral da solução

O Lead Scraper Maps é um pipeline local que:

  1. Consulta negócios locais no Google Maps (Text Search)

  2. Enriquecimento via Place Details

  3. Crawling leve do site institucional

  4. Extração e classificação de emails

  5. Score automático (0–100)

  6. Cache em SQLite

  7. Exportação estruturada em CSV

Tudo isso respeitando:

  • APIs oficiais

  • Rate limit

  • LGPD

  • Uso responsável de dados públicos

Arquitetura do projeto

Estrutura simplificada:

lead_scraper_maps/
├── main.py
├── config.py
├── services/
├── places_client.py
├── site_crawler.py
├── scoring.py
└── storage.py
├── data/
└── sqlite_cache.db
├── outputs/
├── leads_qualificados.csv
├── leads_sem_email.csv
└── leads_descartados.csv

O design é modular, permitindo evolução por camadas sem retrabalho.

Coleta de dados com Google Places API

A base do projeto é a Text Search da Google Places API, combinando:

  • Nicho (ex: dedetizadora, clínica, escritório jurídico)

  • Bairro

  • Cidade

Exemplo de busca:

query = f"{nicho} em {bairro} / Curitiba"

Essa abordagem permite clusterização geográfica, essencial para análise de concorrência e maturidade de mercado.

Enriquecimento e cache inteligente

Cada negócio encontrado passa por um enriquecimento via Place Details, coletando:

  • Site oficial

  • Telefone

  • Endereço estruturado

  • Bairro (address components)

Para evitar custos e chamadas duplicadas, o projeto implementa cache em SQLite, reutilizando dados já processados:

if storage.place_exists(place_id):
    return storage.get_place(place_id)

Esse ponto é crítico para manter o projeto economicamente viável.

Crawling leve do site e extração de emails

O crawler não é agressivo. Ele acessa apenas:

  • Home

  • Página de contato (quando detectada)

A extração de emails é feita via regex e classificada em dois grupos:

  • Corporativos (contato@empresa.com.br)

  • Genéricos (gmail, hotmail, outlook)

EMAIL_REGEX = r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+"

Nenhum formulário é submetido. Nenhum dado privado é coletado.

Sistema de score (0–100)

O score é o coração estratégico do projeto. Ele considera:

  • Nicho (alto ticket vs comoditizado)

  • Região (concorrência implícita)

  • Presença de site

  • Email corporativo

  • Completeness do perfil no Maps

Exemplo simplificado:

score += 30 if has_site else 0
score += 20 if email_corporativo else 0
score += region_weight

O resultado final permite priorização real, não subjetiva.

Outputs gerados

O pipeline gera três arquivos principais:

  • leads_qualificados.csv

    Leads com score alto, prontos para CRM

  • leads_sem_email.csv

    Empresas com potencial, mas contato via telefone/WhatsApp

  • leads_descartados.csv

    Fora do perfil estratégico

Isso facilita integração com ferramentas como Kit, HubSpot, Pipedrive ou análise manual.

Controle de custo e boas práticas

O projeto foi desenhado para não escalar de forma irresponsável:

  • Cache persistente

  • Execução por nicho

  • Possibilidade de limitar bairros

  • Rate limit configurável

  • Sem scraping massivo

O README do projeto inclui uma seção específica sobre limites de custo da API, algo raramente visto em projetos similares.

### 📊 Cotas gratuitas e modelo de cobrança da Google Maps API

Este projeto utiliza exclusivamente endpoints da **Google Places API** (Text Search e Place Details), que possuem **cota gratuita mensal** oferecida pela Google Maps Platform.

Atualmente, a Google disponibiliza:

- **Places API Text Search**: até **5.000 requisições/mês sem custo**
- **Places Details (campos básicos)**: até **5.000 requisições/mês sem custo**

As cotas são **renovadas mensalmente** e são **independentes por tipo de requisição (SKU)**.

No cenário de uso deste projeto execução manual, escopo regional (Curitiba e Região Metropolitana), cache persistente em SQLite e execução por nicho é possível operar **integralmente dentro do free tier**, sem geração de cobrança.

Mesmo assim, recomenda-se fortemente a criação de um **budget mensal** no Google Cloud Console para monitoramento e alertas preventivos

Por que esse projeto importa

Mais do que gerar listas, esse projeto demonstra:

  • Engenharia aplicada a marketing

  • Uso responsável de dados públicos

  • Integração entre dados locais e estratégia de mídia

  • Base sólida para decisões comerciais

Ele também serve como framework reutilizável para:

  • Estudos de mercado

  • Análise de concorrência local

  • Avaliação de maturidade digital por região

Código aberto no GitHub

Todo o projeto está disponível publicamente:

👉 https://github.com/adrockmkt/lead_scraper_maps

Inclui:

  • README técnico

  • ROADMAP com evoluções planejadas

  • Código modular

  • Governança de segredos

  • Estrutura pronta para contribuição

Considerações finais

Automação sem critério gera ruído.

Dados sem contexto geram listas inúteis.

Projetos como este mostram que prospecção de alto valor começa na engenharia, não no disparo.

Se você trabalha com mídia paga, consultoria ou dados, vale explorar esse tipo de abordagem — mesmo que apenas como referência arquitetural.

Post sobre a sanitização da base aqui:

👉 Leia mais: Da prospecção inteligente à ativação: como sanitizar, segmentar e usar dados do Google Maps em Email Marketing

Conteúdo original pesquisado e redigido pelo autor. Ferramentas de IA podem ter sido utilizadas para auxiliar na edição e no aprimoramento.

Conteúdo original pesquisado e redigido pelo autor. Ferramentas de IA podem ter sido utilizadas para auxiliar na edição e no aprimoramento.

Posts relacionados:

Posts relacionados:

Compartilhe!

Go back

Go back

Go back

Deixe a IA fazer o trabalho para Você Crescer Mais Rápido

Agende uma conversa hoje e comece a automatizar.

Deixe a IA fazer o trabalho para Você Crescer Mais Rápido

Agende uma conversa hoje e comece a automatizar.

© 2010 - 2026 Copyright

All Rights Reserved - Develop by Ad Rock Digital Mkt

© 2010 - 2026 Copyright

All Rights Reserved - Develop by
Ad Rock Digital Mkt