#1 Le 19/09/2012, à 21:03
- weezixx
Mise à jour de contenu de dossier automatique via wget
Bonjour,
on va inventer un scénario :
Je suis étudiant, j'ai une plate-forme pour mes cours sur le site du campus, et j'aurai aimé que lorsqu'un prof ajoute un cours sur le site il soit automatiquement télécharger sur un dossier spécifique.
Je précise que ce site me demande mon nom d'utilisateur et mdp
J'ai déjà tenté un :
wget -E --http-user monnom --http-password monmdp url
Mais il me télécharge direct un fichier .html
Comment faire ?
D'avance merci
Dernière modification par weezixx (Le 19/09/2012, à 21:29)
Hors ligne
#2 Le 20/09/2012, à 07:28
- nesthib
Re : Mise à jour de contenu de dossier automatique via wget
Sans en savoir un peu plus sur la structure de cette page web il va être difficile de t'aider. Regarde les sources, regarde les requêtes qui sont envoyées lors du téléchargement du fichier, etc.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne
#3 Le 20/09/2012, à 22:24
- weezixx
Re : Mise à jour de contenu de dossier automatique via wget
voila la réponse de la commande :
wget -E --http-user monnom --http-password monmdp url_du_site
[1] 28705
[2] 28706
[3] 28707
mister_why@JARVIS:~$ --2012-09-20 22:20:40-- http://************************/claroline/document/document.php?cmd=exDownload
Résolution de *********************** (********************)... 130.104.5.70, 2001:6a8:3080:9::70
Connexion vers ********************* (*******************)|130.104.5.70|:80... connecté.
requête HTTP transmise, en attente de la réponse... 302 Found
Emplacement: /claroline/auth/login.php?sourceUrl=aHR0cDovL2ljYW1wdXMudWNsb3V2YWluLmJlL2NsYXJvbGluZS9kb2N1bWVudC9kb2N1bWVudC5waHA%2FY21kPWV4RG93bmxvYWQ%3D&cidRequired=true [suivant]
--2012-09-20 22:20:40-- http://****************/claroline/auth/login.php?sourceUrl=aHR0cDovL2ljYW1wdXMudWNsb3V2YWluLmJlL2NsYXJvbGluZS9kb2N1bWVudC9kb2N1bWVudC5waHA%2FY21kPWV4RG93bmxvYWQ%3D&cidRequired=true
Réutilisation de la connexion existante vers url_site:80.
requête HTTP transmise, en attente de la réponse... 200 OK
Longueur: 7104 (6,9K) [text/html]
Sauvegarde en : «document.php?cmd=exDownload.html»
100%[======================================>] 7.104 --.-K/s ds 0,02s
2012-09-20 22:20:40 (305 KB/s) - «document.php?cmd=exDownload.html» sauvegardé [7104/7104]
[1] Fini wget -E --http-user monnom --http-password monmdp url_du_site
[2]- Fini file=L0NvdXJzX3RoZW9yaXF1ZXM%3D
[3]+ Fini cidReset=true
Hors ligne
#4 Le 20/09/2012, à 23:20
- Zakhar
Re : Mise à jour de contenu de dossier automatique via wget
Bah, tu tiens l'idée.
La page téléchargée est probablement une page d’accueil avec la liste des cours. Dans ce cas il faut que tu la "parse" et que tu récupères ce qui t'intéresse.
Le shell n'est pas vraiment l'outil idéal pour faire ça, mais si la page est suffisamment simple on y arrive sans trop de mal.
Une fois que tu auras isolé ce qui t'intéresse dans la page, tu auras les liens vers les autres pages que tu veux mettre à jour, et là tu peux ensuite enchaîner sur d'autres wget pour ces pages là.
Sinon, une autre solution plus "bulldozer", mais qui n'a de sens que si le site visé est suffisamment petit, c'est d'en faire une copie intégrale en local. wget sait faire ce genre de chose. C'est un peu bourrin, mais ça évite tout un script.
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#5 Le 20/09/2012, à 23:33
- weezixx
Re : Mise à jour de contenu de dossier automatique via wget
Oui mais la dans ce cas il ne me télécharge que (apparemment) le code source de la page et pas les fichiers .pdf, … il y a une manipulation à faire en plus ?
Hors ligne
#6 Le 21/09/2012, à 02:01
- nesthib
Re : Mise à jour de contenu de dossier automatique via wget
Si, comme le dit Zakhar, la page d'accueil ne comporte pas directement les fichiers, tu dois effectivement « parser » (analyser et extraire des informations) la page. Tu peux faire ça facilement en shell en analysant le contenu de la page retournée, en extrayant le nom des liens qui t'intéressent et en lançant une boucle qui récupère les fichiers.
Un exemple de structure :
while read fichier
do
wget ${fichier}
done < <(wget -O - page_d_accueil | commande de traitement qui retourne la liste des fichiers)
La commande de traitement étant vraisemblablement grep/awk/sed, si tu veux de l'aide pour l'écrire, donne-nous le contenu de la page d'accueil.
Une autre solution est de passer par un langage plus évolué, comme python qui comporte le module mechanize spécifiquement dédié à automatiser des requêtes vers un site.
GUL Bordeaux : Giroll – Services libres : TdCT.org
Hide in your shell, scripts & astuces : applications dans un tunnel – smart wget – trouver des pdf – install. auto de paquets – sauvegarde auto – ♥ awk
⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn
Hors ligne