Page 1 sur 1

[R] Archiver et telecharger des fichiers

Posté : dim. 05 déc. 2010 15:57
par Nilak
Bonjour,

Je vous explique mon petit probleme, tous les jours je dois télécharger quelques fichiers dont j'ai les liens, malheureusement je ne connais/trouve pas de fonctions pour ça et ce sujet ne m'a pas pas trop aidé...

Si il est possible de télécharger un fichier en suite j'aimerai que le contenu soit classé dans le dossier du jour. Ca c'est la partie la plus simple j'ai fait ça:

Code : Tout sélectionner

 $anne = @YEAR
$mois = @MON
$jour = @MDAY

DirCreate( $jour & "." & $mois & "." & $anne)
Filemove ( @ScriptDir & "\*.txt", @ScriptDir & "\" & $jour & "." & $mois & "." & $anne )
Ensuite je dois vérifier le contenu des dossiers, malheureusement ne pouvant pas le faire tous les jours, je veux conserver les dossiers 5 jours, pas plus à cause de l'espace disque, mais je ne vois pas comment supprimer les dossiers vieux de plus de 5 jours... Quelqu'un a des idées? s'il vous plait?

Merci par avance!

Re: [..] Archiver et telecharger des fichiers

Posté : dim. 05 déc. 2010 21:09
par sylvanie
Bonsoir.
Pour le téléchargement, si il s'agit d'un simple lien http sans besoins de cookies, session phph,etc. vous pouvez utilisez inetget (voir exple du fichier d'aide)

sinon il va falloir faire de la navigation via les fonction _IE_create, _IE_navigate et là ça va être spécifique à la page web (il faudra plus d'information)

pour la suppression des répertoires plus vieux de 5 jours, vous pouvez tester la date avec FileGetTime (marche aussi avec les répertoires) et enfin Dirremove en mode récursif

Re: [..] Archiver et telecharger des fichiers

Posté : dim. 05 déc. 2010 22:51
par Nilak
Bonsoir,

Merci bien de cette première réponse... Pour le téléchargement, j'avais oublié qu'il fallait s'authentifier avant de télécharger les fichiers, du coup je vais devoir le faire de maniere un peu salace...

Pour la gestion des dossiers, je teste ça demain!

Re: [..] Archiver et telecharger des fichiers

Posté : dim. 05 déc. 2010 23:13
par sylvanie
pour le download, si il s'agit d'un login/passwd classique vous pouvez passer ces infod sous forme :
inetget("http://user:passwod@votresite.com")

si il y a du https, pensez à l'option :
2 = Ignore all SSL errors (with HTTPS connections).

Re: [..] Archiver et telecharger des fichiers

Posté : mar. 07 déc. 2010 17:40
par Nilak
Bonjour,


Pour la gestion des dossiers j'utilise ça:

Code : Tout sélectionner

 $DeleteDir = _DateAdd( 'd','-3', _NowCalcDate())
$date = StringSplit($DeleteDir,'/')
$check = FileExists($date[3] & "." &$date[2] & "." & $date[1])
If $check = 1 Then  
    DirRemove($date[3] & "." &$date[2] & "." & $date[1])
EndIf
Pour le téléchargement qui n'utilise pas une authentification classique, je vais devoir utiliser des mousemove!

Merci bien pour l'aide, je passe le sujet en résolu!

Re: [R] Archiver et telecharger des fichiers

Posté : mar. 07 déc. 2010 22:13
par bloodwolff
Pour les téléchargements sans authentification classique . Il devrait y avoir moyen d'y aller avec l'udf <Ie.au3> sans passer par des mousemouve mais pour t'aider davantage il faudrait le code source ou au moins le lien du site

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:05
par Nilak
Hello,



Je voulais les utiliser à un moment... Malheureusement, je n'ai jamais réussir à faire un truc qui fonctionne...

J'ai essayé avec des _IEGetObjById,_IEFormGetObjByName,_IELinkClickByText... Mais pas réussi... x)

Code : Tout sélectionner

 <!--  Le formulaire de connexion -->
<form action="" method="post">
<table>
    <tr>
        <td>
            <label for="nom"><strong>Votre Login</strong></label>&nbsp;:
        </td>
        <td>
            <input type="text" name="nom" id="nom" size="30" maxlength="25" value="" />
        </td>
    </tr>
    <tr>
        <td>
            <label for="pass"><strong>Votre Mot de passe</strong></label>&nbsp;:
        </td>
        <td>
            <input type="password" name="pass" id="pass" size="30" maxlength="20" value="" />
        </td>
    </tr>
 <!--   <tr>
        <td>
 
Je ne comprends pas trop ce que je dois faire pour que ça marche... J'ai vu l'exemple google, mais il fonctionne peu importe ce que je mettais dedans...

Code : Tout sélectionner

 WinActivate("Google")
$oIE = _IECreate ("google.fr")
$oQuery = _IEFormElementGetObjByName ("", "2323")
_IEAction($oQuery,"click")
Send("AutoIt")
C'est même louche que ça marche... ##

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:18
par bloodwolff
Essaie ce code pour voir

Code : Tout sélectionner

#include <Ie.au3>

$url = "url du site"
$Ton_Nom = "Ton nom"
$Ton_Pass = "Ton pass"


$oIE = _IECreate($url)
$nom = _IEGetObjById($oIE, "nom")
$pass = _IEGetObjById($oIE, "pass")
_IEFormElementSetValue($nom , $Ton_Nom)
_IEFormElementSetValue($pass , $Ton_Pass)
_IEFormSubmit($nom.form)

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:25
par bloodwolff
Ah oui et pour le code

Code : Tout sélectionner

WinActivate("Google")
$oIE = _IECreate ("google.fr")
$oQuery = _IEFormElementGetObjByName ("", "2323")
_IEAction($oQuery,"click")
Send("AutoIt")
Il fonctionne car _ieformelementgetobjbyname ne trouve pas l'objet donc comme il n'a rien trouvé et que la ligne d'après vous lui demander de cliquer dessus bah il clique sur ce qu'il a trouvé C.A.D. rien :P

Et comme par hasard le champ qui vous interesse est celui sélectionné par défault les caractères envoyés lui sont envoyés

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:32
par Nilak
Re!


En effet ça marche! Je faisais toutes mes tentatives avec _IEACTION... Pour tenter de cliquer dans un input et de mettre mes identifiants avec un Send...


Merci bien :)

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:49
par bloodwolff
J'attend avec impatience tes futurs questions !
d'ailleur je suis en train de faire un script qui aurait pu t'aider à remplir ton formulaire
http://autoit.fr/forum/viewtopic.php?f=6&t=6364
Il n'est pas très optimisé pour le moment mais je le travaille tranquillement dans mes temps libres , assez nombreux ces temps-ci :D

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 21:56
par Nilak
Par contre j'ai parlé un peu trop vite, il ne valide pas le formulaire.

le submit:

Code : Tout sélectionner

     <tr>
        <td colspan="2" style="text-align: center;">
            <input type="submit" name="seconnecter" value=" Se connecter " />
        </td>
    </tr>
 
Le code autoit:

Code : Tout sélectionner

 $oIE = _IECreate($url)
$post = _IEGetObjByName ($oIE,"seconnecter")
$nom = _IEGetObjById($oIE, "nom")
$pass = _IEGetObjById($oIE, "pass")
_IEFormElementSetValue($nom , $Ton_Nom)
_IEFormElementSetValue($pass , $Ton_Pass)
_IEFormSubmit($post)
MsgBox(4096,"",$msg & @error)
Erreur 04 et j'ai essayé avec un _IEFormElementGetObjByName et la erreur 03... :/

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 22:06
par bloodwolff
Essaie le même code que je t'avais envoyé mais remplace

Code : Tout sélectionner

_IEFormSubmit($nom.form)
par

Code : Tout sélectionner

$form = $nom.form
_IEFormSubmit($form)
Sinon par

Code : Tout sélectionner

$form = _IEGetObjByName($oIE, "seconnecter")
_IEAction($form, "Click")
PS : Les deux solutions fonctionnent normalement

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 22:13
par bloodwolff
m.... , j'avais fais une petit erreur dans le script plus haut
ce n'est pas

Code : Tout sélectionner

_IEFormElementSetValue($nom , $Ton_Pass)
mais

Code : Tout sélectionner

_IEFormElementSetValue($pass , $Ton_Pass)

Re: [R] Archiver et telecharger des fichiers

Posté : mer. 08 déc. 2010 22:23
par Nilak
Re!

Bon bah cette fois tout est ok, les 2 premières solutions ne fonctionnent pas, la dernière fonctionne! Décidément je n'aurais jamais utilisé la bonne fonction au bon moment! EN tout cas j'y vois un peu plus clair sur ie.au3 j'espère pouvoir faire des choses bien sympathique avec maintenant, héhé!

Merci bien et bonne soirée! :mrgreen:

Edit pour la réponse entre 2: Oui j'avais vu! Ne t'inquiète pas d'ailleurs quand je cite mon code juste au dessus de ton message, il y a déjà $pass! Merci en tout cas :D
D'ailleurs je remarque que j'ai mal fait mon c/c, car on n'a pas le $msg = _IEFormSubmit($post)!