Programació del WebScraping

Eines i Llibreries Utilitzades

Per dur a terme aquest projecte, he seleccionat un conjunt de llibreries que permeten des de l’extracció de dades fins a la implementació d’intel·ligència artificial:

  • Requests i BeautifulSoup: Aquesta combinació és la que fa possible el web scraping. Utilitzo Requests per establir la connexió amb la URL i obtenir el codi font, mentre que BeautifulSoup actua com un filtre que neteja l’HTML per extreure’n exclusivament el contingut textual rellevant.
  • Flask: He escollit aquest framework lleuger per convertir el projecte en un servidor funcional. És l’eix central que gestiona la comunicació, encarregant-se de rebre les peticions i retornar les respostes de manera eficient.
  • Google GenAI: És la interfície que m’ha permès integrar l’API de Gemini. Gràcies a aquesta llibreria, el sistema pot processar la informació extreta i generar respostes intel·ligents basades en el model de Google.
image

El Crawler: Extracció de Dades Operativa

Per a la fase de recopilació d’informació, he desenvolupat una funció anomenada crawl_website. Aquest algorisme actua com un explorador automatitzat que processa el lloc web de manera sistemàtica per alimentar la base de coneixement de la IA.

1. Navegació i Resultats

El procés s’inicia a la URL principal i navega de forma recursiva seguint els enllaços interns. Segons les proves realitzades, el crawler ha funcionat de manera òptima:

  • Volum de dades: S’han analitzat i extret amb èxit un total de 213 pàgines.
  • Filtre de domini: El sistema s’ha mantingut estrictament dins del domini autoritzat (jcotumba.inscastellbisbal.net), garantint que tota la informació sigui rellevant per al projecte.
  • Gestió de fitxers: S’han ignorat automàticament extensions no textuals (imatges, PDFs, etc.), centrant l’esforç exclusivament en el contingut HTML aprofitable.

2. Processament i Neteja de Contingut

Un dels reptes del web scraping és el «soroll» visual que no aporta valor. Per optimitzar la resposta de la IA, he aplicat un filtratge de dades:

Eficiència en el context: Gràcies a aquesta neteja, evitem que la IA hagi de llegir centenars de vegades la mateixa estructura de menú, aconseguint que es centri directament en el contingut real de cada secció de la web.

Eliminació d’elements redundants: He configurat el script per descartar seccions que es repeteixen a cada pàgina, com el menú de navegació (header) i el peu de pàgina (footer).

image

image

image

Ngrok

Com que estic treballant des de l’ordinador de clase i no tinc un servidor, faig servir ngrok. Això em dóna un enllaç que puc enganxar al WordPress perquè el xat de la web sàpiga on enviar les preguntes.

image
Translate »