Web Domain Crawler es una herramienta de reconocimiento (OSINT) y auditoría web escrita en Python. Su objetivo principal es mapear la superficie de ataque o la estructura de enlaces de un sitio web, extrayendo todos los dominios únicos externos e internos, mientras filtra activamente el "ruido" de las redes sociales.
- ⚡ Filtrado de Redes Sociales: Lista negra integrada con más de 30 plataformas (Facebook, X, TikTok, Discord, etc.).
- 🔄 Recursividad Inteligente: Explora enlaces internos automáticamente para encontrar dominios ocultos en páginas secundarias.
- 🛡️ Evasión Básica: Utiliza Headers de un navegador real (
User-Agent) para evitar bloqueos inmediatos. - 📂 Exclusiones Externas: Soporta un archivo
excludes.txtpara que el usuario ignore dominios especificados. - 🎨 Interfaz Estilizada: Banner ASCII personalizado en color celeste y reportes de progreso en tiempo real.
- 💾 Persistencia: Si detienes el escaneo con
Ctrl+C, el script guarda automáticamente lo que haya encontrado hasta el momento.
El crawler funciona siguiendo este flujo:
- Normalización: Limpia la URL objetivo y extrae el dominio base.
- Extracción: Descarga el código HTML y localiza todas las etiquetas
<a>. - Validación: Convierte links relativos en absolutos y verifica que sean URLs válidas.
- Clasificación:
- Si el link es del mismo dominio, lo añade a la cola para seguir "escarbando".
- Si el link es externo, extrae el dominio y lo guarda (si no está en la lista negra).
- Prevención de Bucles: Mantiene un registro de URLs visitadas para no entrar en ciclos infinitos.
Se recomienda el uso de un entorno virtual para mantener limpio tu sistema:
# Crear entorno
python -m venv venv
# Activar (Windows)
.\venv\Scripts\activate
# Activar (Linux/Mac)
source venv/bin/activatepip install -r requirements.txtpython web-crawler.py -u https://ejemplo.com -o resultados.txt -l 50Si quieres ignorar dominios como google.com o amazon.com, crea un archivo excludes.txt y ejecútalo así:
python web-crawler.py -u https://sitio-objetivo.com -o salida.txt -e excludes.txt -l 200 -d 0.5-u, --url: URL inicial (TARGET).-o, --output: Nombre del archivo de salida (Default: dominios.txt).-e, --excludes: Archivo con dominios extra a ignorar.-l, --limit: Límite de páginas a rastrear (Default: 100).-d, --delay: Segundos entre peticiones (Default: 1.0).
Puedes crear este archivo para omitir dominios que no te interesen:
google.com
gstatic.com
doubleclick.net
amazon.es
Esta herramienta fue creada con fines educativos y de auditoría ética. El autor no se hace responsable del mal uso de este software. Realizar peticiones masivas a un sitio web sin autorización puede ser considerado una actividad hostil. Respeta siempre el archivo robots.txt y los términos de servicio del sitio objetivo.
Desarrollado con ❤️ por estigma.
