Fare scraping e creare un feed RSS in bash

Andrea Borruso
mai più senza
Published in
2 min readDec 20, 2017

--

Evviva Enrico Bergamini

NdR: questo tutorial è la versione per bash di questo fatto ieri da Enrico Bergamini per Python. Ne ricalcherà (quasi) per intero lo schema.

Questo tutorial bash mostra come fare lo scraping di dati da una pagina web, per trasformarli in un feed RSS.

Il punto di partenza è questa pagina HTML di test costruita da Enrico. Quello che faremo è estrarre i titoli, le date e gli URL presenti nella pagina e trasformarli appunto in un feed RSS valido.

Per farlo useremo queste utility (che è necessario installare):

  • cURL, per trasferire dati via URL;
  • pup, per fare parsing di pagine HTML;
  • jq, per elaborare dati in formato JSON;
  • csvkit, per elaborare dati in formato CSV;
  • XmlStarlet, per elaborare file XML.

Sotto lo script in formato bash, con alcuni commenti tra le righe. Qui lo trovate pubblicato in un gist di github. Nello script uso questo template XML come base per costruire il feed RSS.

Se si vuole lanciare lo script ad esempio ogni 2 ore, in modo che il feed RSS eventuamente si aggiorni al cambiamento della pagina HTML sorgente, il modo più comodo è usare l’utility cron.
Basta modificare il file di configurazione relativo e aggiungere una stringa come:

0 */2 * * * root /var/progetti/enri.sh

Su crontab.guru la spiegazione del comando, in cui più correttamente l’intervallo è definito come “At minute 0 past every 2nd hour.”

Se avete suggerimenti o commenti, contattate me o Enrico 🤣

--

--

Andrea Borruso
mai più senza

#data #maps #GIS #baci #condivisione. Orgoglioso di essere presidente di @ondatait