Che spettacolo il web scraping

13 fonti diverse, una sola API. È uno degli aspetti più interessanti dietro Fibo Uni.

Web Scraping Backend API Fibo Uni

Orari delle lezioni, aule, appelli, mense, biblioteche, autobus, treni, bici, avvisi dell'ateneo e molto altro arrivano da ben 13 fonti differenti. E, ovviamente, ognuna parla una lingua diversa.

Tredici fonti, tredici linguaggi

  • Alcune espongono API vere e proprie.
  • Altre hanno API non documentate, utilizzate direttamente dai loro siti.
  • Altre ancora richiedono scraping dell'HTML, parsing, normalizzazione e gestione di identificativi che possono cambiare senza preavviso.

La soluzione? L'app non deve sapere niente di tutto questo

L'app parla con un solo backend. È il backend a interrogare le varie fonti, fare scraping dove serve, utilizzare le API quando esistono, normalizzare i dati e restituirli attraverso delle normali API REST.

In questo modo una mensa, un'aula, un appello o una biblioteca smettono di essere “quel dato preso da quel particolare sito in quel particolare formato”. Diventano semplicemente dati.

Tutta la parte fragile resta dove deve stare

  • Se una pagina cambia struttura, si aggiorna il parser e si fa un deploy.
  • Se una fonte temporaneamente non risponde, può entrare in gioco la cache e continuare a servire l'ultima risposta valida.
  • Se più utenti chiedono la stessa informazione, non è necessario moltiplicare inutilmente le richieste verso la fonte originale.

La parte più bella

Ed è forse questa la parte più bella del web scraping: trasformare fonti pensate per essere consultate da persone in dati strutturati pensati per essere utilizzati dal software.

Il web è pieno di dati. Il vero lavoro è renderli affidabili, coerenti e utilizzabili.

Scopri Fibo Uni