Page 1 sur 1
[..] Enregistrer une page web bien definie
Posté : dim. 04 juil. 2010 21:53
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
Re: [..] Enregistrer une page web bien definie
Posté : dim. 04 juil. 2010 22:41
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
Re: [..] Enregistrer une page web bien definie
Posté : lun. 05 juil. 2010 11:27
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...

Re: [..] Enregistrer une page web bien definie
Posté : lun. 05 juil. 2010 12:41
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)
Re: [..] Enregistrer une page web bien definie
Posté : lun. 05 juil. 2010 12:53
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
Re: [..] Enregistrer une page web bien definie
Posté : lun. 05 juil. 2010 18:18
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()
Re: [..] Enregistrer une page web bien definie
Posté : mar. 06 juil. 2010 12:09
par remirom
merci c'est cool j'ouvre la page avec les indentifiant
mais par contre comment utiliser ineget??
merci
Re: [..] Enregistrer une page web bien definie
Posté : mar. 06 juil. 2010 12:38
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...