Artigo

14 de out. de 2025

Como automatizei a extração de e-mails de sites usando Apify + Python

Aprenda como automatizar a extração de e-mails corporativos a partir de resultados do Google Maps usando Apify e Python. Veja o passo a passo com código real, dicas de scraping e integração com arquivos .txt.

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

Introdução

Automatizar tarefas repetitivas como coleta de e-mails em sites pode economizar horas de trabalho manual. Neste post, compartilho um projeto real que implementei para extrair e-mails automaticamente de sites encontrados via Google Maps.

Combinando a plataforma Apify (para scrapear resultados do Maps) e um script Python (que visita os sites e coleta os e-mails), montei um processo de extração contínua, seguro e extensível.

Ferramentas utilizadas

Apify Actors

Google Maps Email Extactor

Usei dois componentes prontos da plataforma Apify:

  • Google Maps Scraper

    Esse actor coleta resultados de estabelecimentos no Google Maps e exporta os detalhes (nome, site, localização etc.)

  • Google Maps Email Extractor

    Um actor complementar que vasculha os sites coletados e tenta extrair e-mails diretamente.

💡 No meu caso, usei o Scraper para gerar uma lista inicial de URLs, mas optei por usar meu próprio script Python para fazer a extração mais personalizada e robusta.

O Script Python

Criei um script local chamado extrator.py, que faz o seguinte:

  1. Lê um arquivo urls.txt contendo uma URL por linha.

  2. Para cada site, ele acessa a página e identifica os links internos.

  3. Em cada link, ele busca por padrões de e-mail.

  4. Remove duplicatas e salva em um arquivo emails_extraidos.txt.

Estrutura de arquivos

extrator_de_emails/
├── extrator.py
├── urls.txt
└── emails_extraidos.txt

Como funciona o extrator.py

Principais dependências

O script usa:

import requests
from bs4 import BeautifulSoup
import re
import time
import os

Comportamento detalhado:

  • URLs de entrada: lidas do arquivo urls.txt, uma por linha.

  • User-Agent spoofing: para evitar bloqueios de bot.

  • Retry inteligente: para lidar com falhas de conexão.

  • Evita duplicações: o script compara com os e-mails já extraídos e não repete linhas.

Exemplo de código

Aqui está um trecho que mostra a leitura das URLs e varredura dos sites:

with open("urls.txt", "r", encoding="utf-8") as file:
    base_urls = [line.strip() for line in file if line.strip()]

for base_url in base_urls:
    try:
        headers = {"User-Agent": "Mozilla/5.0"}
        response = requests.get(base_url, headers=headers, timeout=10)
    except Exception as e:
        print(f"Erro ao acessar {base_url}: {e}")
        continue

    soup = BeautifulSoup(response.text, 'html.parser')
    links = {a['href'] for a in soup.find_all('a', href=True) if a['href'].startswith("http")}
    
    for link in links:
        print(f"Processando: {link}")
        emails = re.findall(r"[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+", requests.get(link).text)
        # Salvar e-mails no arquivo, evitando duplicações

Resultado final

O script gera um arquivo emails_extraidos.txt com a seguinte estrutura:

https://site1.com/contato -> contato@site1.com
https://site2.com/sobre -> contato@site2.com, financeiro@site2.com

Benefícios dessa automação

  • 🔄 Processo contínuo: basta adicionar novas URLs no urls.txt.

  • 🧹 Sem duplicatas: arquivos limpos e prontos para importação em CRM ou automação de e-mail.

  • Alta performance: centenas de sites processados em poucos minutos.

  • 🔒 Evita bloqueios simples: com uso de headers e espera entre requisições.

Próximos passos

Estou avaliando integrar essa rotina com:

  • Banco de dados SQLite ou Airtable

  • Integração com Notion ou Google Sheets

  • Agendamento via cron job no meu servidor DigitalOcean

Conclusão

Combinando scraping do Google Maps via Apify e varredura customizada com Python, consegui montar uma estrutura confiável para coleta de e-mails corporativos em larga escala.

Esse tipo de automação é especialmente útil para times de prospecção, pesquisa de mercado ou curadoria de parceiros — tudo isso de forma ética, apenas usando e-mails já públicos nos sites oficiais.

📌 Repositório: https://github.com/adrockmkt/extrator_emails (Projeto free sinta-se a vontade em contribuir).

Se quiser ver esse script em ação ou adaptá-lo para seu uso, entre em contato comigo. 🚀

Posts relacionados:

Posts relacionados:

Compartilhe!

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 - 2025 Copyright

All Rights Reserved - Develop by Ad Rock Digital Mkt

© 2010 - 2025 Copyright

All Rights Reserved - Develop by
Ad Rock Digital Mkt