Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde 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 : GirollServices libres : TdCT.org
Hide in your shell, scripts & astuces :  applications dans un tunnelsmart wgettrouver des pdfinstall. auto de paquetssauvegarde auto♥ awk
  ⃛ɹǝsn xnuᴉꞁ uʍop-ǝpᴉsdn

Hors ligne