Scraping tabella da sito web con molte tabelle html
Come scaricare una tabella da un sito web con molte tabelle html.
A cura di
Totò Fiandaca
| issue
#79
| guida/e
Andrea Borruso
Gianni Vitrano
Caso d’uso: Come scaricare una tabella da un sito web con molte tabelle html
In Bash
scarico tutte le tabelle dal sito web
curl -L "https://www.tuttitalia.it/statistiche/cittadini-stranieri-2018/" | \
scrape -be '//table[contains(@class, 'ip')]' >tabelle.html
dove:
curl -L
scarica la pagina htmlscrape -be
gratta dalla pagina appena scaricata tutte le tabelle (table) la cui classe (@class) contieneip
>tabelle.html
salvo in formato html
visualizzo tutte le tabelle con VisiData
curl -L "https://www.tuttitalia.it/statistiche/cittadini-stranieri-2018/" | \
scrape -be '//table[contains(@class, 'ip')]' | vd -f html
dove:
curl -L
scarica la pagina htmlscrape -be
gratta dalla pagina appena scaricata tutte le tabelle (table) la cui classe (@class) contieneip
vd -f html
apro l’elenco delle tabelle html con VisiData
visualizzo solo la tabella con intestazione EUROPA
curl -L "https://www.tuttitalia.it/statistiche/cittadini-stranieri-2018/" | \
scrape -be '//table[.//th/b[contains(., "EUROPA")]]' | \
vd -f html
dove:
curl -L
scarica la pagina htmlscrape -be
gratta dalla pagina appena scaricata la tabella (table) la cui intestazione (th/b) contieneEUROPA
vd -f html
apro l’elenco delle tabelle html con VisiData
ottenendo:
per visualizzare la tabella premere invio
+----------------------+-------------------------+---------+---------+-----------+--------+
| EUROPA | Area | Maschi | Femmine | Totale | % |
+----------------------+-------------------------+---------+---------+-----------+--------+
| Paesi Bassi | Unione Europea | 3.674 | 4.670 | 8.344 | 0,16% |
| Svizzera | Altri paesi europei | 3.255 | 4.659 | 7.914 | 0,15% |
| Irlanda | Unione Europea | 1.350 | 1.586 | 2.936 | 0,06% |
| Croazia | Europa centro orientale | 8.784 | 8.789 | 17.573 | 0,34% |
| Grecia | Unione Europea | 3.941 | 3.631 | 7.572 | 0,15% |
| Islanda | Altri paesi europei | 46 | 97 | 143 | 0,00% |
| Ucraina | Europa centro orientale | 52.267 | 184.780 | 237.047 | 4,61% |
| Repubblica di Serbia | Europa centro orientale | 19.551 | 20.139 | 39.690 | 0,77% |
| Romania | Unione Europea | 505.961 | 684.130 | 1.190.091 | 23,13% |
| Lettonia | Unione Europea | 541 | 2.372 | 2.913 | 0,06% |
+----------------------+-------------------------+---------+---------+-----------+--------+
Riferimenti utili
Per maggiori dettagli leggere Issue correlata #79
Ultima modifica 19/07/2020: close #50 (a1365d8)