Automatiza a caza de dominios caducados con Python
Publicado por Peter Nagy · Con axuda de IA · 8 de agosto de 2026 · 5 min de lectura
A caza automatizada de dominios caducados consiste en substituír a actualización manual de listas por un script en Python que consulta listas de baixa, filtra por métricas e che avisa. Usarás requests, BeautifulSoup e un cron simple. Non é nada sofisticado, pero convirte horas en minutos. E se atopas un chasco, sempre podes enterralo despois.
Que fai exactamente a caza automatizada de dominios caducados?
Converte unha tarefa aburrida e repetitiva nun script que se esquece. Escribes código Python que recolle listas de dominios caducados de fontes públicas, comproba cada nome contra as túas regras e envíache unha mensaxe cando algo cadra. Non máis espertar ás 3 da mañá para ver se ese .io de 4 letras caeu.
O bucle principal é simple: recolle, filtra, avisa. Podes executalo nun VPS barato ou no teu propio ordenador cun cron. Podes montar todo nunha tarde, mesmo se non es un programador profesional.
Requisitos: Que precisas antes de escribir o script?
Unhas cantas cousas básicas. Necesitas Python 3.8 ou máis novo instalado, e un editor de texto. Tamén che virá ben unha conta gratuíta nun servizo de API de dominios como WhoisXMLAPI ou RDAP para comprobar datas de rexistro. Orzamento cero euros para este paso, a non ser que queiras pagar por límites de peticións máis altos.
Tamén precisas un filtro claro. Sabe o que buscas: número de palabras, lonxitude, extensión, backlinks ou un nicho concreto. Apúntao antes de programar, ou rematarás cun script que che avise de cada dominio aleatorio de internet.
Paso 1: Como recolhes listas de dominios caducados?
Empeza con listas de baixa públicas. Servizos como ExpiredDomains.net e NameJet publican listas diarias, aínda que non sempre son doadas de raspar. Usa requests e BeautifulSoup para coller o HTML e analizar as filas da táboa.
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")
Iso dáche a páxina en bruto. Despois extraes os nomes de dominio da táboa. A maioría das listas usan unha estrutura similar, así que con un par de find_all chega. Sexa educado cos límites de peticións, ou bloquearante.
Paso 2: Como filtras dominios con Python?
Os filtros son onde ocorre a maxia. Escribe unha función que reciba un dominio e devolva True ou False segundo as túas regras. Por exemplo, pode que queiras só dominios .com con exactamente 6 letras e sen guións.
def is_worth_checking(domain):
name, ext = domain.split(".")
return ext == "com" and len(name) == 6 and "-" not in name
Tamén podes filtrar por listas de palabras clave. Se buscas dominios de fitness, mantén unha lista de palabras relevantes e comproba se aparece algunha. Usa re para buscas con expresión regular se precisas patróns máis complexos.
Paso 3: Como comprobas a dispoñibilidade e as métricas do dominio?
Unha vez que tes unha lista filtrada, necesitas saber se o dominio está realmente a caducar. Usa RDAP para comprobar o estado de rexistro. A biblioteca rdap facilita isto.
import rdap
def check_status(domain):
data = rdap.query(domain)
return data.get("status", [])
Se o estado inclúe "pending delete" ou "redemption period", é probable que estea a caducar. Tamén podes comprobar backlinks usando unha API gratuíta como Open PageRank, aínda que precisarás unha chave de API. Mantén as comprobacións lixeiras, porque demasiadas peticións retardarante.
Paso 4: Como programar o script para que se execute automaticamente?
Usa cron en Linux ou o Programador de tarefas en Windows. Executa o script unha vez ao día, ou cada poucas horas se vas tras baixas quentes. Unha liña de cron simple é así:
0 6 * * * cd /ruta/ao/script && python3 hunt.py
Iso execútao cada mañá ás 6 AM. Recibirás resultados antes da présa diaria. Tamén podes usar a biblioteca schedule se prefires mantelo todo en Python.
Paso 5: Como recibes avisos cando se atopa unha coincidencia?
Correo electrónico, Telegram ou Slack. O máis doado é Telegram, porque podes enviar unha mensaxe cunha petición POST simple. Crea un bot, obtén o ID do chat e usa requests.post para enviar unha mensaxe cando o teu filtro atope algo.
import requests
def send_alert(domain):
token = "O_TEU_TOKEN_DO_BOT"
chat_id = "O_TEU_ID_DO_CHAT"
text = f"Atopado: {domain}"
url = f"https://api.telegram.org/bot{token}/sendMessage"
requests.post(url, data={"chat_id": chat_id, "text": text})
Agora recibes avisos no móbil sen tocar o script. Só lembra manter privado o token do bot.
Paso 6: Como xestionas os resultados e decides que mercar?
Cando chegue o aviso, aínda tes que facer comprobacións manuais. Usa un rexistrador como Namecheap ou GoDaddy para ver o prezo exacto, e comproba a Wayback Machine para ver contido histórico. Non todo dominio caducado vale a taxa de rexistro.
Se mercas un e resulta ser un chasco, podes enterrar o teu proxecto morto por un dólar. É un xeito barato de deixar ir. E se buscas inspiración ou unha ganga, bota un ollo ao cemiterio para ver que abandonaron outros.
Que pode ir mal coa caza automatizada?
Moito. O teu script pode romperse cando o sitio web cambie a súa estrutura HTML. Pode que che limiten as peticións ou bloqueen o IP. Podes filtrar con demasiada agresividade e perder bos nomes, ou con demasiada laxitude e recibir unha chea de lixo.
Ademais, o mercado de dominios móvese rápido. Un nome que parece libre pode ser rexistrado por outra persoa antes de que se execute o teu cron. Iso é normal. Pon un reintento ou unha espera, e non te encariñes con ningún dominio.
De verdade precisas automatizar isto?
Se comprobas as baixas unha vez á semana, non. Pero se actualizas listas a diario, un script aforra horas. Tamén che permite actuar máis rápido cando aparece un bo nome. A velocidade importa na caza de dominios caducados, porque os bos nomes desaparecen en minutos.
O lado malo é que a automatización pode facerche pensar que estás a ser produtivo. Non o es. Só estás a filtrar máis rápido. O traballo real segue na revisión manual.
Por onde continúas?
Empeza pequeno. Escolle unha fonte, un filtro e un método de aviso. Fai que funcione antes de engadir complexidade. Despois amplía a máis fontes ou máis filtros. O script non ten que ser perfecto, só ten que funcionar.
E se rematas cun dominio que non queres, non o deixes podrecer. Entérrao en dead.domains e deixa que outra persoa lle dea unha segunda vida. Ese é o ciclo da propiedade dixital, e é estrañamente satisfactorio.
Pásate por dead.domains para ver que xa foi enterrado.
Preguntas frecuentes
É legal raspar listas de dominios caducados?
Si, sempre que respectes robots.txt e os límites de peticións. As listas públicas están para ser vistas, pero raspar demasiado rápido pode facer que te bloqueen. Usa demoras razoables e un user-agent axeitado. Se un sitio ten unha API de pago, considera usala para evitar problemas legais.
Cal é a mellor biblioteca Python para analizar HTML?
BeautifulSoup é a opción máis común porque é doada de aprender e funciona ben con HTML desordenado. Para análise máis complexa, podes usar lxml ou Scrapy. Empeza con BeautifulSoup e cambia só cando atopes límites de rendemento.
Con que frecuencia debo executar o meu script de dominios caducados?
Unha vez ao día adoita ser suficiente para a maioría dos nichos. Se vas tras baixas de alto valor, execútao cada poucas horas. Lembra que execucións máis frecuentes aumentan a probabilidade de que che limiten as peticións, así que equilibra velocidade con seguridade.
Podo automatizar todo o proceso de compra?
Parcialmente. Podes automatizar a comprobación de dispoñibilidade e mesmo a reserva, pero o rexistro real normalmente require confirmación manual. Algúns rexistradores ofrecen APIs para compras automatizadas, pero adoitan ter saldos mínimos ou requirir aprobación. Non esperes un proceso completamente automático.
Que debo facer se o meu script deixa de funcionar?
Comproba primeiro a estrutura HTML do sitio. Os sitios cambian de deseño a miúdo, así que os teus selectores poden romperse. Engade xestión de erros ao teu script para que rexistre o problema e che avise. Despois actualiza os selectores e volve a executar. É unha tarefa de mantemento normal.