Requerimiento: Solución de Web Scraping para Portales de Medios de Información Objetivo del Proyecto Diseñar e implementar una solución automatizada de web scraping para recopilar información de portales de medios de información. Los datos recolectados deberán ser almacenados en una base de datos mediante la ejecución de un procedimiento almacenado (stored procedure) en SQL. ________________________________________ Alcance 1. Realizar scraping en sitios web de medios de información predefinidos, incluyendo, pero no limitado a: o Noticias nacionales o Noticias internacionales o Deportes o Entretenimiento o Economía 2. Recolectar información clave, como: o Título de la noticia o Fecha de publicación o Autor (si está disponible) o Resumen o encabezado o Contenido completo del artículo o Categoría o sección del portal o URL de la noticia o Fuente del medio 3. Guardar los datos en una base de datos SQL mediante un stored procedure que permita: o Validar la integridad de los datos antes de insertarlos. o Evitar duplicidad de registros. ________________________________________ Requerimientos Funcionales 1. Extracción de Datos: o Implementar un módulo para realizar scraping de páginas HTML dinámicas y estáticas. o Manejar sitios con diferentes estructuras HTML, incluyendo aquellos que requieran interacción con JavaScript. 2. Gestión de Acceso: o Incorporar control de acceso para sitios protegidos (si aplica), como inicios de sesión. o Considerar técnicas anti-bloqueo (User-Agent Rotation, IP Proxy). 3. Almacenamiento de Datos: o Diseñar un esquema en SQL que soporte la información recolectada. o Implementar un procedimiento almacenado para insertar los datos en la base de datos, manejando validaciones como: Verificación de duplicados por URL. Registro de errores o inconsistencias en una tabla de logs. 4. Escalabilidad: o Posibilidad de agregar nuevos portales sin modificar significativamente el código base. 5. Frecuencia: o Programar ejecuciones automáticas en intervalos configurables (diario, semanal, etc.). ________________________________________ Requerimientos Técnicos 1. Lenguaje de Programación: o Python (preferiblemente) o Node.js, utilizando frameworks como Beautiful Soup, Scrapy o Puppeteer. 2. Base de Datos: o SQL Server o un motor compatible que permita la ejecución de procedimientos almacenados. 3. Integración con la Base de Datos: o El programa de scraping debe ejecutar el stored procedure tras procesar cada lote de datos. 4. Manejo de Excepciones: o Registro detallado de errores durante el scraping, almacenamiento o ejecución de stored procedures. 5. Compatibilidad: o Diseñar la solución para que sea compatible con sistemas operativos Windows y Linux. ________________________________________ Criterios de Aceptación 1. La solución debe ser capaz de recolectar y almacenar información de al menos 5 portales de noticias iniciales. 2. La inserción en la base de datos debe completarse sin errores y siguiendo las validaciones establecidas. 3. El sistema debe ser modular para facilitar la adición de nuevos portales. 4. Los datos deben ser accesibles para consultas SQL tras su almacenamiento. ________________________________________