Disseny i implementació d'una eina de generació automàtica de codi enfocada al desenvolupament de web scrapers
Tutor/a - Director/a
Samaniego Vidal, Jordi
Estudiante
Amenós Serena, Jordi
Tipo de documento
Trabajo final de grado
Fecha
2024
rights
Acceso abierto
Editorial
Universitat Politècnica de Catalunya
Titulaciones
UPCommons
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

Profesorado participante
- Samaniego Vidal, Jordi