Tengo una URL como esta:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Quiero descargar esta URL usando wget
. Si se lo paso directamente wget
, todo va bien. Pero estoy en una situación en la que solo tengo las versiones codificadas de las URL de descarga. Si paso la versión codificada de la URL anterior a wget
, arroja el siguiente error:
$ wget "http%3A%2F%2Fdl.minitoons.ir%2Flongs%2FKhumba%20(2013)%20%5BEN%5D%20%5BBR-Rip%20720p%5D%20-%20%5Bwww.minitoons.ir%5D.rar"
wget: unable to resolve host address `http://dl.minitoons.ir/longs/khumba (2013) [en] [br-rip 720p] - [www.minitoons.ir].rar'
Observe que wget
cambió la carcasa de la URL (por ejemplo, Khumba
a khumba
). ¿Qué debo hacer para resolver este problema?
python -c 'import urllib2; print urllib2.unquote("'${URL}'")'
hace aproximadamente lo mismo, si coloca su URL en la URL de variable de entorno.Deberías usarlo así
Simplemente reemplace cada espacio con
%20
. O mejor copie su enlace original y péguelo en la barra de direcciones del navegador Chromium. Lo formateará automáticamente para usted. Ahora cópielo desde allí a su terminal.fuente
[Ctrl]+[Shift]+[J]
(para la consola de desarrollo) e insertardecodeURIComponent("your-decoded-URI")
.Wget espera que la URL tenga el siguiente formato:
El protocolo es opcional. En ausencia de protocolo , Wget asume HTTP.
Wget acepta URL codificadas en porcentaje muy bien, pero los delimitadores entre protocolo , host y ruta no pueden codificarse en porcentaje.
Esta es también la razón por la cual Wget cambió la carcasa de la URL. Como no encontró una sola barra sin codificar, se supone que
es el nombre de host (que no distingue entre mayúsculas y minúsculas). El nombre de host real es, por supuesto,
dl.minitoons.ir
.Para una solución automática, sustituir
%3A%2F%2F
y%2F
después del nombre de host por://
y/
sería suficiente, pero es igual de fácil decodificar la URL a la vez. @Wilf ya dio una buena solución para esto.Sin embargo, si va a escribir el comando Wget manualmente, simplemente haga esto:
fuente
Solo necesita poner comillas alrededor de la url y listo:
Así es más fácil y no tienes que avergonzarte con cosas.
fuente
Terminé escribiendo un script de Python para ello.
fuente