E’ possibile scaricare un intero sito web grazie ad un solo comando da terminale su Mac? SI 😎
Oggi vediamo brevemente come usare il comando wget per farlo.
Andremo esattamente a scaricare tutto quello che cè all’interno del sito, come immagini, links e sotto link e lo trasformeremo in semplice codice HTML, JS e CSS.
Può tornarvi utile per copiare siti ai quali non vi danno un accesso specifico oppure vi piacerebbe replicare delle parti del sito o semplicemente perché volete salvarvi una copia offline del sito.
WGET
Prima di procedere assicuratevi di aver installato HomeBrew
HomeBrew ci servirà per installare il pacchetto di wGET, e quindi il comando da inserire nel vostro terminale sarà il seguente
homebrew install wget
Il comando semplice ora per usare wGET è
wget sito.com
Questo comando però non scaricare nel vostro computer i file media o i file CSS e JS e i link non sono collegati tra loro, quindi usaremo molte più opzioni per scaricare BENE, un sito web, sia che esso sia in WordPress o che sia in Magento o altro ancora.
Il vero comando completo da usare è quindi il seguente:
wget -r -E -k -p -np -nc --random-wait https://sito.com
Se non riuscite a scaricarlo, l’opzione --user-agent
per far sembrare che la richiesta provenga da un browser
wget -r -E -k -p -np -nc --random-wait --user-agent="Mozilla/5.0" https://sito.com
Vi spiego alcune cose:
-r or –recursive
Dice a wget di usare la ricorsione per scaricare anche le sottopagine del sito richiesto.
-E or –adjust-extension
Permette di lasciar decidere a wget di modifcare le estensioni dei file locali, in modo che queste corrispondano al tipo di dati ricevuti (in base all’intestazione HTML Content-Type)
-k or –convert-links
Dice a wget di cambiare i riferimenti della pagina in riferimenti locali, per l’uso offline. In pratica se clicchiamo per esempio dei link, questi rimanderanno ai file in locale e non al sito web online.
-p or –page-requisites
Non limitatevi a seguire i link all’interno dello stesso dominio, ma scaricate anche tutto ciò che viene utilizzato da una pagina (anche se si trova al di fuori del dominio corrente). Per esempio una CDN esterna!
-np or –no-parent
Limita wget alla sottocartella fornita. Non lasciare che sfugga alle pagine genitoriali o le sotto pagine figlie.
-nc or –no-clobber
Evita di riscaricare lo stesso file se è già presente ed è stato scaricato in precedenza, evitando duplicati!
–random-wait
Per evitare di fare troppe chiamate al server, facciamo le cose con calma senza fare i diavoletti 👹 e limitiamo il numero di chiamate in modo randomico, così freghiamo il server 😁