2017-10-16 7 views
-1

J'essaie de télécharger les fichiers les plus récents ajoutés à un site Web chaque semaine. Le problème avec cela est que les fichiers ont une sorte de hachage pas très complexe, pour être précis un nombre compris entre 10^5 et 10^6. J'ai écrit un script bash simple qui essaye toutes les combinaisons. C'est pourquoi j'obtiens probablement que la liste d'arguments d'erreur est trop longue. Mais 99% des liens ne sont pas valides alors peut-être y at-il un moyen de contourner cela. Ce à quoi ressemble mon script comme:Script Bash avec liste d'arguments wget trop long

#!/bin/bash 
for i in `seq 1 10`; 
do 
    fileno="0$i" 
    wget --continue --timestamping --directory-prefix=photos/ http://sampleurl.com/file$fileno.{99999..1000000}.jpeg 
done 
for i in `seq 10 25`; 
do 
    wget --continue --timestamping --directory-prefix=photos/ http://sampleurl.com/file$i.{99999..1000000}.jpeg 
done 
+4

Wow. Les sites intelligents vont étrangler ou bloquer vos connexions comme une très, très mauvaise araignée. – jdv

+1

Utilisez * lftp * ou effectuez une recherche dans DOM pour les fichiers. – 0andriy

+0

En outre, sachez que vous pouvez demander à un serveur les heures de la dernière modification en utilisant wget si vous voulez être _less_ agaçant. – jdv

Répondre

0

Vous pouvez utiliser une boucle for:

for i in {99999..1000000}; do 
    wget ... 
done 

Bien sûr, vous pouvez l'optimiser par wget'ing plusieurs fichiers sans dépasser les limites de longueur de ligne de commande.