Este proyecto es un Data Pipeline 100% Serverless diseñado para extraer, procesar y servir las mejores ofertas tecnológicas de la web de PC Componentes.
En lugar de un simple script, he implementado una Arquitectura Medallion (Bronze / Silver) alojada en AWS, donde los datos son extraídos automáticamente, limpiados en la nube y servidos bajo demanda a través de una interfaz interactiva de Telegram.
El sistema se divide en tres fases principales:
-
Extracción Automática (Capa Bronze) - GitHub Actions
- Un bot programado mediante CRON jobs en GitHub Actions se ejecuta automáticamente.
- Utiliza la librería
curl_cffipara suplantar identidades de navegadores (Chrome, Edge, Safari) y evadir las medidas de seguridad Anti-Bot (Cloudflare). - Los datos crudos (formato JSON/CSV) se suben directamente a un bucket de Amazon S3 (Bronze).
-
Procesamiento y Limpieza (Capa Silver) - AWS Lambda
- La llegada de un nuevo archivo al bucket dispara un evento (S3 Trigger) que despierta una función de AWS Lambda.
- Mediante
pandas, los datos se limpian, se estructuran, se eliminan nulos y se reconstruyen las URLs completas de los productos. - El DataFrame procesado se guarda en la carpeta S3 (Silver), listo para el consumo.
-
Consumo de Datos (Interfaz) - Telegram Bot
- Una segunda función AWS Lambda actúa como Webhook para el bot de Telegram.
- Lee el archivo más reciente de la capa Silver y se lo sirve al usuario a través de un chat interactivo, utilizando menús dinámicos y botones Inline.
- Evasión de Sistemas Anti-Bots (Código 403): Superación de los bloqueos de Cloudflare implementando rotación dinámica de
User-Agents, impersonation de TLS y pausas aleatorias de conexión. - Seguridad de Credenciales: Inyección de claves de AWS y Tokens de Telegram mediante GitHub Secrets y variables de entorno (
os.environ), manteniendo el repositorio público completamente seguro. - Tolerancia a Fallos: Implementación de funciones "escudo" (
safe_eval) en el procesamiento de datos para evitar que la Lambda se rompa ante cambios inesperados en la estructura del JSON de origen.
- Lenguaje: Python
- Librerías principales:
pandas,boto3,curl_cffi(Requests),pyTelegramBotAPI(Telebot). - Infraestructura (Cloud): Amazon S3 (Data Lake), AWS Lambda (Computación serverless).
- Orquestación: GitHub Actions (CI/CD y Cron Jobs).
Puedes probar el bot buscando en Telegram: @Ofertas_componentes_bot
Proyecto creado como demostración de habilidades en Data Engineering y automatización en la nube.