Se você já tentou montar uma lista de vendas segmentada, explorar novos mercados ou comparar concorrentes, sabe que o Google Maps é uma verdadeira mina de ouro. Mas aqui está o ponto crucial: com mais de 1,5 bilhão de buscas “perto de mim” por mês e 76% das pessoas que fazem buscas locais visitando um negócio em até 24 horas (), a procura por dados empresariais atualizados e baseados em localização nunca foi tão alta.
Seja em vendas, marketing ou operações, extrair dados estruturados do Google Maps pode ser a diferença entre uma ligação fria e um lead morno, com alta chance de conversão.
Passei anos trabalhando com SaaS e automação, e vi de perto como equipes usam Python (e agora ferramentas com IA como ) para transformar o Google Maps em um ativo estratégico.
Neste guia, vou mostrar exatamente como extrair dados do Google Maps com Python em 2026 — passo a passo, com código, dicas de conformidade e uma comparação com soluções sem código. Tanto faz se você domina Python ou só quer o caminho mais rápido até dados acionáveis: você está no lugar certo.
O que Significa Extrair Dados do Google Maps com Python?
Vamos começar pelo básico: extrair dados do Google Maps com Python significa coletar programaticamente informações de empresas — como nomes, endereços, avaliações, comentários, telefones e coordenadas — do Google Maps, para analisar, filtrar e exportar esses dados para uso comercial.

Há duas formas principais de fazer isso:
- Google Maps Places API: a forma oficial e licenciada. Você usa uma chave de API para consultar os servidores do Google e receber dados estruturados em JSON. É estável, previsível e, em geral, compatível com as regras, mas tem cotas e custos.
- Web scraping do HTML: você automatiza um navegador (com ferramentas como Playwright ou Selenium) para carregar o Google Maps, fazer buscas e interpretar a página renderizada. É mais flexível, porém frágil — o Google muda a estrutura do site com frequência, e fazer scraping do HTML pode violar os termos do Google.
Campos de dados típicos que você pode extrair:
- Nome da empresa
- Categoria/tipo
- Endereço completo (além de cidade, estado, CEP e país)
- Latitude e longitude
- Número de telefone
- URL do site
- Avaliação e quantidade de avaliações
- Faixa de preço
- Status da empresa (aberta/fechada)
- Horário de funcionamento
- Place ID (identificador exclusivo do Google)
- URL do Google Maps
Por que isso importa? Porque esses campos alimentam tudo, desde geração de leads e planejamento de territórios até benchmarking de concorrentes e pesquisa de mercado. O segredo é focar nos dados certos para os objetivos do seu negócio — não saia coletando tudo sem critério.
Por que Equipes de Vendas e Marketing Extraem Dados do Google Maps com Python
Vamos ao que interessa. Por que tantas equipes de vendas e marketing estão obcecadas com os dados do Google Maps em 2026?
- Geração de leads: crie listas hipersegmentadas de negócios locais, com informações de contato e avaliações, para campanhas de prospecção.
- Planejamento de territórios: mapeie territórios de vendas, áreas de entrega ou regiões de atendimento com base na densidade e no tipo de empresas.
- Monitoramento de concorrentes: acompanhe a localização, as avaliações e os comentários dos concorrentes ao longo do tempo para identificar tendências e oportunidades.
- Pesquisa de mercado: analise categorias de negócios, horários de funcionamento e o sentimento dos comentários para orientar estratégias de entrada no mercado.
- Escolha de ponto comercial: em imóveis e varejo, avalie locais potenciais com base em serviços próximos, fluxo de pessoas e concorrência.
Impacto no mundo real: segundo o , 92% das equipes de vendas planejam ampliar investimentos em IA e dados, e times que usam dados locais e segmentados veem taxas de conversão até 8× maiores do que aqueles que dependem de listas frias genéricas (). Um estudo sobre geração de leads para franquias mostrou US$ 15 em nova receita para cada US$ 1 gasto em listas de leads baseadas no Google Maps.
Relacionando objetivos de negócio aos campos do Google Maps:
| Objetivo de Negócio | Campos Necessários do Google Maps |
|---|---|
| Lista de leads locais | nome, endereço, telefone, site, categoria |
| Planejamento de território | nome, lat/lng, business_status, opening_hours |
| Benchmarking de concorrentes | nome, avaliação, userRatingCount, priceLevel, reviews |
| Escolha de ponto comercial | categoria, lat/lng, densidade de avaliações, openingDate |
| Inteligência de sentimento/cardápio | reviews, editorialSummary, fotos, types |
| Abordagem por e-mail/telefone | nationalPhoneNumber, websiteUri (depois enriqueça se necessário) |
Como Configurar Seu Raspador do Google Maps em Python: Ferramentas e Requisitos
Antes de começar a extrair dados, você precisará configurar seu ambiente Python e reunir as ferramentas certas. Veja o que é necessário em 2026:
1. Instale o Python e as Bibliotecas Necessárias
Versão recomendada do Python: 3.10 ou superior.
Instale as bibliotecas principais:
1pip install \
2 requests==2.33.1 httpx==0.28.1 \
3 beautifulsoup4==4.14.3 lxml==6.0.3 \
4 pandas==2.3.3 \
5 selenium==4.43.0 playwright==1.58.0 \
6 googlemaps==4.10.0 google-maps-places==0.8.0 \
7 schedule==1.2.2 APScheduler==3.11.2 \
8 python-dotenv==1.2.2 tenacity==9.1.4
9playwright install chromium
O que elas fazem:
requests,httpx: requisições HTTP (chamadas de API)beautifulsoup4,lxml: análise de HTML (para web scraping)pandas: limpeza, análise e exportação de dadosselenium,playwright: automação de navegador (para scraping de HTML)googlemaps,google-maps-places: clientes da API do Google Mapsschedule,APScheduler: agendamento de tarefaspython-dotenv: carregamento seguro de chaves de API a partir de arquivos.envtenacity: lógica de tentativas para tratamento de erros
2. Obtenha uma Chave de API do Google Maps (para scraping via API)
- Acesse o .
- Crie ou selecione um projeto.
- Ative o faturamento (obrigatório, mesmo para o uso gratuito).
- Ative “Places API (New)” em APIs & Services > Library.
- Vá em Credentials > Create Credentials > API Key.
- Restrinja sua chave a APIs e IPs específicos para aumentar a segurança.
- Armazene a chave em um arquivo
.env(nunca faça commit no código):
1GOOGLE_MAPS_API_KEY=your_actual_api_key_here
Observação: em março de 2025, o Google deixou de oferecer um crédito universal de US$ 200/mês. Em vez disso, você recebe limites mensais gratuitos por faixa de API (veja a ).
Como Extrair Dados do Google Maps com Python: Guia Passo a Passo
Vamos detalhar as duas abordagens principais — via API e web scraping do HTML — para você escolher a que melhor atende às suas necessidades.
Abordagem 1: Usando a Google Maps Places API (Recomendado)
Etapa 1: Instalar e Importar as Bibliotecas Necessárias
1import os
2import httpx
3import pandas as pd
4from dotenv import load_dotenv
Etapa 2: Carregar Sua Chave de API com Segurança
1load_dotenv()
2API_KEY = os.environ["GOOGLE_MAPS_API_KEY"]
Etapa 3: Montar Sua Consulta de Busca
Você vai usar o endpoint de Text Search para encontrar empresas que correspondam aos seus critérios.
1URL = "https://places.googleapis.com/v1/places:searchText"
2FIELD_MASK = ",".join([
3 "places.id", "places.displayName", "places.formattedAddress",
4 "places.location", "places.rating", "places.userRatingCount",
5 "places.priceLevel", "places.types",
6 "places.nationalPhoneNumber", "places.websiteUri",
7 "nextPageToken",
8])
Etapa 4: Fazer a Requisição à API
1def text_search(query, lat, lng, radius=3000, min_rating=4.0):
2 body = {
3 "textQuery": query,
4 "minRating": min_rating, # filtro no lado do servidor
5 "includedType": "restaurant",
6 "openNow": False,
7 "pageSize": 20,
8 "locationBias": {
9 "circle": {
10 "center": {"latitude": lat, "longitude": lng},
11 "radius": radius,
12 }
13 },
14 }
15 headers = {
16 "Content-Type": "application/json",
17 "X-Goog-Api-Key": API_KEY,
18 "X-Goog-FieldMask": FIELD_MASK, # sempre defina isto!
19 }
20 r = httpx.post(URL, json=body, headers=headers, timeout=30)
21 r.raise_for_status()
22 return r.json()
Etapa 5: Tratar a Paginação e Coletar os Resultados
1def collect_all_results(query, lat, lng, radius=3000, min_rating=4.0):
2 results = []
3 next_page_token = None
4 while True:
5 data = text_search(query, lat, lng, radius, min_rating)
6 places = data.get('places', [])
7 results.extend(places)
8 next_page_token = data.get('nextPageToken')
9 if not next_page_token:
10 break
11 return results
Etapa 6: Exportar os Dados com Pandas
1df = pd.DataFrame(collect_all_results("coffee shops in Brooklyn", 40.6782, -73.9442))
2df.to_csv("brooklyn_coffee_shops.csv", index=False)
Dicas profissionais:
- Defina sempre o cabeçalho
X-Goog-FieldMaskpara controlar os custos. Se você pedir avaliações ou fotos, o preço por 1.000 requisições pode subir de US$ 5 para US$ 25 (). - Use filtros no lado do servidor (como
minRating,includedType,locationBias) para não desperdiçar créditos com resultados irrelevantes. - Armazene valores de
place_idpara deduplicação e atualizações futuras.
Abordagem 2: Web Scraping do HTML do Google Maps (Para Uso Educacional ou Pontual)
Aviso: o Google Maps é um aplicativo de página única. Você precisa usar automação de navegador (Playwright ou Selenium), e fazer scraping do HTML pode violar os termos do Google. Use isso para pesquisa, não para produção.
Etapa 1: Instalar o Playwright e Iniciar o Navegador
1from playwright.sync_api import sync_playwright
2import time, re
3def scrape_maps(query, max_results=100):
4 with sync_playwright() as pw:
5 browser = pw.chromium.launch(headless=True)
6 ctx = browser.new_context(
7 user_agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
8 locale="en-US",
9 )
10 page = ctx.new_page()
11 page.goto("https://www.google.com/maps", timeout=60_000)
12 page.fill("#searchboxinput", query)
13 page.click('button[aria-label="Search"]')
14 page.wait_for_selector('div[role="feed"]')
15 feed = page.locator('div[role="feed"]')
16 prev = 0
17 while True:
18 feed.evaluate("el => el.scrollBy(0, el.scrollHeight)")
19 time.sleep(2)
20 count = page.locator('div[role="feed"] > div > div[jsaction]').count()
21 if count == prev or count >= max_results:
22 break
23 prev = count
24 if page.locator("text=You've reached the end of the list").count():
25 break
26 rows = []
27 cards = page.locator('div[role="feed"] > div > div[jsaction]')
28 for i in range(cards.count()):
29 c = cards.nth(i)
30 name = c.locator("div.fontHeadlineSmall").inner_text() if c.locator("div.fontHeadlineSmall").count() else ""
31 rating_el = c.locator('span[role="img"]').first
32 raw = rating_el.get_attribute("aria-label") if rating_el.count() else ""
33 m = re.search(r"([\d.]+)\s+stars?\s+([\d,]+)\s+Reviews", raw or "")
34 rating = float(m.group(1)) if m else None
35 reviews = int(m.group(2).replace(",", "")) if m else None
36 rows.append({"name": name, "rating": rating, "reviews": reviews})
37 browser.close()
38 return rows
Dicas:
- O Google randomiza classes CSS a cada poucas semanas, então este código pode exigir atualizações regulares.
- Use atrasos semelhantes aos de um humano e evite fazer scraping rápido demais para reduzir o risco de bloqueio.
- Nunca tente contornar CAPTCHAs ou o sistema SearchGuard do Google — isso pode expor você a risco jurídico.
Evite o Scraping Cego: Como Direcionar com Precisão os Dados de que Você Precisa
Extrair tudo é receita para perda de tempo e conjuntos de dados inchados. Veja como capturar apenas os dados que realmente importam:
- Gere listas de URLs segmentadas: use os filtros de busca do próprio Google Maps (categoria, localização, avaliação, aberto agora) para refinar os resultados antes de extrair.
- Use correspondência por frase: busque tipos de negócio ou palavras-chave exatas (por exemplo, “vegan bakery in Austin”).
- Filtros de localização: especifique cidade, bairro ou até coordenadas e raio para precisão máxima.
- Filtragem no servidor (API): use
minRating,includedTypeelocationBiasno corpo da requisição da API. - Filtragem no cliente (Python): depois de extrair, use pandas para filtrar empresas com avaliações acima de 4,0, mais de 50 comentários ou categorias específicas.
Exemplo: filtrar apenas restaurantes em Manhattan com avaliação acima de 4,0
1df = pd.DataFrame(results)
2filtered = df[(df['rating'] >= 4.0) & (df['types'].apply(lambda x: 'restaurant' in x))]
3filtered.to_csv("manhattan_top_restaurants.csv", index=False)
Como Usar Bibliotecas Python para Organizar e Exportar Dados do Google Maps
Depois de extrair os dados, é hora de limpá-los, analisá-los e exportá-los para sua equipe.
Limpando e Estruturando Dados com Pandas
1import pandas as pd
2df = pd.read_json("brooklyn_restaurants.json")
3df = (
4 df.dropna(subset=["name", "address"])
5 .drop_duplicates(subset=["place_id"])
6 .assign(
7 name=lambda d: d["name"].str.strip(),
8 phone=lambda d: d["phone"].astype(str)
9 .str.replace(r"\D", "", regex=True)
10 .str.replace(r"^1?(\d{10})$", r"+1\1", regex=True),
11 rating=lambda d: pd.to_numeric(d["rating"], errors="coerce"),
12 user_ratings_total=lambda d: pd.to_numeric(
13 d["user_ratings_total"], errors="coerce"
14 ).fillna(0).astype("int32"),
15 )
16)
Analisando e Resumindo os Dados
Exemplo: média de avaliação por bairro
1by_neighborhood = (
2 df.groupby("neighborhood", as_index=False)
3 .agg(avg_rating=("rating", "mean"),
4 n_places=("place_id", "nunique"),
5 median_reviews=("user_ratings_total", "median"))
6 .sort_values("avg_rating", ascending=False)
7)
Exportando para Excel ou CSV
1df.to_csv("brooklyn_top.csv", index=False)
2df.to_excel("brooklyn_top.xlsx", index=False, sheet_name="Top Rated")
Conjuntos de dados grandes? Use o formato Parquet para ganhar velocidade e eficiência de armazenamento:
1df.to_parquet("brooklyn_top.parquet", compression="zstd")
Thunderbit: Alternativa com IA ao Raspador do Google Maps em Python
Agora, se você está pensando: “Isso é muita configuração para uma simples lista de leads”, você não está sozinho. Foi exatamente por isso que criamos o — um raspador web sem código, com IA, que torna a extração de dados do Google Maps (e de muito mais) tão simples quanto alguns cliques.
Por que Thunderbit?
- Sem necessidade de programação ou chaves de API: basta abrir a , acessar o Google Maps e clicar em “AI Suggest Fields”.
- Detecção de campos por IA: a IA do Thunderbit lê a página e sugere as colunas certas — nome, endereço, avaliação, telefone, site e muito mais.
- Scraping de subpáginas: quer enriquecer sua tabela com dados do site de cada empresa? O Thunderbit visita cada subpágina e coleta informações extras automaticamente.
- Exportação para Excel, Google Sheets, Airtable ou Notion: chega de brigar com pandas — é só clicar em “Exportar” e seus dados já ficam prontos para a equipe.
- Scraping agendado: configure tarefas recorrentes para monitorar concorrentes ou atualizar automaticamente sua lista de leads.
- Manutenção zero: a IA do Thunderbit se adapta às mudanças do site, então você não fica corrigindo scripts quebrados o tempo todo.

Fluxo de trabalho do Thunderbit vs Python:
| Etapa | Raspador em Python | Thunderbit |
|---|---|---|
| Instalar ferramentas | 30–60 min (Python, pip, bibliotecas) | 2 min (Extensão Chrome) |
| Configuração da chave de API | 10–30 min (Cloud Console) | Não é necessário |
| Seleção de campos | Código manual, máscaras de campo | AI Suggest Fields (1 clique) |
| Extração de dados | Escrever/executar scripts, tratar erros | Clique em “Extrair” |
| Exportação | pandas para CSV/Excel | Exportar para Excel/Sheets/Notion |
| Manutenção | Atualizações manuais para mudanças no site | IA se adapta automaticamente |
Bônus: o Thunderbit conta com a confiança de mais de , e o plano gratuito permite extrair até 6 páginas (ou 10 com bônus de teste) sem custo.
Mantendo a Conformidade: Termos de Uso do Google Maps e Ética no Scraping
É aqui que a maioria dos tutoriais de Python fica perigosamente desatualizada. Veja o que você precisa saber em 2026:
- Os Termos da Google Maps Platform §3.2.3 proíbem estritamente scraping, caching ou exportação de dados fora das APIs oficiais (). A única exceção: valores de latitude/longitude podem ser armazenados em cache por até 30 dias; Place IDs podem ser armazenados indefinidamente.
- Usuários da API estão vinculados por contrato: se você usa uma chave de API, concordou com os termos do Google — mesmo que esteja coletando apenas dados públicos.
- Contornar barreiras técnicas (CAPTCHAs, SearchGuard) agora pode configurar violação da DMCA §1201, o que pode resultar em penalidades criminais ().
- GDPR e leis de privacidade: se você coletar dados pessoais (e-mails, telefones, nomes de avaliadores) do Google Maps, precisa de uma base legal e deve respeitar pedidos de exclusão. A CNIL francesa multou a KASPR em €200.000 em 2024 por fazer scraping de contatos do LinkedIn ().
- Boas práticas:
- Dê preferência à Places API sempre que possível.
- Limite a taxa de requisições (≤10 QPS para API, 1–2 req/s para scraping de HTML).
- Nunca burle CAPTCHAs nem bloqueios técnicos.
- Não redistribua dados pessoais extraídos.
- Respeite pedidos de exclusão e opt-out.
- Sempre revise as leis locais — GDPR, CCPA e outras estão sendo aplicadas ativamente.
Resumo: se conformidade é uma preocupação, fique com a API e minimize os dados coletados. Para a maioria dos usuários de negócio, uma ferramenta sem código como o Thunderbit reduz seu risco (sem chave de API, sem redistribuição).
Agendando e Automatizando seu Scraping do Google Maps com Python
Se você precisa manter seus dados sempre atualizados — por exemplo, para monitoramento semanal de concorrentes ou atualização mensal de listas de leads — a automação é sua aliada.
Agendamento Simples com schedule
1import schedule, time
2from my_scraper import run_job
3schedule.every().day.at("03:00").do(run_job, query="restaurants in Brooklyn")
4schedule.every(6).hours.do(run_job, query="coffee shops in Manhattan")
5while True:
6 schedule.run_pending()
7 time.sleep(30)
Agendamento de Nível de Produção com APScheduler
1from apscheduler.schedulers.background import BackgroundScheduler
2from apscheduler.triggers.cron import CronTrigger
3sched = BackgroundScheduler(timezone="America/New_York")
4sched.add_job(
5 run_job,
6 CronTrigger(hour=3, minute=15, jitter=600), # 3:15 da manhã ± 10 min
7 kwargs={"query": "restaurants in Brooklyn"},
8 id="brooklyn_daily",
9 max_instances=1,
10 coalesce=True,
11 misfire_grace_time=3600,
12)
13sched.start()
Dicas para Automação Segura
- Adicione uma variação aleatória no agendamento para evitar padrões previsíveis.
- Para scraping de HTML, nunca ultrapasse 1–2 requisições por segundo.
- No uso da API, monitore sua cota e configure alertas de faturamento.
- Sempre registre erros e mantenha um arquivo de “dead-letter” para requisições com falha.
Bônus do Thunderbit: com o Thunderbit, você pode agendar extrações recorrentes diretamente na interface — sem código, sem cron jobs, sem configuração de servidor.
Principais Conclusões: Extração de Dados do Google Maps Eficiente, Segmentada e em Conformidade
Vamos recapitular o essencial:
- O Google Maps é a principal fonte de dados de localização de empresas, alimentando tudo, desde geração de leads até pesquisa de mercado.
- O scraping com Python oferece flexibilidade e controle, mas traz custos de configuração, manutenção e conformidade — especialmente com o aumento das medidas anti-bot e da aplicação de regras pelo Google.
- A extração via API é o caminho mais seguro e escalável para a maioria das equipes. Use sempre máscaras de campo e filtros no lado do servidor para controlar custos.
- O scraping de HTML é frágil e arriscado — use apenas para pesquisas pontuais e nunca para contornar barreiras técnicas.
- Direcione seus dados: use correspondência por frase, filtros de localização e fluxos com pandas para extrair só o que realmente precisa.
- Thunderbit é o caminho mais rápido para quem não programa: com IA, sem configuração, exportação instantânea e agendamento embutido.
- Conformidade importa: respeite os termos do Google, as leis de privacidade e os limites de requisições para evitar problemas jurídicos.
Para mais tutoriais e dicas, confira o e nosso .
Perguntas Frequentes
1. É legal extrair dados do Google Maps com Python em 2026?
Extrair dados do Google Maps pela API oficial é permitido dentro dos termos do Google, desde que você respeite as cotas e não redistribua dados restritos. O scraping do HTML do Google Maps é explicitamente proibido pelos Termos de Uso do Google e traz risco jurídico, especialmente se você burlar barreiras técnicas ou coletar dados pessoais sem consentimento. Sempre verifique as leis locais (GDPR, CCPA etc.) e siga as melhores práticas de conformidade.
2. Qual é a diferença entre usar a API do Google Maps e fazer web scraping do HTML?
A API é estável, licenciada e projetada para extração de dados, mas exige uma chave de API e está sujeita a cotas e custos. O scraping do HTML usa automação de navegador para extrair dados da página renderizada, mas é frágil (o site muda com frequência), pode violar os termos e é juridicamente mais arriscado. Para a maioria dos usos comerciais, a API é o caminho recomendado.
3. Quanto custa extrair dados do Google Maps usando Python em 2026?
A precificação da Places API do Google é por 1.000 requisições, variando de US$ 5 (Essentials) a US$ 25 (Enterprise+Atmosphere), dependendo dos campos solicitados. Há limites mensais gratuitos (10.000 para Essentials, 5.000 para Pro, 1.000 para Enterprise), mas extrações em grande escala podem ficar caras rapidamente. Use sempre máscaras de campo e filtros no lado do servidor para controlar os custos.
4. Como o Thunderbit se compara aos raspadores do Google Maps baseados em Python?
O Thunderbit é um raspador web sem código e com IA que permite extrair dados do Google Maps (e muito mais) sem programação, chaves de API ou manutenção. É ideal para equipes de vendas e marketing que querem exportações rápidas e confiáveis para Excel, Google Sheets, Airtable ou Notion. Para usuários técnicos que precisam de lógica personalizada, Python oferece mais flexibilidade, mas exige mais configuração e gestão de conformidade.
5. Como posso automatizar a extração recorrente de dados do Google Maps?
Com Python, use bibliotecas de agendamento como schedule ou APScheduler para executar seu raspador em intervalos definidos (diário, semanal etc.). Adicione variação aleatória para evitar detecção e monitore sua cota de API. Com o Thunderbit, você pode agendar extrações recorrentes diretamente na interface — sem necessidade de código ou configuração de servidor.
Pronto para transformar o Google Maps em seu superpoder de vendas e marketing? Seja você um entusiasta de Python ou alguém em busca da solução mais rápida, sem código, as ferramentas já estão aqui em 2026. Experimente o para extração instantânea com IA — ou arregace as mangas e mergulhe na API. De qualquer forma, que suas listas de leads estejam sempre atualizadas, suas exportações limpas e suas campanhas cheias de prospects locais com alta conversão. Boa extração!
Saiba Mais
