Saltar al contenido
← Todos los proyectos

De scrapers a reportes de antecedentes confiables

Reemplacé scrapers frágiles (3 fuentes) por la API de TusDatos.co (10+ fuentes) con datos internos, y reportes asíncronos y por lotes.

Proyecto confidencial — los detalles están anonimizados y no se comparten capturas ni código.

Año
2025
Rol
Líder, gestor de proyecto y desarrollador
Stack
Python · Flask · React · MongoDB · Airflow
Diagrama del pipeline — solicitud por documento o placa, API de reportes en Flask con un procesador por país, consulta lanzada en la API de TusDatos.co, verificador de estado en Airflow, transformador que normaliza y enriquece con datos internos, reporte en React

El reto

Antes de trabajar con una persona o un vehículo, la operación necesita conocer sus antecedentes — registros en fuentes oficiales y listas restrictivas, y el estado de los vehículos.

Hasta entonces esto dependía de scrapers que leían 3 sitios públicos directamente. Cuando un sitio estaba caído o cambiaba su estructura, el scraper fallaba y la verificación quedaba incompleta — y solo se cubrían esas 3 fuentes.

Qué cambió

  • De scraping a una API. Migramos a la API de TusDatos.co, que agrega fuentes oficiales detrás de una interfaz estable — se acabaron los scrapers rotos cada vez que un sitio cambiaba.
  • De 3 a más de 10 fuentes. La cobertura se multiplicó usando las fuentes que ya ofrece el proveedor.
  • Datos internos, por primera vez. Combinamos los resultados externos con datos internos de la compañía para mejorar las búsquedas y dar una visión más completa — algo que el proceso anterior no hacía.

Cómo funciona

  1. Solicitud. Un usuario pide un reporte por documento de identidad (personas) o por placa (vehículos), uno a uno o por lotes.
  2. API de reportes. Un servicio en Flask recibe la solicitud y la entrega a un procesador por país (empezando por Colombia), para que las reglas y fuentes de cada país queden aisladas y se puedan agregar nuevos.
  3. Lanzamiento. El procesador envía la consulta a la API de TusDatos.co, que agrega cientos de fuentes oficiales. Las consultas toman tiempo, así que se ejecutan de forma asíncrona en lugar de hacer esperar al usuario.
  4. Verificador de estado. Trabajos batch y en segundo plano con Airflow consultan el estado de cada solicitud hasta que los resultados están listos — los lotes grandes nunca bloquean la plataforma.
  5. Transformador. Un paso de transformación normaliza los resultados en una sola estructura de reporte y los enriquece con datos internos propios, dando una visión más completa que la fuente externa por sí sola. Los resultados se guardan en MongoDB.
  6. Reporte. Una vista en React presenta el reporte final de antecedentes de la persona o del vehículo.

Mi rol

Lideré, gestioné y desarrollé el proyecto: planifiqué la migración de los scrapers a la API y coordiné al equipo y los tiempos, diseñé la integración y el flujo de procesamiento, y construí el servicio, los pipelines y la vista del reporte.

Resultado

  • Más de 10 fuentes en lugar de 3, con una API estable en vez de scrapers que se rompían.
  • Reportes confiables y enriquecidos que combinan fuentes oficiales con datos internos.
  • Bajo demanda y por lotes, generados en segundo plano sin afectar el rendimiento de la plataforma.

¿Tienes un problema parecido?

Cuéntame qué frena a tu equipo y te respondo con una primera idea de cómo lo abordaría.

Escríbeme