Mam taki adres URL:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Chcę pobrać ten adres URL za pomocą wget
. Jeśli przekażę to bezpośrednio wget
, wszystko pójdzie dobrze. Ale jestem w sytuacji, że mam tylko zakodowane wersje adresów URL pobierania. Jeśli przekażę zakodowaną wersję adresu URL powyżej wget
, generuje następujący błąd:
$ 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'
Zauważ, że wget
zmieniłem wielkość liter URL (na przykład Khumba
na khumba
). Co powinienem zrobić, aby rozwiązać ten problem?
python -c 'import urllib2; print urllib2.unquote("'${URL}'")'
robi się mniej więcej tak samo, jeśli umieścisz swój adres URL w zmiennej URL środowiska.Powinieneś użyć tego w ten sposób
Po prostu zamień każde miejsce na
%20
. Lub Lepiej skopiuj oryginalny link i wklej go w pasku adresu przeglądarki Chromium. Automatycznie go sformatuje. Teraz skopiuj go stamtąd do terminala.źródło
[Ctrl]+[Shift]+[J]
(w konsoli programisty) i wstawieniedecodeURIComponent("your-decoded-URI")
.Wget oczekuje, że adres URL będzie miał następujący format:
Protokół jest opcjonalny. W przypadku braku protokołu Wget zakłada HTTP.
Wget dobrze akceptuje adresy URL zakodowane procentowo, ale separatory między protokołem , hostem i ścieżką nie mogą być zakodowane procentowo.
Z tego też powodu Wget zmieniła obudowę adresu URL. Ponieważ nie znalazł ani jednego niekodowanego ukośnika, zakłada to
to nazwa hosta (która nie rozróżnia wielkości liter). Rzeczywista nazwa hosta to oczywiście
dl.minitoons.ir
.W przypadku rozwiązania automatycznego wystarczy zastąpić
%3A%2F%2F
i%2F
po nazwie hosta znakiem://
i/
, ale równie łatwo można odkodować adres URL jednocześnie. @ Wilf dał już dobre rozwiązanie tego problemu.Jeśli jednak chcesz ręcznie wpisać polecenie Wget, po prostu wykonaj następujące czynności:
źródło
Wystarczy umieścić cytaty wokół adresu URL i wykonać:
Jest to łatwiejsze i nie musisz zawstydzać się rzeczami.
źródło
W końcu napisałem do niego skrypt Pythona.
źródło