[..] Enregistrer une page web bien definie

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
remirom
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 02 juil. 2010 12:39
Status : Hors ligne

[..] Enregistrer une page web bien definie

#1

Message par remirom »

bonjour,

je voudrais pouvoir lancer une page web définit

une fois logué

enregistrer cette page en html, dans un répertoire, avec la date du jour comme nom de fichier

en fait c'est pour enregistrer les graphes de monitoring de mon hébergeur tous les jours

vu qu'il a fait une page robot.php les aspirateur web ne fonctionne pas et comme j'ai une 15 aine de pages a enregistrer chaque jour
je voudrais l'automatiser dans les taches planifier pour être tranquilles et avoir un historique ( car l'hébergeur ne garde que 2 jour d'activité)


merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#2

Message par timmalos »

Essayez $oIE = _IECreate("http://")
puis les fonctions _IEForm... pour vous connecter,
puis _IEDocReadHTML($oIE) pour lire le code source,
puis FileWrite pour ecrire dans un fichier
remirom
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 02 juil. 2010 12:39
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#3

Message par remirom »

merci pour cette réponse

j'ai essayer d'avancé

voici mon code

Code : Tout sélectionner

;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;
;                     Mise en place des Options                    ;
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&;
#include <Array.au3>
#include <Date.au3>
#include <File.au3>
#include <IE.au3>
#include <Misc.au3>
#include <String.au3>
#include <Constants.au3>



If ProcessExists("iexplore.exe") Then ProcessWaitClose("iexplore.exe", 20000)
$oIE = _IECreate("https://portal.ntt.eu/",0,1)

$oUser =_IEGetObjByName($oIE,"row1")
$oPass =_IEGetObjByName($oIE,"row2")
$oSubmit = _IEGetObjByName($oIE, "login")
_IEFormElementSetValue ($oUser, "mon-login")
_IEFormElementSetValue ($oPass, 'mon_mot_de_passe')
_IEAction ($oSubmit, "submit")




_IEDocReadHTML($oIE) 

$fileHTML = _IEDocReadHTML($oIE)
If @error = 0 Then
   $fileHTML = "<!-- saved from url=(0027)http://adresse_du_site.com -->" & @CRLF & $fileHTML
   FileDelete("fichier.html")
   FileWrite("fichier.html",$fileHTML)
   ConsoleWrite($fileHTML)
EndIf
 
mais plusieurs soucis ce pose
impossible d'entrer le login et mot de passe...
voici les erreurs quand je test

dans mon code j'ai laisser le site pour avoir plus d'infos sur le form...
car c'est surement cela qui bloque...

Code : Tout sélectionner

--> IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: row1, Index: 0)
--> IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: row2, Index: 0)
--> IE.au3 V2.4-0 Warning from function _IEGetObjByName, $_IEStatus_NoMatch (Name: login, Index: 0)
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
par contre le fichier s'enregistre bien mais on ne voit pas les images...
j'ai peut être oublier quelque chose

je suis quand même content de moi sur ce coup... :lol:
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#4

Message par timmalos »

Vous pouvez etre content... et décu en effet Autoit vous dit tel quel : "No match" ca veut dire qu'il n'a pas trouvé row1 et row2 donv vous savez que le problème vient de là.
Essayez:

Code : Tout sélectionner

$oIE = _IECreate("https://portal.ntt.eu/",0,1)
$oForm = _IEFormGetObjByName($oIE,"form0")
$oUser = _IEFormElementGetCollection($oForm,0)
$oUser = _IEFormElementGetCollection($oForm,1)
_IEFormElementSetValue ($oUser, "mon-login")
_IEFormElementSetValue ($oPass, 'mon_mot_de_passe')
_IEFormSubmit($oForm)
remirom
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 02 juil. 2010 12:39
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#5

Message par remirom »

merci pour votre aide

ca avance

voici le nouveau type d'erreur qui apparaissent...

Code : Tout sélectionner

--> IE.au3 V2.4-0 Warning from function _IEFormGetObjByName, $_IEStatus_NoMatch
--> IE.au3 V2.4-0 Error from function _IEFormElementGetCollection, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementGetCollection, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormElementSetValue, $_IEStatus_InvalidDataType
--> IE.au3 V2.4-0 Error from function _IEFormSubmit, $_IEStatus_InvalidDataType
j'ai mis a jour ce code

Code : Tout sélectionner

If ProcessExists("iexplore.exe") Then ProcessWaitClose("iexplore.exe", 20000)
$oIE = _IECreate("https://portal.ntt.eu",0,1)
$oForm = _IEFormGetObjByName($oIE,"form0")
$oUser = _IEFormElementGetCollection($oForm,0)
$oPass = _IEFormElementGetCollection($oForm,1)
_IEFormElementSetValue($oUser,"mon_user")
_IEFormElementSetValue($oPass,"mon_passe")
_IEFormSubmit($oForm)

ensuite j'ai ajouté
la sauvegarde de la page

Code : Tout sélectionner

_IEDocReadHTML($oIE) 

$fileHTML = _IEDocReadHTML($oIE)
If @error = 0 Then
   $fileHTML = "<!-- sauvegarde du monitoring ESX1 sur NTT-->" & @CRLF & $fileHTML
   FileWrite('//chemin/monitoring/ESX1'& "_" & @YEAR & @MON & @MDAY & '.html',$fileHTML)
   ConsoleWrite($fileHTML)
EndIf
 
mais la je n'ai en fait que le code... si je veux récupérer les images?
car je voudrais récupérer les graphs...y a t'il une fonction ou
avez vous une idée du chemin a prendre?


merci
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#6

Message par timmalos »

Essayez $oForm = _IEFormGetCollection($oIE,0)

Apres, pour recuperer les graphs, utilisez l'adresse que vous obtenez dans le code source de votre graph, puis InetGet()
remirom
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 02 juil. 2010 12:39
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#7

Message par remirom »

merci c'est cool j'ouvre la page avec les indentifiant

mais par contre comment utiliser ineget??

merci
remirom
Niveau 1
Niveau 1
Messages : 5
Enregistré le : ven. 02 juil. 2010 12:39
Status : Hors ligne

Re: [..] Enregistrer une page web bien definie

#8

Message par remirom »

je viens de voir la fonction inetget()

mais c'est un peu embêtant car je ne peux avoir le lien de l'image car chaque graph renvoie vers une autre page...

donc impossible d'avoir l'adresse de l'image...

est ce qu'il existe un moyen de faire un scan et d'enregistrer comme une sorte d'imprime écran...
Répondre