1 votes

télécharger un fichier à partir d'une source web, de manière sélective

Si vous avez entendu parler de Bukkit, vous savez que leurs fichiers sont généralement de trois types : Développement, Beta et Realease. Cliquez ( aquí ). J'ai besoin d'un script qui :

  • Boucle sur le répertoire
  • Récupère la dernière Stable version (probablement aussi simple que de regarder le numéro de version car ils ont une convention de nommage simple, chaque version stable est suivie de -Rx.0, tandis que les versions de développement et bêta sont suivies de -Rx.x)

Ensuite, je sais que j'aurai besoin d'utiliser wget pour télécharger le fichier.

Note : Si vous ne faites qu'afficher du code, dites-moi au moins ce qu'il fait pour que je puisse l'utiliser plus tard si nécessaire.

1voto

La tâche principale du script est de déterminer lequel de ces liens il doit utiliser. wget . L'analyse des pages web est vraiment compliquée. Je ne recommanderais pas à bash pour cela !

Python est facile à écrire en comparaison et dispose d'une bibliothèque d'analyse HTML robuste appelée Une belle soupe .

Une fois que le lien a été modifié, le téléchargement est trivial.

0voto

Presbitero Points 1125

Il m'a fallu du temps pour trouver la solution, mais la voici ;)

-c , au cas où vous voudriez vous arrêter et recommencer là où vous vous êtes arrêté

-r -A " -R[0-9].0 " ne récupère que les fichiers qui ont au milieu -Rx.0 et x appartenant à {0,1,...9}

-np , signifie qu'il n'y a pas de répertoires parents (va de pair avec l'option -r)

-nd , signifie pas de répertoire

-e robots=off , désactive les robots

Dans votre cas, vous feriez donc quelque chose comme

wget -c -e robots=off -r -np -nd -A "*-R[0-9].0*" http://repo.bukkit.org/content/groups/public/org/bukkit/craftbukkit/

Je n'arrive pas à l'obtenir sur le site que vous avez indiqué, mais je pense qu'il redirige les choses ici.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X