script de téléchargement

script de téléchargement - Shell/Batch - Programmation

Marsh Posté le 25-11-2010 à 07:24:54    

Bonjour,
 
Je suis nouvelle. Donc je suis désolée d'avance si je postule dans le mauvais endroit.
Je veux créer un script shell qui permet de faire le téléchargement de certains fichiers.
Avant de faire le téléchargement l'accés au site web nécessite de tapper le login et le mot de passe.
Est il possible de créer un script shell quui permet de faire tout ça.
Si c'est possible merci beaucoup de votre aide.

Reply

Marsh Posté le 25-11-2010 à 07:24:54   

Reply

Marsh Posté le 25-11-2010 à 09:06:15    

bonjour et bienvenue.
Quelle est la méthode d'authentification ?
   - un champ directement dans la page style comme pour se connect à gmail ou autre site de ce style
   - une sorte de petite popup pour rentrer login/password ?

 

Si c'est le deuxième cas, essaye le format suivant d'url avec ton utilitaire de téléchargement (je suppose wget ?)
http://login:password@serveur/reste/de/l/url


Message édité par o'gure le 25-11-2010 à 09:09:28

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 09:13:38    

Merci beaucoup.
 
- un champ directement dans la page style comme pour se connect à gmail ou autre site de ce style=> oui c'est ça
 
je vais créer un script qui permet de faire ça.
 
J'ai trouvé que la commande "curl" sert àa faire ça mais je n'ai pas compris comment faire pour:
- Donner login/mot de passe
-lancer le téléchargement dans un dossier spécifique.
Merci une autre fois pour votre aide

Reply

Marsh Posté le 25-11-2010 à 09:27:00    

Non la commande curl ne sert pas à cela, curl et wget sont des utilitaires de téléchargement en ligne de commande. Ils disposent d'option pour s'authentifier mais plus par rapport à ce que je disais, c'est à dire l'authentification intrinsèque du protocole HTTP.
 
Là c'est un mécanisme différent... Le plus simple étant de t'authentifier avec ton browser, récupérer le cookie et l'utiliser avec curl ou wget en leur donnant l'adresse du fichier à télécharger (cf. leur manuel respectif : man wget et man curl)


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 09:38:20    

[:wark0]

 

L'accès à ton site web se fait par une page php ? [:opus dei]
Dans ce cas, tu peux essayer quelque chose comme ça si c'est du GET:

wget --keep-session-cookies --save-cookies site.dat "http://site.com/login.php?login=truc&pass=bidule" -O /dev/null


Ca devrait te connecter au site en stockant le cookie de connexion dans le fichier "site.dat"
Ensuite, pour récupérer ce qui t'intéresse (toujours en GET):

wget --load-cookies site.dat "http://site.com/page.php" -O "/chemin/du/repertoire/fichier.html"

 

Si c'est du POST, il faut modifier un petit peu, mais l'idée est la même :jap:


Message édité par wedgeant le 25-11-2010 à 09:42:49

---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 09:56:07    

Désolée mais je n'ai pas compris quoi faire.
- Comment pourrais-je récupérer le cookie et l'utiliser avce curl.
 
merci beaucoup

Reply

Marsh Posté le 25-11-2010 à 10:11:19    

Avec curl, j'en sais rien -> man curl :o
 
Par contre, si déjà tu pouvais nous dire quel type de script de connexion est utilisé, ça serait plus pratique :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 10:11:54    

Merci beaucoup WedgeAnt.
 
je suis entrain de essayer votre solution.
Pour être précise, je dois télécharger un dossier compressé (.zip).
pour le moment je n'arrive pas à exécuter la deuxième commande.Quelque soit le chemin d'enregistrement que je donne aprés l'option -O il m'indique toujours (par exemple H:\build\: Is a directory) comme erreur.
Donc ses commandes sont elles applicables pour télécharger un zip et y-a-t-il une façon spécifique pour tapper le chemin d'enregistrement.

Reply

Marsh Posté le 25-11-2010 à 10:12:51    

ensienne a écrit :

Désolée mais je n'ai pas compris quoi faire.
- Comment pourrais-je récupérer le cookie et l'utiliser avce curl.
 
merci beaucoup


Le premier point de Wedge, mais il est fort probable qu'une adaptation à ton site soit nécessaire.
Sinon via ton browser (firefox et ses cookies)


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 10:13:14    

je dois développer un script .bat qui contient des commandes pour faire le téléchargement.
je n'ai aucune idée sur comment faire.

Reply

Marsh Posté le 25-11-2010 à 10:13:14   

Reply

Marsh Posté le 25-11-2010 à 10:14:57    

Tu es sur quel système d'exploitation ?

 

edit: bon h:\ machin, c'est windows, je transfère dans la bonne catégorie.


Message édité par o'gure le 25-11-2010 à 10:16:01

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 10:16:27    

Ce sujet a été déplacé de la catégorie OS Alternatifs vers la categorie Programmation par O'Gure


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 10:25:26    

en réalité je dois implémenter un script de téléchargement pour windows et pour Linux.
Càd un fichier.bat et un fichier.sh
je viens de commnencer par la version windows.
merci

Reply

Marsh Posté le 25-11-2010 à 10:35:45    

WedgeAnt, j'ai réussi à utiliser les commandes que vous m'avez fourni avec Linux mais l'archive téléchargé est endommagé.
Je ne peux pas l'ouvrir.
C'est quoi le problème d'aprés votre avis.

Reply

Marsh Posté le 25-11-2010 à 10:39:26    

ensienne a écrit :

WedgeAnt, j'ai réussi à utiliser les commandes que vous m'avez fourni avec Linux mais l'archive téléchargé est endommagé.
Je ne peux pas l'ouvrir.
C'est quoi le problème d'aprés votre avis.


Aucune idée, j'ai laissé ma boule de cristal à la maison :D
Tu peux nous donner les commandes que tu utilises pour récupérer ton archive ? [:gratgrat]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 10:45:11    

et un

file nom_de_archive


histoire de voir à quoi nous avons à faire :)


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 10:49:22    

wedgeant a écrit :


Aucune idée, j'ai laissé ma boule de cristal à la maison :D
Tu peux nous donner les commandes que tu utilises pour récupérer ton archive ? [:gratgrat]


 
 
Vous avez raison.
J'ai utilisé les commandes que vous m'avez fourni:
La première:

Code :
  1. wget --keep-session-cookies --save-cookies site.dat "https://adresse_site/folder_name.zip?login=mylogin&pass=mypwd" --no-check-certificate -O /dev/null


et la deuxième est comme suit:

Code :
  1. wget --load-cookies site.dat "https://adresse_site/folder_name.zip" -O "/my_path/folder_name.zip"


 
et il m'indique dans la console que la téléchargement a été effectué avec succés mais la taille de zip téléchargé est trop petit et je ne peux pas le décompresser.
 
Merci beaucoup pour votre aide.

Reply

Marsh Posté le 25-11-2010 à 10:51:31    

o'gure a écrit :

et un

file nom_de_archive


histoire de voir à quoi nous avons à faire :)


 
oui.

Reply

Marsh Posté le 25-11-2010 à 10:52:01    

Lors de la première commande, il faut indiquer l'adresse du script de connexion, et pas du fichier zip :jap:
Il doit s'agir d'une adresse du genre login.php [:parisbreizh]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 10:59:20    

wedgeant a écrit :

Lors de la première commande, il faut indiquer l'adresse du script de connexion, et pas du fichier zip :jap:
Il doit s'agir d'une adresse du genre login.php [:parisbreizh]


 
 :sarcastic: même avec ça, le même erreur toujours.
l'archive n'est pas bien téléchargé.
le problème peut être avec la deuxième commande :sweat:  
le syntaxe que j'utilise est correcte ou non. :pt1cable:  
Est ce qu'on téléchargé un zip. :ange:

Reply

Marsh Posté le 25-11-2010 à 11:02:50    

Non mais il faudrait déjà:

  • savoir quelle est l'adresse de la page qui sert de connexion
  • trouver quels sont les paramètres du formulaire correspondant au login/pass dans cette page
  • construire la première url à partir ce ça
  • vérifier le contenu du fichier site.dat


Ensuite, comme te l'a demandé O'gure:

  • nous donner le résultat de la commande "file folder_name.zip"


Tu attaques ton problème par la fin, essaye déjà de voir si tout se passe bien au moment de la récupération du cookie de connexion :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 11:09:42    

coucou mon wedgeounet  [:atsuko]


---------------
Dieu dit « M-x make-network admin ». Et il le fût.
Reply

Marsh Posté le 25-11-2010 à 11:11:40    

wedgeant a écrit :

Non mais il faudrait déjà:

  • savoir quelle est l'adresse de la page qui sert de connexion
  • trouver quels sont les paramètres du formulaire correspondant au login/pass dans cette page
  • construire la première url à partir ce ça
  • vérifier le contenu du fichier site.dat


Ensuite, comme te l'a demandé O'gure:

  • nous donner le résultat de la commande "file folder_name.zip"


Tu attaques ton problème par la fin, essaye déjà de voir si tout se passe bien au moment de la récupération du cookie de connexion :jap:


 
  :sweat: les tois premiers points sont normalement correctes.
(*) pour la vérification de fichier site.dat, son contenu est:


# HTTP cookie file.
# Generated by Wget on 2010-11-25 10:05:43.
# Edit at your own risk.


=> Normalement c'est bon ou non  :cry:  
 :jap: le résultat de la commande file folder.zip est "folder.zip: HTML document text"
=> je pense que ça problème mais pourquoi il le télécharge sous cette forme :bounce:

Reply

Marsh Posté le 25-11-2010 à 11:12:32    


oui quoi ?  
Ce que j'attendais c'était la réponse de cette commande...


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 11:14:44    

ensienne a écrit :

 :sweat: les tois premiers points sont normalement correctes.


D'après ce que je vois dans tes réponses, non :D
 

ensienne a écrit :

(*) pour la vérification de fichier site.dat, son contenu est:


# HTTP cookie file.
# Generated by Wget on 2010-11-25 10:05:43.
# Edit at your own risk.


=> Normalement c'est bon ou non  :cry:


Ca n'est pas bon, le cookie est vide, ton authentification ne se passe pas bien :spamafote:
 

ensienne a écrit :

:jap: le résultat de la commande file folder.zip est "folder.zip: HTML document text"
=> je pense que ça problème mais pourquoi il le télécharge sous cette forme :bounce:


essaye de l'ouvrir dans un navigateur internet pour en voir le contenu :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 11:14:54    

o'gure a écrit :


oui quoi ?  
Ce que j'attendais c'était la réponse de cette commande...


 
  :sweat: le résultat de la commande file folder.zip est "folder.zip: HTML document text"  
je n'ai pas compris pourquoi le sauvegarde se fasse sous cette format.
 
Merci

Reply

Marsh Posté le 25-11-2010 à 11:19:38    

ensienne a écrit :

je n'ai pas compris pourquoi le sauvegarde se fasse sous cette format.


parce que ta connexion ne se passe pas correctement (voir mon message au dessus)
tant que tu n'auras pas corrigé ce problème, c'est pas la peine de chercher à tout prix à vouloir récupérer ton archive, ça ne marchera pas :spamafote:
 
seulement là on ne peut pas deviner à ta place quelle est l'url de connexion, ni quels sont les paramètres à passer :spamafote:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 11:19:46    

ensienne a écrit :

 :sweat: le résultat de la commande file folder.zip est "folder.zip: HTML document text"  
je n'ai pas compris pourquoi le sauvegarde se fasse sous cette format.
 
Merci


Parce que le lien que tu utilises génères une page web.
Certains sites, pour télécharger, ne fournissent pas directement le lien direct vers l'archive mais vers une page qui lance le téléchargement. Dans ce cas faut analyser le code des pages et trouver le lien direct [:spamafote]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 11:22:54    

o'gure a écrit :


Parce que le lien que tu utilises génères une page web.
Certains sites, pour télécharger, ne fournissent pas directement le lien direct vers l'archive mais vers une page qui lance le téléchargement. Dans ce cas faut analyser le code des pages et trouver le lien direct [:spamafote]


 
C'est ça.
Vous avez raison parce que si je tappe le lien /url_site/folder.zip il m'ouvre une page de téléchargement et il ne lance pas directement le téléchargemnt.
Comment alors pourrais je résoudre ça. :ouch:

Reply

Marsh Posté le 25-11-2010 à 11:24:35    

ensienne a écrit :


 
C'est ça.
Vous avez raison parce que si je tappe le lien /url_site/folder.zip il m'ouvre une page de téléchargement et il ne lance pas directement le téléchargemnt.
Comment alors pourrais je résoudre ça. :ouch:


comme je le dis, en analysant le code de la page de téléchargement.


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 11:24:48    

ensienne a écrit :

Comment alors pourrais je résoudre ça. :ouch:


il faut regarder le code source de la page qui s'ouvre, et essayer d'y trouver l'adresse du fichier .zip à télécharger :jap:


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 11:26:47    

wedgeant a écrit :


il faut regarder le code source de la page qui s'ouvre, et essayer d'y trouver l'adresse du fichier .zip à télécharger :jap:


 [:guarana2:1]


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 11:27:03    


[:natas]


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 12:47:22    

o'gure a écrit :


Parce que le lien que tu utilises génères une page web.
Certains sites, pour télécharger, ne fournissent pas directement le lien direct vers l'archive mais vers une page qui lance le téléchargement. Dans ce cas faut analyser le code des pages et trouver le lien direct [:spamafote]


 En fin j'ai réussi à récupérer le chemin de téléchargement direct :sweat:  
lorsque je le tape directement dans mon browser il lance le téléchargement.
Mais malheureusemnt  :cry: la commande ne marche pas.
si je vérifie la commande "file folder.zip"=> le résultat est toujours "folder.zip: HTML document text".
 
help please :sarcastic:  

Reply

Marsh Posté le 25-11-2010 à 12:50:12    

Bon, je pose les questions une dernière fois:

  • quelle est l'url que tu tapes dans ton navigateur pour te connecter au site ?
  • as-tu regardé le code source du formulaire web correspondant à cette url pour savoir comment construire la première ligne de commande (qui récupère le cookie de connexion) ?


---------------
Wedge#2487 @HS -#- PW: +∞ -#- Khaz-Modan/Boltiz @WoW
Reply

Marsh Posté le 25-11-2010 à 12:58:27    

ensienne a écrit :


 En fin j'ai réussi à récupérer le chemin de téléchargement direct :sweat:  
lorsque je le tape directement dans mon browser il lance le téléchargement.
Mais malheureusemnt  :cry: la commande ne marche pas.
si je vérifie la commande "file folder.zip"=> le résultat est toujours "folder.zip: HTML document text".
 
help please :sarcastic:  


As tu supprimé le précédente folder.zip, sinon wget te créera un folder.zip.1 avec le nouveau contenu téléchargé


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 13:04:29    

wedgeant a écrit :

Bon, je pose les questions une dernière fois:

  • quelle est l'url que tu tapes dans ton navigateur pour te connecter au site ?
  • as-tu regardé le code source du formulaire web correspondant à cette url pour savoir comment construire la première ligne de commande (qui récupère le cookie de connexion) ?


* Pour le premier point:
j'ai récupére le path à partir de ce bout de code de la code source de page de login

Code :
  1. </p>
  2. <form action="https://site_name/account/login.php" method="post" name="form_login" autocomplete="off">
  3. <input type="hidden" name="return_to" value="">
  4. <input type="hidden" name="pv" value="0">
  5. <p>
  6. * Pour le deuxième point: je ne sais pas commant faire. :whistle:

Reply

Marsh Posté le 25-11-2010 à 13:05:06    

o'gure a écrit :


As tu supprimé le précédente folder.zip, sinon wget te créera un folder.zip.1 avec le nouveau contenu téléchargé


  :bounce: oui j'ai fait ça.

Reply

Marsh Posté le 25-11-2010 à 13:07:47    

ensienne a écrit :


  :bounce: oui j'ai fait ça.


renomme le folder.zip en folder.html et ouvre le dans ton browser, t'auras peut être un message pertinent :o


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 25-11-2010 à 13:10:56    

o'gure a écrit :


renomme le folder.zip en folder.html et ouvre le dans ton browser, t'auras peut être un message pertinent :o


  :pt1cable: En faisant ça je récupère la page html ou je dois tapper mon login et mot de passe.
càd folder.html=login.html de site ou je veux faire le téléchargement. :hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed