Wget sur un site avec authentification par formulaire

La commande Wget dont nous avons déjà venté les mérites permet d’automatisée certaines taches.

Nous allons dans cet article (qui me servira d’aide mémoire 😉 ) décrire la méthode mise en oeuvre pour accéder à une zone membre sur un site et de télécharger automatiquement les éléments comme réservés aux membres, ici ce sera des ZIP.

  1. Depuis un navigateur web classique rendez vous sur la page d’identification puis récupérer dans les sources le nom des champs Login, Mot de passe.
    Il faut récupérer le contenu de l’attribut « name » sur les champs input du formulaire ex :
    <input type=text name=input_username size=20 STYLE= »font-size : 8pt »>
  2. Avec les éléments récupérés en 1 il faut construire la requète qui permettra d’enregistrer le cookie
    [code type= »shell »]wget –save-cookies cookies.txt –post-data ‘username=NOMUTILISATEURouLOGIN&password=VOTREMOTDEPASSE’ –user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" http://url-de-votre-site.net/members-area/index.php[/code]
  3. Désormais on peut lancer la récupération de la zone membre en utilisant le cookie généré à l’étape 
    [code type= »shell »]wget –load-cookies cookies.txt –user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -r -A.zip -nd -erobots=off -N https://url-de-votre-site/members-area/index.php[/code]
Si vous souhaitez gagner du temps et éviter les téléchargements inutiles et que l’utilisation de l’option -A.zip n’apporte pas le résultat escompté alors la solution peut être d’utiliser la ligne de commande pour récupérer dans un fichier txt toutes les urls contenant un élément à télécharger ex : cat index.html | grep download2.php > download.txt 
  1. [code type= »shell »]wget –load-cookies cookies.txt –user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" -w5 -N -i download.txt[/code]
    L’option w5 permet d’ajouter un délai de 5 secondes entres chaques download.