Eu tenho um URL como este:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Quero baixar este URL usando wget
. Se eu passar diretamente para wget
, tudo vai bem. Mas estou em uma situação em que tenho apenas as versões codificadas dos URLs de download. Se eu passar a versão codificada do URL acima para wget
, ele emitirá o seguinte erro:
$ 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
alterou a caixa do URL (por exemplo, Khumba
para khumba
). O que devo fazer para resolver este problema?
python -c 'import urllib2; print urllib2.unquote("'${URL}'")'
faz aproximadamente o mesmo, se você colocar seu URL no URL da variável de ambiente.Você deve usá-lo assim
Apenas substitua todos os espaços com
%20
. Ou melhor, copie o link original e cole-o na barra de endereço do navegador Chromium. Ele será formatado automaticamente para você. Agora copie de lá para o seu terminal.fonte
[Ctrl]+[Shift]+[J]
(para o console de desenvolvimento) e inserirdecodeURIComponent("your-decoded-URI")
.O Wget espera que o URL tenha o seguinte formato:
O protocolo é opcional. Na ausência de protocolo , o Wget assume HTTP.
O Wget aceita URLs com porcentagem codificada, mas os delimitadores entre protocolo , host e caminho não podem ser codificados por porcentagem.
É também por isso que o Wget alterou a caixa do URL. Como não encontrou uma única barra não codificada, assume-se que
é o nome do host (que não diferencia maiúsculas de minúsculas). O nome real do host é, é claro
dl.minitoons.ir
,.Para uma solução automática, substituir
%3A%2F%2F
e%2F
depois o nome do host por://
e/
seria suficiente, mas também é fácil decodificar o URL em um. @ Wilf já deu uma boa solução para isso.No entanto, se você digitar o comando Wget manualmente, faça o seguinte:
fonte
Você só precisa colocar aspas no URL e pronto:
É mais fácil assim e você não precisa se envergonhar com as coisas.
fonte
Acabei escrevendo um script python para ele.
fonte