Question

Je suis en train d'utiliser curl pour télécharger un seried de fichiers dans le format suivant:

  

http://example.com/001.jpg

     

..

     

http://example.com/999.jpg

J'utilisé cette commande:

  

boucle de temps   « http://example.com/[0- 9] [0-9] [0-9] .jpg »   -o "# 1 # 2 # 3.gif"

Mais certains fichiers n'existent pas, et que cette commande va créer les fichiers sur ma fin, mais vraiment il va juste contenir la page d'erreur.

Je besoin d'un moyen pour vérifier la courbure si elle existe sur le serveur distant avant de le télécharger.

Je sais que wget peut le faire, mais wget semble prendre environ 5 fois plus à courir. La commande je l'essayer dans wget est la suivante:

  

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

Était-ce utile?

La solution

Essayez -f / - Option échec:

  

(HTTP) échouer en mode silencieux (pas de sortie du tout) sur les erreurs de serveur. Cela se fait la plupart du temps pour mieux permettre aux scripts etc pour mieux faire face aux tentatives infructueuses. En temps normal lorsqu'un serveur HTTP ne parvient pas à fournir un document, il renvoie un document HTML indiquant si (qui souvent décrit aussi pourquoi et plus). Ce drapeau empêchera boucle de sortie et qui renvoie une erreur 22.

     

Cette méthode est fail-safe et il y a des occasions où les codes de réponse non retenus se glisser à travers, en particulier lorsque l'authentification est impliqué (codes de réponse 401 et 407).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top