Ciao,
nell’incontro di Palermo sull’utilizzo della riga di comando per “manipolare” i dati ho fatto dei piccoli esempi a scopo didattico.
Ne aggiungo che è un pezzo di un post che ho scritto, in cui mostravo come estrarre date e dati da una pagina del “Piano Triennale per l’informatica nella Pubblica Amministrazione”.
La pagina è quelle delle azioni. Il primo obiettivo è stato per me quello di trasformare una pagina HTML in un file strutturato (ho scelto un CSV, ma poteva essere mille altre cose.
A riga di comando si può fare così (faccio uso di curl, scrape, xmlstarlet e csvkit):
# scarico la pagina con curl
curl -sL "https://pianotriennale-ict.italia.it/azioni/" | \
# passo il codice della pagina a scrape e gli dico di estrarre tutto ciò che è contenuto dentro l'elemento con id=panel-0
scrape -be "//*[@id=\"panel-0\"]" | \
# passo l'output di scrape a xmlstarlet con cui estraggo Tempi, Attori, Descrizione e Risultati, via XPATH.
# L'output di xmlstarlet è un CSV separato da "|"
xmlstarlet sel --html -t -m "//*/div/div[2]/span" -v "." -o "|" -v "normalize-space(../../../../h3)" -o "|" \
-v "normalize-space(../../div[4])" -o "|" -v "normalize-space(../../div[6]/div)" -o "|" -v "normalize-space(../../div[8])" -o "|centrali" -n | \
# passo l'output a csvformat per creare un file CSV e gli dico che come separatore ho usato il carattere "|"
csvformat -d "|" > fileoutput.csv
# aggiungo la riga di intestazione al CSV
sed -i '1s/^/Tempi,Azione,Attori,Descrizione,Risultati,Amministrazioni\n/' fileoutput.csv
L’output è questo.
Nel post su medium ho usato una sintassi bash un po’ più complessa. Qui ho condiviso la parte più importante.
Saluti,
a
--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Slack: http://opendatasicilia.it/slack/
Newsletter http://opendatasicilia.it/newsletter/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a opendatasicilia+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a opendatasicilia@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/CAHEdGZMVMEWZLDGQMuJDpj37KCw2A3cD7reOk3fBuyh-NMQckQ%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Grazie Andrea.Per i comuni ignoranti e poco smanettoni come me..... È possibile disporre (come output del tuo lavoro prezioso) di un feed RSS in maniera da agganciarci un canale telegram che aggiorna automaticamente sulle azioni del piano triennale ict della PA ?Grazie
--
Sito: http://opendatasicilia.it
Facebook: https://www.facebook.com/groups/opendatasicilia/
twitter: http://twitter.com/opendatasicilia
Slack: http://opendatasicilia.it/slack/
Newsletter http://opendatasicilia.it/newsletter/
---
Hai ricevuto questo messaggio perché sei iscritto al gruppo "opendatasicilia" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a opendatasicilia+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a opendatasicilia@googlegroups.com.
Visita questo gruppo all'indirizzo https://groups.google.com/group/opendatasicilia.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/opendatasicilia/CAHEdGZParEZDQhA6sQO4ffohhV%2B8ZYf6HD7ABfcd8c77NoUptQ%40mail.gmail.com.