Frage

Ich versuche, curl zu verwenden, um eine seried von Dateien in folgendem Format zum Download:

  

http://example.com/001.jpg

     

..

     

http://example.com/999.jpg

So habe ich diesen Befehl ein:

  

Zeit curl   „ http://example.com/[0- 9] [0-9] [0-9] .jpg “   -o "# 1 # 2 # 3.gif"

Aber einige der Dateien nicht vorhanden ist, und dieser Befehl wird die Dateien auf meinem Ende erstellen, aber wirklich wird es nur die Fehlerseite enthält.

Ich muss einen Weg für curl überprüfen, ob sie es vor dem Download auf dem Remote-Server vorhanden ist.

Ich weiß, wget es tun können, aber wget scheint etwa 5-mal länger laufen zu nehmen. Der Befehl habe ich es in wget zu versuchen, ist dies:

  

Zeit wget    http://example.com/ {0..9} {0..9} {0..9 } .jpg

War es hilfreich?

Lösung

Versuchen -f / - fail Option:

  

(HTTP) fehlschlagen still (keine Ausgabe überhaupt) auf Server-Fehler. Dies ist vor allem getan, um besseren Skripte zu ermöglichen etc, um besser mit Fehlversuchen. Im Normalfall, wenn ein HTTP-Server, ein Dokument liefern fehlschlägt, gibt es ein HTML-Dokument besagt, so (die oft auch beschreibt, warum und mehr). Dieses Flag wird verhindert, dass Locke aus, dass die Ausgabe und die Rück Fehler 22.

     

Dieses Verfahren ist nicht ausfallsicher und es gibt Gelegenheiten, bei denen nicht-erfolgreiche Antwortcodes durchrutschen, vor allem, wenn die Authentifizierung beteiligt ist (Antwortcodes 401 und 407).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top