Ich habe eine URL wie diese:
http://dl.minitoons.ir/longs/Khumba (2013) [EN] [BR-Rip 720p] - [www.minitoons.ir].rar
Ich möchte diese URL mit herunterladen wget
. Wenn ich es direkt weitergebe wget
, geht alles gut. Aber ich bin in der Situation, dass ich nur die verschlüsselten Versionen von Download-URLs habe. Wenn ich die verschlüsselte Version der obigen URL an weitergebe wget
, wird der folgende Fehler ausgegeben:
$ 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'
Beachten Sie, dass wget
die Schreibweise der URL geändert wurde (z. B. Khumba
in khumba
). Was soll ich tun, um dieses Problem zu lösen?
python -c 'import urllib2; print urllib2.unquote("'${URL}'")'
funktioniert ungefähr genauso, wenn Sie Ihre URL in die URL der Umgebungsvariablen eingeben.Sie sollten es so verwenden
Ersetzen Sie einfach jedes Leerzeichen durch
%20
. Oder kopieren Sie den ursprünglichen Link und fügen Sie ihn in die Adressleiste des Chromium-Browsers ein. Es wird automatisch für Sie formatiert. Kopieren Sie es nun von dort auf Ihr Terminal.quelle
[Ctrl]+[Shift]+[J]
(für die Entwicklerkonsole) und einzufügendecodeURIComponent("your-decoded-URI")
.Wget erwartet, dass die URL das folgende Format hat:
Das Protokoll ist optional. In Abwesenheit eines Protokolls geht Wget von HTTP aus.
Wget akzeptiert prozentual codierte URLs, aber die Trennzeichen zwischen Protokoll , Host und Pfad können nicht prozentual codiert werden.
Aus diesem Grund hat Wget auch die Schreibweise der URL geändert. Da kein einziger nicht codierter Schrägstrich gefunden wurde, wird dies vorausgesetzt
ist der Hostname (ohne Berücksichtigung der Groß- und Kleinschreibung). Der tatsächliche Hostname ist natürlich
dl.minitoons.ir
.Für eine automatische Lösung würde das Ersetzen von
%3A%2F%2F
und%2F
nach dem Hostnamen durch://
und/
ausreichen, aber es ist genauso einfach, die URL auf einmal zu dekodieren. @Wilf gab schon eine gute Lösung dafür.Wenn Sie den Befehl Wget jedoch manuell eingeben möchten, gehen Sie wie folgt vor:
quelle
Sie müssen nur Anführungszeichen um die URL setzen und fertig:
Ist auf diese Weise einfacher und Sie müssen sich nicht mit Sachen in Verlegenheit bringen.
quelle
Am Ende habe ich ein Python-Skript dafür geschrieben.
quelle