Automatize a caça a domínios expirados com Python
Publicado por Peter Nagy · Com ajuda de IA · 8 de agosto de 2026 · 5 min de leitura
Automatizar a caça a domínios expirados significa substituir a atualização manual de listas por um script Python que consulta listas de drops, filtra por métricas e envia alertas. Você vai usar requests, BeautifulSoup e um cron job simples. Não é nada sofisticado, mas transforma horas em minutos. E quando encontrar um domínio ruim, sempre dá para enterrá-lo depois.
O que exatamente faz a automação de caça a domínios expirados?
Ela transforma uma tarefa chata e repetitiva em um script que você configura e esquece. Você escreve código Python que busca listas de domínios expirados de fontes públicas, verifica cada nome contra suas regras e envia uma mensagem quando algo combina. Chega de acordar às 3 da manhã para ver se aquele .io de 4 letras finalmente caiu.
O loop principal é simples: buscar, filtrar, alertar. Você pode rodar em um VPS barato ou no seu próprio computador com um cron job. Dá para montar tudo em uma tarde, mesmo sem ser um desenvolvedor profissional.
Pré-requisitos: O que você precisa antes de escrever o script?
Alguns básicos. Você precisa do Python 3.8 ou mais novo instalado, além de um editor de texto. Também vai querer uma conta gratuita em um serviço de API de domínios como WhoisXMLAPI ou RDAP para verificar datas de registro. Gaste zero reais nessa etapa, a menos que queira pagar por limites maiores de requisições.
Você também precisa de um filtro claro. Saiba o que está caçando: número de palavras, comprimento, extensão, backlinks ou um nicho específico. Anote isso antes de programar, senão vai acabar com um script que te alerta sobre todo domínio aleatório da internet.
Passo 1: Como buscar listas de domínios expirados?
Comece com listas públicas de drops. Serviços como ExpiredDomains.net e NameJet publicam listas diárias, embora nem sempre sejam fáceis de raspar. Use requests e BeautifulSoup para puxar o HTML e extrair as linhas da tabela.
import requests
from bs4 import BeautifulSoup
url = "https://www.expireddomains.net/expired-domains/"
headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, "html.parser")
Isso te dá a página bruta. Depois você extrai os nomes de domínio da tabela. A maioria das listas usa uma estrutura parecida, então algumas chamadas find_all resolvem. Seja educado com os limites de requisição, senão você será bloqueado.
Passo 2: Como filtrar domínios com Python?
Os filtros são onde a mágica acontece. Escreva uma função que recebe um domínio e retorna True ou False baseado nas suas regras. Por exemplo, você pode querer só domínios .com com exatamente 6 letras e sem hífens.
def is_worth_checking(domain):
name, ext = domain.split(".")
return ext == "com" and len(name) == 6 and "-" not in name
Você também pode filtrar por listas de palavras-chave. Se está caçando domínios de fitness, mantenha uma lista de palavras relevantes e veja se alguma aparece. Use re para expressões regulares se precisar de padrões mais complexos.
Passo 3: Como verificar disponibilidade e métricas do domínio?
Depois de ter uma lista filtrada, você precisa saber se o domínio está realmente expirando. Use RDAP para verificar o status de registro. A biblioteca rdap facilita isso.
import rdap
def check_status(domain):
data = rdap.query(domain)
return data.get("status", [])
Se o status incluir "pending delete" ou "redemption period", provavelmente está expirando. Você também pode verificar backlinks usando uma API gratuita como Open PageRank, mas vai precisar de uma chave de API. Mantenha as verificações leves, porque muitas requisições vão te atrasar.
Passo 4: Como agendar o script para rodar automaticamente?
Use cron no Linux ou o Agendador de Tarefas no Windows. Rode o script uma vez por dia, ou a cada poucas horas se estiver atrás de drops quentes. Uma linha de cron simples fica assim:
0 6 * * * cd /caminho/do/script && python3 hunt.py
Isso roda todo dia às 6 da manhã. Você recebe os resultados antes da correria diária. Também pode usar a biblioteca schedule se preferir manter tudo em Python.
Passo 5: Como receber alertas quando encontrar algo?
Email, Telegram ou Slack. O mais fácil é Telegram, porque você envia uma mensagem com uma simples requisição POST. Crie um bot, pegue o ID do chat e use requests.post para enviar uma mensagem quando seu filtro encontrar algo.
import requests
def send_alert(domain):
token = "SEU_TOKEN_DO_BOT"
chat_id = "SEU_CHAT_ID"
text = f"Encontrado: {domain}"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": text})
Agora você recebe notificações no celular sem mexer no script. Só lembre de manter o token do bot em segredo.
Passo 6: Como lidar com os resultados e decidir o que comprar?
Quando o alerta chegar, você ainda precisa fazer verificações manuais. Use um registrador como Namecheap ou GoDaddy para ver o preço exato e consulte o Wayback Machine para ver o conteúdo histórico. Nem todo domínio expirado vale a taxa de registro.
Se comprar um e ele for uma porcaria, você pode enterrar seu projeto morto por um dólar. É um jeito barato de se desapegar. E se estiver procurando inspiração ou uma pechincha, navegue pelo cemitério para ver o que outros abandonaram.
O que pode dar errado na caça automatizada?
Muita coisa. Seu script pode quebrar quando o site mudar a estrutura HTML. Você pode ser limitado por taxa ou ter o IP bloqueado. Pode filtrar agressivamente demais e perder bons nomes, ou filtrar de forma muito frouxa e ser inundado de lixo.
Além disso, o mercado de domínios anda rápido. Um nome que parece livre pode ser registrado por outra pessoa antes do seu cron job rodar. Isso é normal. Coloque uma repetição ou uma espera no código, e não se apegue a nenhum domínio específico.
Você realmente precisa automatizar isso?
Se você verifica drops uma vez por semana, não. Mas se atualiza listas diariamente, um script economiza horas. Também permite agir mais rápido quando um bom nome aparece. Velocidade importa na caça a domínios expirados, porque nomes bons desaparecem em minutos.
O lado negativo é que a automação pode te fazer achar que está sendo produtivo. Não está. Você só está filtrando mais rápido. O trabalho real ainda é a revisão manual.
E agora, para onde ir?
Comece pequeno. Escolha uma fonte, um filtro e um método de alerta. Faça isso funcionar antes de adicionar complexidade. Depois expanda para mais fontes ou mais filtros. O script não precisa ser perfeito, só precisa rodar.
E se você acabar com um domínio que não quer, não deixe apodrecer. Enterre-o no dead.domains e deixe alguém dar uma segunda vida. Esse é o ciclo da propriedade digital, e é estranhamente satisfatório.
Visite o dead.domains para ver o que já foi enterrado.
FAQ
É legal raspar listas de domínios expirados?
Sim, desde que você respeite o robots.txt e os limites de taxa. Listas públicas são feitas para serem vistas, mas raspar muito rápido pode fazer você ser bloqueado. Use delays razoáveis e um user-agent adequado. Se o site tiver uma API paga, considere usá-la para evitar dores de cabeça legais.
Qual a melhor biblioteca Python para analisar HTML?
BeautifulSoup é a escolha mais comum porque é fácil de aprender e funciona bem com HTML bagunçado. Para parsing mais complexo, você pode usar lxml ou Scrapy. Comece com BeautifulSoup e só troque quando bater em limites de performance.
Com que frequência devo rodar meu script de domínios expirados?
Uma vez por dia geralmente é suficiente para a maioria dos nichos. Se estiver atrás de drops de alto valor, rode a cada poucas horas. Lembre-se que rodar com mais frequência aumenta a chance de ser limitado por taxa, então equilibre velocidade com segurança.
Posso automatizar todo o processo de compra?
Parcialmente. Você pode automatizar a verificação de disponibilidade e até o backorder, mas o registro em si geralmente exige confirmação manual. Alguns registradores oferecem APIs para compras automatizadas, mas costumam ter saldos mínimos ou exigir aprovação. Não espere um pipeline totalmente automático.
O que fazer se meu script parar de funcionar?
Primeiro, verifique a estrutura HTML do site. Sites mudam de layout com frequência, então seus seletores podem quebrar. Adicione tratamento de erros ao seu script para que ele registre o problema e te alerte. Depois, atualize os seletores e rode novamente. É uma manutenção normal.