Volver al Portfolio QA
VER DEMO EN VIVO

⚡ Versión web funcionando 24/7 en Render.com

Exterminador de Enlaces Rotos

Herramienta profesional de QA para auditar sitios web y detectar enlaces rotos

Python BeautifulSoup Requests Pandas

100%

Automatizado

CSV

Reportes

QA

Testing

🔧 ¿Qué es este proyecto?

Script de Python profesional para realizar auditorías de calidad en sitios web, detectando automáticamente enlaces rotos, URLs con errores y problemas de navegación que afectan la experiencia del usuario y el SEO.

Genera reportes detallados en formato CSV/Excel listos para presentar a equipos de desarrollo, con información completa de status codes, URLs problemáticas y diagnósticos técnicos.

🎯 Características Principales

Escaneo Automático

Extrae y verifica todos los enlaces de una página web automáticamente, sin intervención manual.

Verificación de Status

Comprueba códigos HTTP (200, 404, 500, etc.) y detecta timeouts, errores SSL y problemas de conexión.

Interfaz Colorida

Feedback visual en tiempo real: verde para enlaces OK, rojo para errores, fácil de interpretar.

Reportes CSV

Genera reportes profesionales en CSV con URL origen, enlaces rotos y códigos de error.

User-Agent Falso

Simula navegador real para evitar bloqueos de bots y acceder a sitios protegidos.

Manejo Robusto

Gestión inteligente de errores, timeouts y excepciones para auditorías confiables.

🧪 Flujo de Auditoría QA

  1. Ingreso de URL: El usuario proporciona la URL del sitio a auditar
  2. Extracción: BeautifulSoup parsea el HTML y extrae todos los enlaces
  3. Verificación: Requests comprueba cada enlace con headers personalizados
  4. Análisis: Clasifica los enlaces por status code (OK, Error, Timeout)
  5. Reporte: Genera CSV con enlaces rotos listos para revisión
  6. Presentación: Feedback visual inmediato en consola con colores

💡 Casos de Uso en QA

  • Testing Pre-Producción: Validar que no hay enlaces rotos antes del lanzamiento
  • Auditorías Periódicas: Verificación continua de sitios en producción
  • Migración de Sitios: Confirmar que todos los enlaces apuntan correctamente
  • Mantenimiento Web: Detectar enlaces obsoletos o páginas eliminadas
  • SEO Quality: Asegurar que no hay errores 404 que afecten el ranking
  • Reportes de Cliente: Documentación profesional de problemas encontrados

🛠️ Stack Técnico

Python Core

Lenguaje principal para lógica de escaneo, manejo de errores y procesamiento de datos.

BeautifulSoup

Parsing de HTML y extracción inteligente de todos los elementos de tipo enlace.

Requests

Librería HTTP para verificación de enlaces con manejo de headers y timeouts.

Pandas

Generación de reportes estructurados en formato CSV/Excel para análisis.

📊 Output del Reporte

El script genera un archivo reporte_errores.csv con las siguientes columnas:

  • 🔹 URL_Origen: La página web auditada
  • 🔹 Link_Roto: El enlace específico que presentó error
  • 🔹 Status_Code: Código HTTP o tipo de error (404, 500, TIMEOUT, etc.)

✨ Ventajas para QA Testers

  • ✅ Ahorro de Tiempo: Automatiza lo que tomaría horas hacer manualmente
  • ✅ Precisión Total: Elimina errores humanos en verificación manual
  • ✅ Escalabilidad: Audita sitios con cientos de enlaces en minutos
  • ✅ Documentación: Reportes profesionales para stakeholders
  • ✅ Reutilizable: Script adaptable para diferentes proyectos
  • ✅ Visual: Feedback inmediato con colores en consola

📍 Cómo Funciona el Script

El script utiliza tecnologías de scraping y validación HTTP para realizar auditorías completas de enlaces:

Proceso Interno:

1. Configuración de Headers:

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
}

Simula un navegador real para evitar bloqueos anti-bot.

2. Obtención del HTML:

response = requests.get(url_objetivo, headers=headers, timeout=10)
soup = BeautifulSoup(response.content, 'html.parser')

Descarga la página y parsea el HTML con BeautifulSoup.

3. Extracción de Enlaces:

enlaces = soup.find_all('a', href=True)
for enlace in enlaces:
    url_completa = urljoin(url_objetivo, enlace['href'])

Encuentra todos los elementos <a> y construye URLs absolutas.

4. Verificación Individual:

try:
    r = requests.head(url, timeout=5)
    if r.status_code == 200:
        print(f"{Fore.GREEN}✓ OK - {url}")
    else:
        print(f"{Fore.RED}✗ ERROR {r.status_code}")
        enlaces_rotos.append(url)
except requests.exceptions.Timeout:
    print(f"{Fore.RED}✗ TIMEOUT - {url}")
    enlaces_rotos.append(url)

Verifica cada enlace y captura errores HTTP, timeouts y problemas SSL.

5. Generación de Reporte:

df = pd.DataFrame({
    'URL_Origen': [url_objetivo] * len(enlaces_rotos),
    'Link_Roto': enlaces_rotos,
    'Status_Code': status_codes
})
df.to_csv('reporte_errores.csv', index=False)

Crea un DataFrame con Pandas y exporta a CSV para análisis.

🚀 Guía de Uso Paso a Paso

1. Instalación de Dependencias

Primero, instala las librerías necesarias:

pip install requests beautifulsoup4 colorama pandas

requests: Para hacer peticiones HTTP
beautifulsoup4: Para parsear HTML
colorama: Para colores en consola
pandas: Para generar reportes CSV

2. Ejecución del Script

Ejecuta el script desde la terminal:

python broken_link_checker.py

El script te pedirá la URL a auditar:

Ingresa la URL del sitio web a auditar: https://ejemplo.com

3. Salida en Consola

Verás el progreso en tiempo real con colores:

🔍 Iniciando escaneo en: https://ejemplo.com...

✓ OK (200) - https://ejemplo.com/about

✓ OK (200) - https://ejemplo.com/contact

✗ ERROR (404) - https://ejemplo.com/old-page

✗ TIMEOUT - https://ejemplo.com/slow-server

✓ OK (200) - https://ejemplo.com/services

📊 Escaneo completado: 2 enlaces rotos encontrados

💾 Reporte guardado: reporte_errores.csv

4. Análisis del Reporte CSV

El archivo reporte_errores.csv contiene:

URL_Origen Link_Roto Status_Code
https://ejemplo.com https://ejemplo.com/old-page 404
https://ejemplo.com https://ejemplo.com/slow-server TIMEOUT

Puedes abrir este archivo en Excel, Google Sheets o cualquier editor de CSV para análisis detallado.

5. Repositorio y Control de Versiones

Para subir el proyecto a GitHub:

# Inicializa el repositorio Git
git init

# Añade todos los archivos
git add .

# Crea el primer commit
git commit -m "Añadido Exterminador de Enlaces Rotos - Herramienta QA"

# Conecta con tu repositorio remoto
git remote add origin https://github.com/FerDVaz09/broken-link-checker.git

# Sube los cambios
git push -u origin main

Estructura de archivos recomendada:

broken-link-checker/
├── broken_link_checker.py
├── requirements.txt
├── README.md
├── .gitignore
└── reporte_errores.csv (generado al ejecutar)

🧪 Sitios de Prueba Recomendados

  • 🔗 http://the-internet.herokuapp.com/status_codes - Sitio diseñado para testing con errores intencionales
  • 🔗 https://httpstat.us/ - Simula diferentes códigos de estado HTTP para pruebas
  • 🔗 Tu propio sitio web - Audita tu portfolio o proyecto antes de lanzarlo

🚀 ¿Necesitas auditorías automatizadas de QA?

Puedo desarrollar herramientas personalizadas de testing y automatización QA para tus proyectos web.

Testing profesional que encuentra errores antes que tus usuarios.