Disseny i implementació d'una eina de generació automàtica de codi enfocada al desenvolupament de web scrapers

thumbnail

Tutor/a - Director/a

Samaniego Vidal, Jordi

Estudiante

Amenós Serena, Jordi

Tipo de documento

Trabajo final de grado

Fecha

2024

rights

Acceso abiertoOpen Access

Editorial

Universitat Politècnica de Catalunya



Resumen

En aquest estudi es descriu el procés de disseny i implementació d'una eina encarregada d'enregistrar les interaccions d'un usuari en una pàgina web, i de generar codi que permet reproduir el mateix flux d'interaccions de manera automatitzada. D'aquesta manera es pot programar el flux per ser executat en segon pla de manera periòdica i automatitzar tasques repetitives d'obtenció de fitxers de dades. Revisant l'estat de l'art es comprova que no existeixen tècniques actuals que cobreixin aquesta necessitat complint els requeriments establerts, i es procedeix a l'estudi mantenint en tot moment com a referència les tecnologies d'avantguarda del sector. En el disseny, es dedica especial atenció a l'adequació segons els principis SOLID i patrons existents a l'hora de designar la jerarquia de mòduls i l'arquitectura general, que segueix una estructura client-servidor. Posteriorment, s'exposen les decisions preses en implementar l'aplicació, dividint-la en blocs conceptuals, explicant les alternatives valorades i els motius rere les eleccions finals. Els punts on es dedica més atenció són l'enregistrament del flux d'interaccions de l'usuari sobre la pàgina web, la reproducció automatitzada del flux sense compilar codi addicional i finalment la generació de codi C# capaç d'executar el flux de manera autònoma. En defensar les decisions preses es posa èmfasi a crear software de fàcil manteniment i en la futura escalabilitat per afegir noves funcionalitats. Com a resultat d'aquest estudi s'implementa un programa totalment funcional que aconsegueix reduir el temps de desenvolupament del codi fins a un 98% en casos complexes. Incloent el recompte de les hores dedicades a gestió, s'ha constatat una reducció del temps total dedicat als projectes del 68%. A la vista d'aquests resultats, es pot considerar que el compliment dels objectius designats a l'inici de l'estudi és positiu i es garanteix la continuïtat de l'eina, sent necessària una fase de manteniment per implementar les ampliacions proposades en el treball i solucionar possibles errors.
This study describes the design and implementation process of a tool responsible for recording a user's interactions on a website and generating code to replicate the same flow of interactions automatically. This allows for the flow to be scheduled to run in the background periodically and automate repetitive tasks of data file acquisition. A review of the state of the art reveals that there are no current techniques that fulfill this need while meeting the established requirements, prompting an investigation with a constant reference to the current leading technologies. Special attention is paid to the design, focusing on adherence to SOLID principles and existing patterns when defining the module hierarchy and the overall architecture, which follows a client-server structure. The decisions made during the application's implementation are then detailed, divided into conceptual blocks, explaining the evaluated alternatives and the reasons i Abstract behind the final choices. The areas receiving the most attention are the recording of the user's flow of interactions on the website, the automated reproduction of the flow without additional compiling, and ultimately the generation of C# code capable of autonomously executing the flow. In defending the decisions taken, emphasis is placed on creating easily maintainable software and future scalability to add new functionalities. As a result of this study, a fully functional program is implemented, achieving up to a 98% reduction in code development time for complex cases. Including the count of hours dedicated to management, a 68% reduction in the total project time has been observed. Given these results, the fulfillment of the objectives set at the beginning of the study can be considered positive, ensuring the tool's continuity. A maintenance phase is necessary to implement the proposed extensions in the work and to solve any potential errors.

Entitat col·laboradora

UVE Solutions
user

Profesorado participante

Archivos