Se você já tentou montar uma lista de vendas segmentada, explorar novos mercados ou comparar concorrentes, sabe o quanto 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 demanda por dados comerciais atualizados e baseados em localização nunca esteve tão alta.
Se você atua em vendas, marketing ou operações, extrair dados estruturados do Google Maps pode ser a diferença entre uma abordagem fria e um lead qualificado com alta chance de conversão.
Tenho anos de experiência em SaaS e automação e já 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. Se você domina Python ou só quer o caminho mais rápido até dados acionáveis, este conteúdo é para você.
O que significa extrair dados do Google Maps com Python?
Vamos começar pelo básico: extrair dados do Google Maps com Python significa capturar programaticamente informações comerciais — como nome, endereço, avaliações, comentários, telefone e coordenadas — diretamente do Google Maps, para depois analisar, filtrar e exportar esses dados para uso em negócios.

Existem duas formas principais de fazer isso:
- Google Maps Places API: é o caminho oficial e licenciado. 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 limites de uso 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, mas também mais frágil — o Google altera a estrutura do site com frequência, e extrair o HTML pode violar os termos da plataforma.
Campos de dados mais comuns que você pode extrair:
- Nome da empresa
- Categoria/tipo
- Endereço completo (incluindo cidade, estado, CEP e país)
- Latitude e longitude
- Número de telefone
- URL do site
- Avaliação e quantidade de comentários
- Faixa de preço
- Status do estabelecimento (aberto/fechado)
- 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ório até análise de concorrência e pesquisa de mercado. O segredo é buscar os dados certos para o seu objetivo — não sair extraindo tudo sem critério.
Por que equipes de vendas e marketing extraem dados do Google Maps usando Python
Vamos ao que interessa. Por que tantas equipes de vendas e marketing estão tão obcecadas por dados do Google Maps em 2026?
- Geração de leads: crie listas altamente segmentadas de negócios locais, com contatos e avaliações, para campanhas de prospecção.
- Planejamento de território: mapeie territórios de vendas, áreas de entrega ou regiões de atendimento com base na densidade real de empresas e seus tipos.
- Monitoramento de concorrentes: acompanhe localização, avaliações e 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 sentimento das avaliações para orientar estratégias de go-to-market.
- Escolha de ponto comercial: em imóveis e varejo, avalie possíveis localizações com base em serviços próximos, fluxo de pessoas e concorrência.
Impacto no mundo real: segundo o , 92% das equipes de vendas pretendem ampliar investimentos em IA e dados, e equipes que usam dados locais e segmentados conseguem taxas de conversão até 8× maiores do que aquelas que dependem de listas frias genéricas (). Um estudo sobre geração de leads para franquias mostrou US$ 15 de nova receita para cada US$ 1 investido em listas de leads baseadas no Google Maps.
Relacionando objetivos de negócio aos campos do Google Maps:
| Objetivo de negócio | Campos do Google Maps necessários |
|---|---|
| Lista local de leads | nome, endereço, telefone, site, categoria |
| Planejamento de território | nome, lat/lng, business_status, opening_hours |
| Benchmark de concorrentes | nome, rating, userRatingCount, priceLevel, reviews |
| Escolha de ponto comercial | category, lat/lng, review density, openingDate |
| Insights de sentimento/cardápio | reviews, editorialSummary, photos, types |
| Abordagem por e-mail/telefone | nationalPhoneNumber, websiteUri (e depois enriquecer, se necessário) |
Como preparar seu extrator do Google Maps em Python: ferramentas e requisitos
Antes de começar a extrair dados, você precisa configurar seu ambiente Python e reunir as ferramentas certas. Em 2026, você vai precisar do seguinte:
1. Instale Python e as bibliotecas necessárias
Versão recomendada do Python: 3.10 ou superior.
Instale as principais bibliotecas:
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
Para que servem:
requests,httpx: requisições HTTP (chamadas de API)beautifulsoup4,lxml: parsing 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: carregar chaves de API com segurança a partir de arquivos.envtenacity: lógica de repetição para tratamento de erros
2. Obtenha uma chave da API do Google Maps (para extração via API)
- Acesse o .
- Crie ou selecione um projeto.
- Ative o faturamento (obrigatório, mesmo no uso da camada gratuita).
- Ative “Places API (New)” em APIs & Services > Library.
- Vá em Credentials > Create Credentials > API Key.
- Restrinja a chave a APIs e IPs específicos por segurança.
- Guarde a chave em um arquivo
.env(nunca coloque isso diretamente no código):
1GOOGLE_MAPS_API_KEY=sua_chave_api_real_aqui
Observação: em março de 2025, o Google deixou de oferecer um crédito universal de US$ 200 por mês. Em vez disso, passou a disponibilizar limites gratuitos mensais por faixa de API (veja a ).
Como extrair dados do Google Maps usando Python: guia passo a passo
Vamos dividir as duas abordagens principais — baseada em API e scraping do HTML — para que você escolha a que melhor se encaixa na sua necessidade.
Abordagem 1: usar a Google Maps Places API (recomendado)
Passo 1: instalar e importar as bibliotecas necessárias
1import os
2import httpx
3import pandas as pd
4from dotenv import load_dotenv
Passo 2: carregar sua chave de API com segurança
1load_dotenv()
2API_KEY = os.environ["GOOGLE_MAPS_API_KEY"]
Passo 3: montar sua consulta de busca
Você vai usar o endpoint Text Search para encontrar negócios que correspondam ao seu critério.
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])
Passo 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 isso!
19 }
20 r = httpx.post(URL, json=body, headers=headers, timeout=30)
21 r.raise_for_status()
22 return r.json()
Passo 5: lidar com 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
Passo 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 de especialista:
- Sempre use o cabeçalho
X-Goog-FieldMaskpara controlar custos. Se você solicitar comentários 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 os valores de
place_idpara deduplicação e atualizações futuras.
Abordagem 2: fazer scraping do HTML do Google Maps (para uso educacional ou pontual)
Aviso: o Google Maps é uma aplicação de página única. Você precisa usar automação de navegador (Playwright ou Selenium), e extrair o HTML pode violar os termos do Google. Use isso para pesquisa, não para produção.
Passo 1: instalar o Playwright e abrir 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 esse código pode exigir atualizações frequentes.
- Use atrasos semelhantes aos humanos e evite extrair dados rápido demais para reduzir o risco de bloqueio.
- Nunca tente burlar CAPTCHAs ou o sistema SearchGuard do Google — isso pode gerar risco jurídico.
Evite extração cega: como direcionar com precisão os dados que você precisa
Extrair tudo é receita para perder tempo e criar conjuntos de dados inchados. Veja como focar apenas no que realmente importa:
- Gere listas de URLs segmentadas: use os próprios filtros de busca do Google Maps (categoria, localização, avaliação, aberto agora) para afunilar os resultados antes de extrair.
- Use correspondência por expressão: pesquise tipos exatos de negócios ou palavras-chave específicas (por exemplo, “padaria vegana em Austin”).
- Filtros de localização: especifique cidade, bairro ou até coordenadas e raio para maior precisão.
- Filtragem no lado do servidor (API): use
minRating,includedTypeelocationBiasno corpo da requisição. - Filtragem no lado do cliente (Python): depois da extração, use o pandas para filtrar empresas com avaliação 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)
Usando bibliotecas Python para organizar e exportar dados do Google Maps
Depois de extrair os dados, é hora de limpar, analisar e exportar tudo 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 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 extrator do Google Maps em Python
Agora, se você está pensando: “isso dá muito trabalho para montar uma simples lista de leads”, você não está sozinho. Foi exatamente por isso que criamos o — um web scraper sem código e com IA que torna a extração de dados do Google Maps (e muito mais) algo tão simples quanto alguns cliques.
Por que escolher o Thunderbit?
- Sem programação nem chave 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.
- Extração de subpáginas: quer enriquecer sua tabela com dados de cada site de empresa? O Thunderbit pode visitar cada subpágina e coletar informações extras automaticamente.
- Exportação para Excel, Google Sheets, Airtable ou Notion: nada de ficar lutando com pandas — é só clicar em “Export” e seus dados já estão prontos para a equipe.
- Extração agendada: configure tarefas recorrentes para monitorar concorrentes ou atualizar sua lista de leads automaticamente.
- Manutenção zero: a IA do Thunderbit se adapta a mudanças no site, então você não fica corrigindo script quebrado o tempo todo.

Thunderbit versus fluxo em Python:
| Etapa | Extrator em Python | Thunderbit |
|---|---|---|
| Instalação das 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, field masks | AI Suggest Fields (1 clique) |
| Extração de dados | Escrever/rodar scripts, lidar com erros | Clique em “Scrape” |
| Exportação | pandas para CSV/Excel | Exportar para Excel/Sheets/Notion |
| Manutenção | Atualizações manuais quando o site muda | 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.
Como se manter em conformidade: termos de uso do Google Maps e ética no scraping
Aqui é onde muitos tutoriais em Python ficam perigosamente desatualizados. Em 2026, você precisa saber o seguinte:
- Os Termos da Plataforma Google Maps §3.2.3 proíbem de forma rígida scraping, cache ou exportação de dados fora das APIs oficiais (). A única exceção: valores de latitude/longitude podem ser armazenados por até 30 dias; Place IDs podem ser guardados indefinidamente.
- Usuários da API estão vinculados por contrato: se você usa uma chave de API, aceitou os termos do Google — mesmo que esteja lidando apenas com dados públicos.
- Contornar barreiras técnicas (CAPTCHAs, SearchGuard) agora pode configurar uma possível violação da DMCA §1201, com risco de penalidades criminais ().
- GDPR e leis de privacidade: se você coletar dados pessoais (e-mails, telefones, nomes de avaliadores) do Google Maps, precisa ter base legal e respeitar solicitações de exclusão. A autoridade francesa CNIL multou a KASPR em €200.000 em 2024 por extração de contatos do LinkedIn ().
- Boas práticas:
- Prefira a 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 ou bloqueios técnicos.
- Não redistribua dados pessoais extraídos.
- Respeite solicitações de exclusão e opt-out.
- Revise sempre as leis locais — GDPR, CCPA e outras estão sendo aplicadas de forma ativa.
Resumo: se conformidade é uma preocupação, fique com a API e reduza ao mínimo os dados que você coleta. Para a maioria dos usuários de negócios, uma ferramenta sem código como o Thunderbit diminui o risco operacional (sem chave de API, sem redistribuição).
Agendando e automatizando sua extração do Google Maps com Python
Se você precisa manter os dados sempre atualizados — por exemplo, para monitoramento semanal de concorrentes ou atualização mensal de listas de leads — 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 em 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 AM ± 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 jitter aleatório ao agendamento para evitar padrões previsíveis.
- No scraping de HTML, nunca ultrapasse 1–2 requisições por segundo.
- No uso da API, monitore sua cota e configure alertas de faturamento.
- Registre sempre os 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 comercial, sustentando tudo, de geração de leads a pesquisa de mercado.
- A extração com Python oferece flexibilidade e controle, mas também exige configuração, manutenção e atenção à conformidade — especialmente com o avanço das medidas anti-bot do Google e da fiscalização legal.
- A extração via API é o caminho mais seguro e escalável para a maioria das equipes. Use sempre field masks e filtros no lado do servidor para controlar custos.
- O scraping de HTML é frágil e arriscado — use apenas em pesquisas pontuais e nunca burle barreiras técnicas.
- Direcione os dados com precisão: use correspondência por expressão, filtros de localização e fluxos com pandas para extrair apenas o necessário.
- O 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ção para evitar dores de cabeça jurídicas.
Para mais tutoriais e dicas, confira o e nosso .
FAQs
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. Já o scraping do HTML do Google Maps é explicitamente proibido pelos Termos de Uso 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 scraping do HTML?
A API é estável, licenciada e feita para extração de dados, mas exige chave de API e está sujeita a cotas e custos. O scraping de HTML usa automação de navegador para capturar dados da página renderizada, mas é frágil (o site muda com frequência), pode violar os termos e envolve mais risco jurídico. Para a maioria dos usos empresariais, 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 e varia de US$ 5 (Essentials) a US$ 25 (Enterprise+Atmosphere), dependendo dos campos solicitados. Existem limites gratuitos mensais (10.000 para Essentials, 5.000 para Pro, 1.000 para Enterprise), mas extrações em grande escala podem acumular custos rapidamente. Use sempre field masks e filtros no lado do servidor para controlar os gastos.
4. Como o Thunderbit se compara aos extratores do Google Maps baseados em Python?
O Thunderbit é um web scraper sem código, com IA, que permite extrair dados do Google Maps — e muito mais — sem programação, chave de API ou manutenção. É ideal para equipes de vendas e marketing que querem exportar rápido e com confiabilidade 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 extrator em intervalos definidos (diariamente, semanalmente etc.). Adicione jitter aleatório para evitar detecção e monitore sua cota de API. Com o Thunderbit, você pode agendar extrações recorrentes diretamente na interface — sem código nem configuração de servidor.
Pronto para transformar o Google Maps em uma superpotência para vendas e marketing? Seja você fã de Python ou alguém em busca da solução sem código mais rápida, as ferramentas já estão disponíveis em 2026. Experimente o para uma extração instantânea com IA — ou coloque a mão na massa e mergulhe na API. De qualquer forma, que suas listas de leads estejam sempre atualizadas, seus exports limpos e suas campanhas cheias de prospects locais com alta conversão. Boa extração!
Saiba mais
