У меня есть URL как это:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Я хочу загрузить это использование URL wget
. Если я передаю его непосредственно wget
, все подходит. Но я нахожусь в ситуации, что у меня есть только закодированные версии URL загрузки. Если я передаю закодированную версию URL выше к wget
, это бросает следующую ошибку:
$ 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'
Заметьте это wget
измененный преобразование регистра URL (например, Khumba
кому: khumba
). Что я должен сделать для решения этой проблемы?
Поскольку это раздражающе настолько распространено, существуют различные доступные преобразователи - например, этот сайт . Можно использовать их для декодирования URL - таким образом, он преобразует это:
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
к:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
было бы хорошо иметь версию командной строки хотя...
Найденный версией командной строки - в основном:
echo "http%3A%2F%2F-REST-OF-URL" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
Это может быть реализовано в сценарии как это для декодирования URL:
#!/bin/bash
echo "$@" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e
exit
, который, если сохранено и сделано исполняемый файл, работы вполне приятно.
также этот сценарий, который загрузит UL также:
#!/bin/bash
echo "$@" | sed -e's/%\([0-9A-F][0-9A-F]\)/\\\\\x\1/g' | xargs echo -e | wget -c -i -
exit
N.B. я думаю случай, в котором находится URL, не важно для большинства сайтов - например, HTTP://WWW.UBUNTU.COM
Необходимо использовать его как это
wget "http://dl.minitoons.ir/longs/Khumba%20(2013)%20[EN]%20[BR-Rip%20720p]%20-%20[www.minitoons.ir].rar"`
, Просто заменяют каждое пространство %20
. Или Лучшая копия Ваша исходная ссылка и вставка это на Адресной строке браузера Хрома. Это автоматически отформатирует его для Вас. Теперь скопируйте его оттуда в Ваш терминал.
Wget ожидает, что URL будет иметь следующий формат:
[protocol://]host/path
Протокол является дополнительным. В отсутствие протокола Wget принимает HTTP.
Wget принимает закодированные процентом URL очень хорошо, но разделители между протоколом, хостом и путем не могут быть закодированы процентом.
Это также, почему Wget изменил преобразование регистра URL. Так как это не нашло единственную незакодированную наклонную черту, это принимает это
http://dl.minitoons.ir/longs/khumba (2013) [en] [br-rip 720p] - [www.minitoons.ir].rar
имя хоста (который был бы нечувствителен к регистру). Фактическое имя хоста, конечно, dl.minitoons.ir
.
Для автоматического решения, занимая место %3A%2F%2F
и %2F
после имени хоста ://
и /
был бы достаточен, но столь же легко декодировать URL в одном. @Wilf уже дал хорошее решение для этого.
Однако, если Вы собираетесь ввести команду Wget вручную, просто сделайте это:
wget "dl.minitoons.ir/longs%2FKhumba%20(2013)%20%5BEN%5D%20%5BBR-Rip%20720p%5D%20-%20%5Bwww.minitoons.ir%5D.rar"
Только необходимо поместить кавычки вокруг URL и сделанный:
wget "http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar"
Warning: wildcards not supported in HTTP.
--2014-03-02 20:40:20-- http://dl.minitoons.ir/longs/Khumba%20(2013)%20[EN]%20[BR-Rip%20720p]%20-%20[www.minitoons.ir].rar
Resolving dl.minitoons.ir (dl.minitoons.ir)... 79.127.127.41
Connecting to dl.minitoons.ir (dl.minitoons.ir)|79.127.127.41|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 594062365 (567M) [application/x-rar-compressed]
Saving to: ‘Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar’
0% [ ] 73,288 44.9KB/s
легче тот путь, и Вы не должны позориться с материалом.
Я закончил тем, что писал сценарий Python для него.
from os import listdir, rename
from urllib.parse import unquote # py2: from urllib import unquote
os.chdir('/mydir/')
for filename in listdir('.'):
rename(filename, unquote(filename))