Tutorial

Come mostrare il contenuto di una pagina web nel terminale

Come fare a visualizzare all’interno di un terminale il contenuto di un sito web? Vedremo in questo tutorial come sia possibile farlo mediante comandi appositi: la cosa può servire nel caso in cui il sistema su cui operate non disponga di un’interfaccia grafica ma operi, come nel caso degli hosting VPS, esclusivamente mediante shell. Attenzione: le procedure indicate in questo post devono essere eseguite con privigi di amministratore (ovvero con il comando prefisso sudo), mentre la scrittura HTTP(S) è da intendersi sia come HTTP che come HTTPS.

I comandi da shell utili a prelevare il contenuto di una pagina web dentro la stessa (similmente a come fa, di fatto, l’apposita funzione per prelevare il contenuto del sito del Webmaster Tools come se fosse un crawler) sono i seguenti:

  1. curl – Si tratta di un tool per trasferire dati da e verso un server web, basilarmente mediante i protocolli HTTP(S) e FTP.
  2. lynx – Si tratta di un browser testuale vero e proprio, utile per tutit gli utenti che vogliano consultare pagine web senza poter disporre di un’interfaccia grafica (GUI).
  3. wget – Permette di scaricare attraverso HTTP(S) e FTP vari tipi di file dal WEB
  4. w3m – Altro browser testuale per il terminale molto diffuso.

Installazione dei tool

La maggiorparte dei quattro tool elencati potrebbe non essere presente nella vostra versione di Linux: di seguito vengono riportate le istruzioni per installarli. Su Debian / Ubuntu Linux bisogna installare curl, wget, lynx e w3m in questo modo:

sudo apt-get install curl wget lynx w3m

Su Fedora / RHEL / CentOS il comando va variato così:

sudo yum install curl wget lynx w3m

Su FreeBSD Unix, infine, scriveremo:

sudo pkg_add -v -r curl lynx w3m wget

Esempi basilari…

L’utilizzo di questo genere di istruzioni è molto semplice: un esempio basilare di uso di curl potrebbe servire a visualizzare nel terminale la pagina HTML presente ad un indirizzo web:

curl https://blog.keliweb.it/?p=3817
...

Per quanto riguarda Lynx possiamo usarlo in questo modo:

lynx -dump https://blog.keliweb.it/?p=3817
...

Analogamente per wget:

wget -O https://blog.keliweb.it/?p=3817
...

e per w3m:

w3m -dump https://blog.keliweb.it/?p=3817
...

…ed avanzati!

Per realizzare alcuni esempi avanzati possiamo fare uso di variabili all’interno della shell: questo significa che andremo a scrivere cose di questo genere.

page="$(curl https://blog.keliweb.it/)"
echo "$page"

A questo punto siamo pronti, ad esempio, ad effettuare operazioni complesse come salvare i bookmark di del.icio.us:

wget --user=tuausername --password=tuapassword https://api.del.icio.us/v1/posts/all -O my-old-bookmarks.xml

e successivamente:

$ more my-old-bookmarks.xml

Possiamo anche, in certi siti web, salvare tutti i file pubblici con una certa estensione (ad esempio MP3), impostando un ciclo che scarichi tutto ciò che corrisponda al pattern che richiediamo:

mp3=$(lynx -dump http://server.conmp3.esempio/media/index.html  | grep 'http://' | awk '/mp3/{print $2}')
for i in $mp3
wget $i
done

Lascia un commento

Back to top button