A utilidade wget permítelle descargar páxinas web, ficheiros e imaxes da web mediante a liña de comandos de Linux.
Pode usar un único comando wget por si só para descargar desde un sitio ou configurar un ficheiro de entrada para descargar varios arquivos en varios sitios.
Segundo o wget da páxina de manual pódese usar mesmo cando o usuario fose desconectado do sistema. Para facelo usarías o comando nohup.
A utilidade wget reintentará unha descarga mesmo cando a conexión caia, volvendo a retomar cando sexa posible cando a conexión volva.
Pode descargar sitios web completos usando wget e converter as ligazóns para apuntar a fontes locais para que poida ver un sitio fóra de liña.
As características do wget son as seguintes:
- Descarga arquivos usando HTTP, HTTPS e FTP
- Reprenda descargas
- Converte ligazóns absolutas en páxinas web descargadas a URLs relativas para que os sitios web poidan verse sen conexión
- Soporta proxies HTTP e cookies
- Soporta conexións HTTP persistentes
- Pode executarse en segundo plano aínda cando non estea conectado
- Funciona en Linux e Windows
Como descargar un sitio web usando wget
Para esta guía, vou amosarche como descargar o meu blog persoal.
wget www.everydaylinuxuser.com
Vale a pena crear o seu propio cartafol na súa máquina empregando o comando mkdir e despois pasar á carpeta usando o comando cd .
Por exemplo:
mkdir dailylinuxuser
cd dailylinuxuser
wget www.everydaylinuxuser.com
O resultado é un único ficheiro index.html. Por si só, este ficheiro é bastante inútil xa que o contido aínda está extraído de Google e as imaxes e follas de estilo aínda están en Google.
Para descargar o sitio completo e todas as páxinas pode usar o seguinte comando:
wget -r www.everydaylinuxuser.com
Isto descarga as páxinas de forma recursiva ata un máximo de 5 niveis de profundidade.
5 niveis profundos poden non ser suficientes para poder obter todo desde o sitio. Pódese usar o botón -l para establecer o número de niveis que desexa seguir como segue:
wget -r -l10 www.everydaylinuxuser.com
Se desexa unha recursión infinita pode usar o seguinte:
wget -r -l inf www.everydaylinuxuser.com
Tamén pode substituír o inf con 0 o que significa o mesmo.
Aínda hai un problema máis. Pode obter todas as páxinas localmente, pero todas as ligazóns nas páxinas aínda apuntan ao seu lugar orixinal. Polo tanto, non é posible facer clic localmente entre as ligazóns das páxinas.
Pode evitar este problema empregando a opción -k que converte todas as ligazóns nas páxinas para sinalar o seu equivalente descargado localmente do seguinte xeito:
wget -r-k www.everydaylinuxuser.com
Se desexa obter un espello completo dun sitio web pode simplemente usar o seguinte conmutador que elimina a necesidade de usar os interruptores -r -k e -l.
wget -m www.everydaylinuxuser.com
Polo tanto, se ten o seu propio sitio web pode facer unha copia de seguridade completa usando este comando simple.
Executar wget como un comando de fondo
Pode executar o wget como un comando de fondo que lle permite continuar co seu traballo na xanela do terminal mentres se descargan os ficheiros.
Simplemente use o seguinte comando:
wget -b www.everydaylinuxuser.com
Pode, por suposto, combinar interruptores. Para executar o comando wget en segundo plano mentres se reflectía o sitio, usarías o seguinte comando:
wget -b -m www.everydaylinuxuser.com
Podes simplificar isto de máis xeito como segue:
wget -bm www.everydaylinuxuser.com
Rexistro
Se está executando o comando wget en segundo plano non verá ningunha das mensaxes normais que envíe á pantalla.
Pode obter todas esas mensaxes enviadas a un ficheiro de rexistro para que poida comprobar o progreso en calquera momento usando o comando tail .
Para enviar información do comando wget a un ficheiro de rexistro use o seguinte comando:
wget -o / path / to / mylogfile www.everydaylinuxuser.com
O reverso, por suposto, é que non esixe ningún rexistro e non hai saída á pantalla. Para omitir toda a saída empregue o seguinte comando:
wget -q www.everydaylinuxuser.com
Descarga desde sitios múltiples
Pode configurar un ficheiro de entrada para descargar desde moitos sitios diferentes.
Abra un ficheiro usando o seu editor favorito ou mesmo o comando cat e simplemente inicie a listaxe dos sitios ou enlaces para descargar desde cada liña do ficheiro.
Garda o ficheiro e executa o seguinte comando wget:
wget -i / path / to / inputfile
Ademais de facer unha copia de seguranza do seu propio sitio web ou quizais atopar algo para descargar para ler no tren, é improbable que desexe descargar un sitio web completo.
É máis probable que descargue un URL único con imaxes ou quizais descargue ficheiros como zip, ficheiros ISO ou ficheiros de imaxe.
Con isto en mente non quere ter que escribir o seguinte no ficheiro de entrada xa que leva moito tempo:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
Se sabe que o URL base sempre vai ser o mesmo, só pode especificar o seguinte no ficheiro de entrada:
- file1.zip
- ficheiro2.zip
- file3.zip
Pode entón proporcionar o URL base como parte do comando wget do seguinte xeito:
wget -B http://www.myfileserver.com -i / path / to / inputfile
Opcións de reintento
Se configurou unha fila de ficheiros para descargar dentro dun ficheiro de entrada e deixas o computador en funcionamento durante toda a noite para descargar os ficheiros, estarás bastante irritado cando baixes da mañá para descubrir que quedou atrapado no primeiro arquivo e volveu repetir toda a noite.
Pode especificar o número de intentos utilizando o seguinte conmutador:
wget -t 10 -i / path / to / inputfile
Pode querer usar o comando anterior xunto co interruptor -T que lle permite especificar un tempo de espera en segundos como segue:
wget -t 10 -T 10 -i / path / to / inputfile
O comando anterior volverase a intentar 10 veces e intentará conectarse durante 10 segundos por cada ligazón no ficheiro.
Tamén é bastante molesto cando parcialmente descargas o 75% dun ficheiro de 4 gigabytes nunha conexión de banda ancha lenta só para que a túa conexión caia.
Podes usar o wget para que volva tentar desde onde deixou de descargar usando o seguinte comando:
wget -c www.myfileserver.com/file1.zip
Se está a martelar un servidor, o servidor pode que non lle guste demasiado e pode bloquear ou simplemente matar as túas solicitudes.
Pode especificar un período de espera que especifica o tempo que debe esperar entre cada recuperación do seguinte xeito:
wget -w 60 -i / path / to / inputfile
O comando anterior esperará 60 segundos entre cada descarga. Isto é útil se está a descargar moitos ficheiros dunha única fonte.
Algúns servidores web poden detectar a frecuencia e bloquealo de calquera xeito. Pode facer o período de espera aleatorio para que pareza que non está a usar un programa como segue:
wget --random-wait -i / path / to / inputfile
Protexer os límites de descarga
Moitos provedores de servizos de internet aínda aplican límites de descarga para o seu uso de banda ancha, especialmente se vive fóra dunha cidade.
Pode querer engadir unha cota para que non sopra ese límite de descarga. Podes facelo do seguinte xeito:
wget -q 100m -i / path / to / inputfile
Teña en conta que o comando -q non funcionará cun só ficheiro.
Entón, se baixas un arquivo de 2 gigabytes de tamaño, usando -q 1000m non vai parar a descarga do ficheiro.
A cota só se aplica cando se descarga recursivamente desde un sitio ou cando se usa un ficheiro de entrada.
Pasando pola seguridade
Algúns sitios requiren que inicie sesión para poder acceder ao contido que quere descargar.
Podes usar os seguintes modificadores para especificar o nome de usuario e o contrasinal.
wget --user = teu nome de usuario --password = o teu contrasinal
Nota sobre un sistema multiusuario se alguén executa o comando ps poderá ver o seu nome de usuario e contrasinal.
Outras opcións de descarga
De xeito predeterminado, o interruptor -r descargará de forma recursiva o contido e creará directorios a medida que vaia.
Pode obter todos os ficheiros para descargar nunha única carpeta usando o seguinte conmutador:
wget -nd -r
O contrario diso é forzar a creación de directorios que se poden conseguir empregando o seguinte comando:
wget -x -r
Como descargar certos tipos de ficheiros
Se queres descargar de forma recursiva desde un sitio pero só desexas descargar un tipo de ficheiro específico como un mp3 ou unha imaxe como png, podes usar a seguinte sintaxe:
wget -A "* .mp3" -r
O inverso disto é ignorar certos ficheiros. Quizais non queiras descargar os executables. Neste caso, usarías a seguinte sintaxe:
wget -R "* .exe" -r
Cliget
Hai un add-on Firefox chamado cliget. Podes engadir isto a Firefox da seguinte forma.
Visita https://addons.mozilla.org/en-US/firefox/addon/cliget/ e fai clic no botón "engadir a Firefox".
Fai clic no botón de instalación cando apareza. Necesitarás reiniciar Firefox.
Para usar Cliget visite unha páxina ou ficheiro que desexe descargar e prema co botón dereito. Aparecerá un menú contextual chamado cliget e haberá opcións para "copiar para wget" e "copiar para enrolar".
Fai clic na opción "Copiar para wget" e abre unha xanela de terminal e, a continuación, fai clic co botón dereito e pega. O comando wget axeitado pegarase na fiestra.
Basicamente, isto aforraralle ter que escribir o comando mesmo.
Resumo
O comando wget como unha gran cantidade de opcións e modificacións.
Paga a pena ler a páxina de manual para wget escribindo o seguinte nunha xanela de terminal:
home wget