DE FR IT

Webscraping

[21-01-2022] Come può il web scraping supportare l'acquisizione separata di singoli contenuti dai siti web?

Quando si archivia un sito web [1], può essere giustificato dal punto di vista dell'archivio registrare individualmente alcuni contenuti e renderli accessibili agli utenti. Nel caso di contenuti analogici, l'impegno del personale aumenta notevolmente con la profondità dell'acquisizione e dell'indicizzazione. Con i contenuti digitali come i siti web, questo può essere potenzialmente evitato grazie a processi di acquisizione digitale automatizzati.

Webscraping
Il web scraping descrive il processo di estrazione di dati e contenuti dai siti web in modo automatizzato. Il web harvesting è spesso usato come sinonimo di web scraping. Il webscraping ha acquisito grande importanza con l'avvento dei Big Data nell'e-commerce e nell'e-advertising, che si riflette in un'ampia gamma di strumenti disponibili. Tuttavia, è stato utilizzato solo sporadicamente in biblioteche e archivi, ad esempio nel progetto europeo BlogForever [2], completato nel 2013, o nel progetto Web Scraping Toolkit della Brown University Library [3].

Strumenti di scraping del web
Per i web scrapers, da un lato, esistono strumenti per i casi d'uso più comuni nel campo dell'e-commerce. D'altra parte, i web scrapers possono anche essere creati con kit di strumenti in base alle esigenze. Di seguito vengono presentate alcune soluzioni note.

Strumenti
Gli strumenti hanno un'interfaccia utente visiva con possibilità di interazione predefinite. Il contenuto da sottoporre a scraping può di solito essere compilato liberamente. Ad esempio, il titolo e il contenuto di un articolo possono essere selezionati separatamente e poi estratti come elemento descrittivo e di contenuto di un pacchetto di dati.

 

  • Portia[4] è basato su Scrapy e ha un'interfaccia utente visuale. Portia è gratuito, ma non è stato più sviluppato dall'agosto 2018. Il successore commerciale di Portia è ZYTE[5] (ex ScrapingHub). Portia si è dimostrato difficile e soggetto a errori nei test di KOST nel caso di selezione multipla di contenuti su più livelli.
  • ParseHub[6] offre una versione gratuita e una a pagamento. La versione gratuita consente di estrarre il contenuto di un sito web per un massimo di 200 pagine. L'estrazione di testo semplice in file json funziona lentamente con la versione gratuita (200 pagine in 40 minuti) ma in modo impeccabile.
  • Web Scraper [7a, 7b] è un componente aggiuntivo gratuito per Chrome e Firefox. Web Scraper funziona piuttosto lentamente (1440 pagine all'ora, 2,5 secondi per pagina). Tuttavia, può gestire più selezioni per pagina e non è limitato in termini di profondità del sito o di numero di pagine per sito. Ogni elemento estratto viene aggiunto come riga a un file .xls. Web Scraper è caratterizzato dal fatto che è possibile estrarre in modo semplice anche la struttura .html comprensiva di contenuti. Oltre a Web Scraper, sono stati presi in considerazione anche altri scrapers aggiuntivi, ma non hanno convinto nella stessa misura.

Frameworks, librerie di programmi, Toolkits
Lo scraper viene creato dall'utente con un toolkit o simili.
I kit di strumenti sono open source/non commerciali. Ampiamente utilizzati sono, tra gli altri, i seguenti:

  • Scrapy [8] Un framework per il web crawling, scritto in Python
  • BeautifulSoup [9], una libreria Python, esempi a [10]
  • Selenium [11], una libreria Python
  • Wget [12], Curl, programmi a riga di comando per lo scraping dei file per lo scraping dei file.

Web Scraper: semplice e versatile
A causa dei vantaggi di Web Scraper menzionati in precedenza, di seguito viene illustrato come viene implementato lo scraping del Web con il componente aggiuntivo Web Scraper e quali sono i vantaggi di Web Scraper.

Zugang_zu_Webscraper.png

Struttura ad albero del Web Scraper
Partendo da una pagina iniziale (radice), l'utente può arrivare a livelli più profondi di un sito Web selezionando i collegamenti. In questo modo 

È possibile selezionare gruppi di collegamenti e collegamenti paginati. Se l'utente continua a lavorare con un link del gruppo, le regole di scraping si applicano anche a tutti gli altri link del gruppo. Alla fine della struttura ad albero si trova il contenuto da raschiare.

La struttura ad albero può essere visualizzata in Web Scraper. L'albero è memorizzato in json. Il file json può essere modificato manualmente e riutilizzato.

Struktur_Web_Scraper.png
Sitemap_JSON.png

 

Il contenuto da scrapare è costituito da elementi HTML. Questi vengono selezionati singolarmente e nel loro insieme danno luogo a un elemento di dati. In questo modo, i metadati (ad esempio, autore, titolo) e i contenuti associati (ad esempio, articoli) possono essere scrapati separatamente. Anche l'intera struttura HTML può essere estratta come contenuto. In questo modo, è possibile archiviare anche la rappresentazione, ad esempio, di articoli su un sito web.

Slapstickbild.png
Scrapen_Slapstick.png

 

Lo scraping viene effettuato tramite il menu della mappa del sito. Dopo lo scraping, è disponibile un file XLS. Ogni dato occupa una riga.

Excel_gescraped.png

Con strumenti adeguati, gli elementi dei dati nell'XLS possono essere archiviati individualmente e resi accessibili agli utenti tramite un visualizzatore HTML.

html_gescraped.png

Un'attenzione particolare nell'uso archivistico dei contenuti scraped merita i link morti che si verificheranno nel tempo[13]. Se un contenuto scraped non può più accedere e visualizzare un'immagine a causa di un link morto, e questa immagine è necessaria per comprendere il contenuto, ciò è problematico dal punto di vista archivistico. Il modo in cui questo problema può essere risolto è ancora aperto.

Esempio di link a un'immagine morta:
https://www.nzz.ch/bilder/dossiers/2001/afghanistan/afghanistan_indexbild.gif

Conclusione
Attualmente il web scraping è poco utilizzato negli archivi, quindi le esperienze corrispondenti sono rare. I test di CECO con i web scraper Portia, ParseHub e Web Scraper hanno dimostrato che solo Web Scraper è convincente sia in termini di facilità d'uso che di ampiezza delle funzionalità.

Se in futuro dovesse risultare che uno strumento come Web Scraper non è più sufficiente per l'archiviazione del web, si dovrebbe prevedere un progetto che colmi le lacune individuate. In questo caso, è possibile utilizzare la base di conoscenze creata dal progetto "Web Scraping Toolkit"[14].