Che cos’è e tipologie di Web Scraping

Che cos’è e tipologie di Web Scraping

Web Scraping

Nell’ambito informatico, il web scraping, chiamato anche in diversi modi tra cui web data extraction, è una tecnica che consiste nel prelevare dati da siti web. Anche se l’estrazione di dati da un sito web può essere eseguita manualmente dall’utente, si parla di web scraping sopratutto quando il processo di estrazione è automatizzato grazie all’uso di un software che emula la visita di un utente ad un sito web e quando i dati ottenuti sono inseriti in un database o in dei fogli di stile, o più generalmente salvati localmente, per poi essere analizzati nel complesso. Il contenuto della pagina web viene quindi analizzato per ottenere informazioni.

Esempi di utilizzo di web scraping sono il confronto dei prezzi dello stesso prodotto trovato su diversi siti web, l’analisi dei dati di diversi utenti di un sito web a fine di creare un elenco organizzato o, più generalmente, il monitoraggio di dati da siti web.

Per raccogliere grandi quantità di dati, e non solo uno specifico dato, il web scraper è spesso usato come estensione di un web crawler: i moderni web scraper possono analizzare interi siti web seguendo i collegamenti per recuperare i vari contenuti, per poi analizzarli individualmente estrapolando i dati necessari.

Che cos'è e tipologie di Web Scraping

Tipologie di web scraper

Esistono diverse tecniche di scraping, in base al tipo e al formato del documento che si deve analizzare. Tra le più usate ci sono:

  1. Copia/Incolla Manuale: Pur essendo una tecnica banale e non troppo efficiente, il copia/incolla si rileva utile nel caso in cui debbano essere recuperati pochi dati. Sopratutto se il sito web è sviluppato in maniera tale da impedire la visualizzazione a programmi automatizzati.
  2. Text Pattern Matching: Un altro sistema semplice che funziona nella gran parte dei casi, consiste nell’utilizzare un’espressione regolare per il recupero dei dati da risorse non strutturate.
  3. Parsing di pagine HTML o XHTML: Le pagine più comuni con cui sono realizzati i siti web sono formate da un linguaggio di markup, solitamente HTML. Essendo le pagine web strutturate con i TAG HTML, si può effettuare il parsing della pagina e prelevare il contenuto di un TAG che contiene il dato a cui si è interessati.
  4. Parsing di pagine JSON o XML: Per inviare dati da un’applicazione web ad un’altra, ci sono principalmente due formati di rappresentazione utilizzati: JSON e XML. Come per l’HTML, i due formati sono machine-readable ma a differenza di questo, JSON e XML contengono esclusivamente dati e per questo è molto più facile sviluppare uno scraper che li possa prelevare. Molti linguaggi di programmazione hanno un parser JSON o XML incluso, per recuperare facilmente i dati dal formato del file.

Ci sono inoltre diversi metodi per effettuare web scraping utilizzando anche un web crawler:

  1. Scraping di una singola pagina: Nel caso in cui i dati da estrapolare siano contenuti in una sola pagina, è superfluo effettuare il crawling del sito web in quanto basta eseguire il web scraper nella pagina bersaglio.
  2. Scraping di una lista divisa tra pagine correlate: Se i dati da estrarre sono presenti in più pagine identificate da un numero, come ad esempio una lista che viene divisa da dei parametri nell’url:
    http://esempio.com/lista.php?page=1
    http://esempio.com/lista.php?page=2

    http://esempio.com/lista.php?page=N
    allora si può creare a parte un elenco di URL che corrispondono al formato …&page=x, dove x è un numero progressivo, e eseguire lo scraper su ogni URL.
  3. Scraping su pagine descrittive di un elemento: Le pagine descrittive sono pagine che non hanno parametri nell’URL da iterare ma che strutturano i dati tra le diverse pagine nello stesso modo, come ad esempio un blog dove gli articoli hanno tutti stessa struttura o come un si to di vendita online che ha una pagina strutturata per ogni prodotto, ma con URL generalmente human-readable contenente informazioni riguardanti il prodotto stesso. Siccome questa tipologia di siti web ha una pagina che contiene l’elenco di tutte le pagine strutturate, come la lista degli articoli del blog o la lista dei prodotti, si può far partire un crawler da questa pagina per ottenere la lista delle pagine strutturate, probabilmente seguendo anche la paginazione del punto precedente nel caso in cui questa lista sia divisa, per poi eseguire uno scraper sulla lista ottenuta dal crawler, ottenendo i dati.
  4. Scraping sull’intero sito: L’ultimo metodo consiste nell’effettuare il crawling dell’intero sito per poi effettuare scraping alla ricerca dei dati. Questo metodo richiede più tempo rispetto alle precedenti soluzioni e effettua un carico maggiore sul sito web in quanto segue ogni collegamento trovato, anche quelli che non contengono i dati cercati.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *