Frage Wie benutzt man wget im Fall wie JSON?


Angenommen, wir haben json so:

[{
    "title": "How to download File From Node Js",
    "extension": "mp4",
    "url" : "http://zzz.com/asd/what.mp4",
    "folder__relative_path": "tutorial/node"
}, {
    "title": "How to play Guitar",
    "extension": "mp4",
    "url" : "http://asdz.com/asd/dsa.mp4",
    "folder__relative_path": "another_folder/hello/tutorial/Guitar"
}
....
more
more
....
]

Also im Grunde haben wir eine JSON-Datei mit Informationen über Download-URL, Pfad und Dateiname mit der Erweiterung. Wir möchten nur von dem obigen Link herunterladen.

Wie lade ich das Umbenennen mit Titel mit Erweiterung herunter und speichere es in dem von uns angegebenen Verzeichnis;

Wir wissen, dass wir wget so verwenden können

wget www.zzz.com/1.mp4 -O /var/cache/foobar/google.mp4

aber ist es nicht schwer, von json zu holen und zu speichern ??

Gibt es trotzdem eine Lösung für dieses Problem?


1
2017-12-28 11:03


Ursprung




Antworten:


Sie können Python verwenden, um parsen Sie den JSON und Lauf wget:

#! /usr/bin/python3
import json, sys, subprocess

for k in json.load(sys.stdin):
    cmd = ["echo", "wget", k["url"], "-O", '{:s}/{:s}.{:s}'.format(k["folder__relative_path"], k["title"], k["extension"])]
    subprocess.run(cmd)

Mit der Beispieleingabe:

$ python3 f.py < foo.txt
wget http://zzz.com/asd/what.mp4 -O tutorial/node/How to download File From Node Js.mp4
wget http://asdz.com/asd/dsa.mp4 -O another_folder/hello/tutorial/Guitar/How to play Guitar.mp4

Löschen "echo", um das tatsächlich auszuführen wget Befehle, nachdem Sie die Ausgabe überprüft haben.


2
2017-12-28 14:21



Benötigt es python3.5? - Me Noob Sir
@MeNoobSir wegen subprocess.run()? Nein, du kannst das durch ersetzen subprocess.call() stattdessen. - muru