WebStruct 0.01 Samuel Solís

¡Ya tenemos terminada la primera aproximación de lo que será en un futuro WebStruct!

Actualmente la aplicación realiza lo siguiente:

– A partir de una url inicial, construimos un grafo que almacena información de todas las páginas del sitio. Este proceso se realiza con una araña que basa su funcionamiento en dos partes muy bien definidas: un requestor y un parser.

El resquestor se encarga de realizar peticiones HTTP para obtener el código HTML de cada página.
El parser se encarga de analizar dicho código para buscar los puntos interesantes del código: enlaces, titulo, etc.

– Dicho grafo tiene complejidad constante en accesos a partir de la url que queremos buscar.

– Con el grafo construido ejecuta algoritmos que aportan información sobre el portal, el viernes os explicaré su funcionalidad y utilidad.

El requestor lo he implementado de forma muy sencilla gracias a la librería libCurl para C++.
El parser me ha llevado más tiempo. Después de mucho investigar y probar con flex++ y con Spirit, al final he tenido que decantarme por otra opción más artesanal y prescindir de dichas funciones. El problema ha sido únicamente de integración (en el caso de frlex++) ya que es complejo integrarlo en otras aplicaciones, y de falta de conocimientos (en el caso de Spirit). Spirit es una librería bastante potente pero muy difícil de utilizar para el propósito que busco. Está especializado en realizar análisis de cadenas muy explícitas y definidas, siendo el código HTML un lenguaje muy poco claro y con una sintaxis ambigua. Además tenemos un problema muy grande con el hecho de la formación del código HTML, ya que la teoría y la práctica se corresponde en muy pocos casos por lo que ha de ser un parser muy flexible.

En todo caso en un futuro se intentará de nuevo utilizar dicha librería para optimizar el código y hacerlo más sencillo de ampliar y de leer. Mientras tanto la función find de la librería string ha sido de gran utilidad. Dicha función encuentra una cadena dentro de otra. También nos hemos apoyado en la función substr que obtiene una subcadena a partir de una cadena mayor.

Actualmente tenemos una herramienta interesante. Espero que con esta base y en un futuro tengamos una herramienta potente, rápida, útil y usable, que nos permita ofrecer un servicio de forma automática e independiente.

pablogarguez

@pablogarguez es actualmente Director General de Agenda Digital de la Consejería de Economía, Ciencia y Agenda Digital de la Junta de Extremadura, desde septiembre de 2019, siendo responsable básicamente de la Conectividad y la Transformación Digital en consonancia con la políticas de la Unión Europea. Fue Director de la Escuela Politécnica de Cáceres (School of Technology) de la Universidad de Extremadura durante 3 años (2017-2019), con titulaciones de grado, máster y doctorado en los campos de Ingeniería Civil, Edificación, Informática y Telecomunicaciones. Su trayectoria docente comienza en 1997 en la Universidad de Extremadura con su centrada en asignaturas de Programación en Ingeniería Informática y en el campo de las Bases de Datos y los Sistemas de Información. En el año 2000 defendió su tesis doctoral en la Universidad de Extremadura, que es la primera con mención de Tesis Europea de la Universidad, obteniendo el título de Doctor en Ingeniería Informática por la UEx. Su actividad investigadora se ha centrado en las áreas de Ciberseguridad, el BigData, el Internet de las Cosas (IoT), la Visión por Computador y el desarrollo de técnicas de Reconocimiento de Patrones y Análisis de Imagen. Fruto de esta labor de investigación, resaltar que es coautor de más de veinte artículos publicados en revistas internacionales indexadas en JCR, con un índice H de 12 en cuanto a las citas conseguidas por estos artículos. Actualmente tiene 3 sexenios de investigación a nivel nacional, y el último de ellos es un sexenio vivo (activo). También posee un sexenio de transferencia de los nuevos habilitados por el Ministerio (2019).

4 comentarios en “WebStruct 0.01 Samuel Solís”

  1. Hola Samuel, creo que la exposición que realizarás el viernes puede resultar muy interesante ya que creo que tu herramienta puede servir para comparar dos páginas web y eso es lo que según mi opinión puede dar potencia a tu herramienta.
    No se si tendrás implementada esto que te comentó, pero la realización de graficos que comparen los datos de dos páginas web puede resultar muy interesante, si no para esta versión para futuras versiones.
    Un saludo,

    Sergio Vasco Hernández.

  2. Enhorabuena Samu!

    Veo que esto va viento en popa a toda vela!

    No se hasta que punto querrás llegar con la aplicación. Te recomiendo que lo de las librerías elijas muy bien cuál de ellas debes utilizar porque supongo que con páginas enormes tendrás problemas de performances.

    Saludos!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *