Guida completa: risolvere “wget: command not found” e usare wget su Windows e Mac

Se ricevi l’errore “wget: command not found” su Windows o macOS, significa che wget non è installato o non è raggiungibile dalla variabile PATH. Questa guida spiega come verificare l’installazione, installare wget su Windows (metodi manuali, Chocolatey, Scoop) e su macOS (Homebrew), mostra i comandi più utili con esempi pratici, alternative come curl e PowerShell, checklist di sicurezza e procedure di troubleshooting. Include anche best practice per crawl responsabili e scenari d’uso comuni.
Microsoft Windows Command Prompt (Prompt dei comandi) offre molto più di quanto si pensi: dall’amministrazione di sistema al download di file senza interfaccia grafica. Uno strumento frequentemente usato è wget, un downloader da riga di comando che supporta HTTP, HTTPS e FTP. Un problema comune è l’errore “wget: command not found”; questa guida completa ti aiuta a risolverlo e a usare wget in modo sicuro ed efficace.
Che cos’è wget e a cosa serve
Wget è un programma da riga di comando che scarica contenuti dal web senza interfaccia grafica. È utile per scaricare singoli file, interi siti in modalità ricorsiva, sitemap, file XML e altro. Supporta protocolli come HTTP, HTTPS e FTP.
Definizione in una riga: wget è un downloader da riga di comando progettato per trasferimenti affidabili e ripetibili di contenuti web.
Funzioni pratiche:
- Download ricorsivo di directory e sottodirectory (utile per mirroring di siti).
- Scarico automatico delle risorse richieste dalla pagina (immagini, CSS, JS) per renderla fruibile offline.
- Personalizzazione dell’User-Agent per testare come risponde un server a diversi client.
- Limiti di velocità e attese per evitare sovraccarichi del server.
Importante: usare wget per scaricare interi siti può caricare pesantemente un server; rispetta il file robots.txt e le policy del sito.
Verificare se wget è installato
Come controllare su Windows
- Premi il tasto Windows.
- Digita cmd e premi Invio per aprire il Prompt dei comandi.
- Esegui uno dei comandi seguenti:
wget --version
wget -V
Se wget è installato, verrà mostrata la versione e alcune informazioni sul build. Se appare “wget: command not found” o “‘wget’ non è riconosciuto come comando interno o esterno”, wget non è presente nella PATH.
Come controllare su macOS
Apri Terminale e digita:
wget --version
macOS non include wget di default; è comune installarlo via Homebrew.
Installare wget su Windows
Ci sono più modi per aggiungere wget a Windows. Scegli quello adatto al tuo ambiente (amministratore, politica aziendale, preferenze personali).
Opzioni consigliate:
Metodo 1 — Usare Chocolatey (raccomandato per amministratori e power user)
Chocolatey è un package manager per Windows che facilita installazioni e aggiornamenti.
- Apri PowerShell come amministratore.
- Installa Chocolatey (se non è già presente):
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
- Installa wget:
choco install wget -y
- Chiudi e riapri il Prompt dei comandi o PowerShell e verifica:
wget --version
Vantaggi: gestione centrale degli aggiornamenti e coerenza tra macchine.
Metodo 2 — Usare Scoop (alternativa leggera)
Scoop è un altro package manager per Windows focalizzato su strumenti CLI.
- Apri PowerShell (non serve eseguirlo come amministratore in molti casi).
- Installa Scoop:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
- Installa wget:
scoop install wget
- Verifica la versione:
wget --version
Metodo 3 — Installazione manuale (quando non si possono usare package manager)
- Scarica una build per Windows (file eseguibile .exe o binario) da una fonte attendibile come il repository GNU o porting affidabili (es. la build da ezwinports o il sito GNU quando disponibile per Windows).
- Estrai l’eseguibile wget.exe.
- Copia wget.exe in C:\Windows\System32 o in una cartella già nella PATH.
Nota: copiare direttamente in System32 richiede privilegi di amministratore. In alternativa, puoi creare una cartella dedicata (es. C:\tools) e aggiungerla alla variabile PATH di sistema.
Per aggiungere una cartella alla PATH su Windows 10/11:
- Premi Win, digita “Variabili d’ambiente” e apri “Modifica le variabili d’ambiente per il tuo account”.
- Sotto “Variabili utente” seleziona PATH e clicca Modifica.
- Aggiungi il percorso della cartella (es. C:\tools) e salva.
- Riavvia il Prompt dei comandi e verifica con
wget --version
.
Sicurezza: scarica binari solo da fonti ufficiali o repository firmati. Evita eseguibili non verificati.
Installare wget su macOS
La via più semplice è Homebrew.
- Installa Homebrew (se non presente):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Installa wget:
brew install wget
- Verifica:
wget --version
Alternativa: usare MacPorts se preferisci quell’ecosistema.
Sintassi base e opzioni comuni di wget
Forma generale:
wget [OPZIONE]... [URL]...
Esempi pratici e spiegazioni:
Scaricare un singolo file
wget https://example.com/robots.txt
Scarica robots.txt nella cartella corrente.
Scaricare in una cartella specifica
Sostituisci
wget -P https://example.com/sitemap.xml
Rinominare il file scaricato
wget -O nuovo-nome.html https://example.com/file.html
Definire lo User-Agent
wget --user-agent="Mozilla/5.0 (compatible; MyBot/1.0)" https://example.com/file.html
Usare uno user-agent personalizzato è utile per il debug, ma non usarne uno ingannevole per aggirare restrizioni.
Simulare il comportamento di Googlebot
Esempio di user-agent complesso (per test interni):
wget --user-agent="Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" https://example.com/path
Nota legale: impersonare bot può violare i termini di servizio. Usalo solo per test legittimi su siti che gestisci o con permesso.
Scaricare robots.txt solo se è cambiato
- Per visualizzare gli header e registrare la data:
-S
wget -S https://example.com/robots.txt
- Per scaricare solo se il file remoto è più recente del locale:
-N
wget -N https://example.com/robots.txt
Convertire i link per uso locale
wget --convert-links https://example.com/path
Questa opzione riscrive i link nelle pagine scaricate per puntare alle copie locali.
Replicare una singola pagina per uso offline
wget -E -H -k -K -p --convert-links https://example.com/path
Breve spiegazione delle opzioni principali:
- -E: aggiusta estensioni (.html)
- -H: abilita il download da host diversi
- -k: converti i link
- -K: mantieni backup dei file originali
- -p: scarica tutte le risorse necessarie (immagini, CSS, JS)
Scaricare da una lista di URL
Crea un file urls.txt con una URL per riga, poi:
wget -i urls.txt
Nota: l’opzione è -i
(minuscola) per file di input.
Limitare la velocità e inserire attese per crawling responsabile
- –wait=1 : aspetta 1 secondo tra richieste
- –limit-rate=10K : limita la velocità a 10 KB/s
Esempio:
wget --wait=1 --limit-rate=10K https://example.com/largefile.zip
Scaricare l’intero sito in modalità ricorsiva (usare con cautela)
Comando completo di esempio:
wget --recursive --page-requisites --adjust-extension --span-hosts --wait=1 --limit-rate=10K --convert-links --restrict-file-names=windows --no-clobber --domains example.com --no-parent https://example.com
Spiegazione rapida delle opzioni più importanti:
- –recursive: segue i link fino a una profondità limitata (di default 5)
- –page-requisites: scarica risorse necessarie alla pagina
- –adjust-extension: salva con estensione .html
- –span-hosts: segue risorse su altri host
- –no-clobber: evita di sovrascrivere file già scaricati
- –domains example.com: limita la scansione al dominio indicato
- –no-parent: non risale alle directory superiori
Avviso: rispettare robots.txt e le norme del sito; limitare la profondità e la velocità per non sovraccaricare i server.
Alternative a wget e quando usarle
- curl: molto usato per trasferimenti singoli e scripting; più flessibile per operazioni HTTP avanzate (intestazioni, autenticazione). Non è progettato per download ricorsivi.
- PowerShell Invoke-WebRequest / Invoke-RestMethod: ottime alternative native su Windows per semplici download e integrazione con script PowerShell.
- browser con estensioni di download: per utenti non tecnici che preferiscono interfacce grafiche.
Scegli wget quando ti serve:
- mirroring o download ricorsivi
- conversione automatica dei link per uso offline
- gestione batch tramite file di testo
Scegli curl quando ti serve:
- controllo preciso di headers e metodi HTTP
- integrazione con API o script che richiedono autenticazione avanzata
Checklist operativa per installazione e verifica (ruolo-based)
Per System Administrator:
- Verificare policy aziendali sui package manager
- Preferire Chocolatey o Scoop per installazioni centralizzate
- Controllare integrità del binario (firma o checksum)
- Aggiornare wget regolarmente tramite il package manager
Per Sviluppatore:
- Verificare che wget sia nella PATH
- Testare comandi base (download singolo, -O, -P)
- Usare file di log e -nv per output non verboso durante scripting
Per SEO/Analista Web:
- Usare –wait e –limit-rate per non sovraccaricare
- Rispettare robots.txt
- Usare User-Agent trasparente per i test
Sicurezza, privacy e conformità (GDPR)
- Dati personali: se scarichi pagine o contenuti che contengono dati personali, valuta le implicazioni legali e il rispetto del GDPR. Scaricare dati da siti terzi può richiedere basi legali e misure di minimizzazione.
- Protezione delle credenziali: evita di inserire credenziali in chiaro nella riga di comando; usa file di configurazione con permessi limitati se necessario.
- Integrità dei binari: scarica wget da fonti ufficiali o repository firmati; controlla checksum quando disponibile.
Troubleshooting comune
Problema: “wget: command not found” dopo aver installato wget
- Verifica che la cartella contenente wget.exe sia nella PATH.
- Chiudi e riapri il terminale dopo aver modificato la PATH.
- Su Windows, verifica eventuali policy di sicurezza o software antivirus che bloccano l’esecuzione.
Problema: Permessi negati durante il download
- Controlla i permessi della cartella di destinazione.
- Se stai scrivendo in una cartella di sistema, avvia il terminale come amministratore.
Problema: Scaricamento incompleto o timeout
- Usa –wait e –limit-rate per ridurre il carico e prevenire blocchi dal server.
- Prova con –retry-connrefused e –tries=N per aumentare il numero di tentativi.
Esempio di retry:
wget --tries=10 --retry-connrefused https://example.com/largefile.zip
Casi d’uso e scenari pratici
- Backup di una pagina di documentazione con risorse locali per referenza offline:
wget -E -H -k -K -p --convert-links https://docs.example.com/guide
- Scaricare una lista di file per processo batch:
Crea urls.txt con ogni URL su una riga, poi:
wget -i urls.txt -P /mnt/downloads
- Testare risposta del server con user-agent personalizzato:
wget --user-agent="TestBot/1.0" -S https://example.com/path
Esempi di test di accettazione
- Scaricare un file singolo:
wget https://example.com/robots.txt
deve generare un file robots.txt nella cartella corrente. - Scaricare in una directory specifica:
wget -P /tmp/down https://example.com/sample.pdf
deve salvare sample.pdf in /tmp/down. - Verificare il comportamento in caso di file non modificato: scaricato con
-N
, wget non deve sovrascrivere se la versione remota non è più recente.
Quando wget non è la scelta giusta (controesempi)
- Interazioni complesse con API che richiedono autenticazioni token-based e parsing JSON: curl o librerie HTTP nel linguaggio di programmazione sono più adatte.
- Download parallelo massiccio e orchestrazione: strumenti come aria2 offrono download paralleli e maggiore performance.
- Interfaccia grafica richiesta dall’utente finale: usare un browser o strumenti con GUI.
Best practice e heuristics rapide
- Controlla robots.txt prima di fare crawling su siti altrui.
- Non usare user-agent ingannevoli su siti che non gestisci.
- Limita velocità e frequenza per non causare denial-of-service involontario.
- Mantieni wget aggiornato tramite package manager.
Mini-metodologia: procedura rapida per mirror responsabile
- Leggi robots.txt e accertati che la sezione che vuoi scaricare sia permessa.
- Esegui una prova su una singola pagina con
--wait=2 --limit-rate=20K
. - Se OK, aumenta progressivamente la scala controllando log e metriche server.
- Fallo in orari di bassa attività o concorda una finestra con il proprietario del sito.
Decision tree per scegliere wget o alternative
flowchart TD
A[Devo scaricare contenuti web?] --> B{Ho bisogno di mirroring ricorsivo?}
B -- Sì --> C[Usa wget con --recursive e limitazioni]
B -- No --> D{Ho bisogno di controlli HTTP avanzati?}
D -- Sì --> E[Usa curl o librerie HTTP]
D -- No --> F{Sto su Windows e preferisco native?}
F -- Sì --> G[Usa PowerShell Invoke-WebRequest]
F -- No --> E
Domande frequenti
Perché compare “wget: command not found” su Windows?
Perché wget non è installato o la sua cartella non è inclusa nella variabile PATH di sistema.
Posso usare curl al posto di wget?
Sì. curl è ideale per download singoli e operazioni HTTP dettagliate; non ha però le stesse opzioni per mirroring ricorsivo integrate come wget.
Scaricando interi siti rischio problemi legali?
Può essere problematico se violi i Termini di Servizio o estrai contenuti protetti. Rispetta robots.txt e richiedi permessi quando necessario.
Sommario finale
Wget è uno strumento potente per scaricare contenuti dal web dalla riga di comando. Se ricevi l’errore “wget: command not found”, verifica l’installazione e la PATH. Su Windows preferisci Chocolatey o Scoop per installazioni gestite; su macOS usa Homebrew. Quando usi wget per crawling o mirroring, applica rate limiting, rispetta robots.txt e considera alternative (curl, PowerShell, aria2) quando necessario. Segui le checklist e i test di accettazione per garantire installazioni e download affidabili.
Note importanti
- Usa sempre fonti attendibili per scaricare binari.
- Non impersonare bot senza autorizzazione.
- Mantieni una politica di rispetto verso i server che visiti.
Ringraziamenti
Se hai ancora domande o vuoi esempi pratici per il tuo caso d’uso (script batch, integrazione CI/CD, scraping etico), lascia un commento e descrivi il tuo ambiente (Windows/macOS, versione, obiettivo).
Materiali simili

Come installare Yahoo Mail su Windows

Guardare Howdy senza Roku — guida rapida

Velocizzare il Wi‑Fi in aereo | Guida pratica

Attacchi Man‑in‑the‑Prompt: difesa per chatbot AI

Proteggere account Gmail: cosa fare se sei hackerato
