Ce que je désirerai : extraire les données "Heure - Evènement - Type d'évènement - Détails" d'une page HTML et les copier dans un fichier texte. Cette étape fait partie d'un processus global visant à automatiser l'extraction et le traitement d'informations.
Ce que j'ai : un modem-routeur LiveBox Sagem Version 1. (Merci de ne pas trop se moquer de moi …)
Les contraintes imposées par le routeur :
- la page contenant les informations désirées est toujours dans un cache différent à chaque ouverture
- il n'est pas possible d'enregistrer les logs via un bouton de commande inclus dans la page
- il n'est pas possible d'enregistrer en mode console, car non implémentée dans le noyau
- je ne sais pas à l'avance combien de lignes devront être copiées, car je filtre que les tentatives d'intrusions et autres accès interdits par les règles de FireWalling que j'ai édictées
Ce que je sais faire (plus ou moins bien) :
- ouvrir la page d'accueil; inscrire le login; inscrire le mot de passe; valider
- inscrire dans la barre URL, la commande JavaScript pour ouvrir la page relative aux données que je veux
- copier l'adresse du cache de la page ouverte et vérifier que l'adresse est bien celle du cache à l'aide de boite de message
- créer un fichier texte pour recevoir les informations copiées
- ouvrir le fichier en mode écriture
Ce que je ne sais pas faire malgré l'aide précieuse de ce post (http://autoitscript.fr/forum/viewtopic.php?f=3&t=6936), est de :
- coller l'adresse du cache pour l'exploiter ensuite (par exemple $url ou autre chose)
- copier les informations à partir du mot "données." dans le fichier texte.
Voici le script et un morceau du code source de la page.
Code : Tout sélectionner
#include <IE.au3>
ShellExecute ("iexplore.exe", "http://192.168.2.254")
WinWaitActive ("Wanadoo_xxxx - Windows Internet Explorer")
Send ("monlogin")
Send ("{TAB}")
Send ("monmotdepasse")
Send ("{ENTER}")
Send ("{TAB}")
Send ("{DEL}")
Send ("javascript:mimic_button('goto: 9006..', 0);")
Send ("{ENTER}")
Send ("+{TAB 7}") ;déplacement dans la barre URL
Send ("^c") ;copie de l'URL de la page
;par exemple http://192.168.2.254/cache/1013678306/index.cgi
$url = ClipGet() ;récupération de l'information copiée
;les 5 lignes suivantes me permettent de vérifier si j'ai la bonne information
;MsgBox(0, "ClipGet contient :", $url)
;Sleep(2000)
;ClipPut($url & "URL du cache")
;MsgBox(0, "ClipPut contient :", ClipGet())
;Sleep(2000)
FileOpen ("c:\rapports\lbs1\fw_lbs1.txt",2) ;ouverture du fichier en mode écriture;et c'est ici que je dois reconnaître ma limite.
;je ne sais pas si la méthode de la ligne $url = ClipGet() et la suite, est la bonne
;je voudrais que les données "Heure - Evènement - Type d'évènement - Détails" soient
;copiées dans le fichier ouvert
;avec la méthode citée dans le lien du post ci dessus le fichier est bien modifié car l'horodatage est actualisé dans l'explorateur
;mais rien n'est écrit dans le fichier.
;
;voici ce que contient le cache de la page avec les données que je voudrais copier :
;
Code : Tout sélectionner
;<BODY><HTML> et plein de lignes ....
;</TABLE></CENTER><P ALIGN=CENTER>Cliquer sur le bouton <B>Rafraîchir</B> pour mettre à jour les données.
;</P><P><BR></P><TABLE border=0 cellpadding=4 cellspacing=0 width="90%"><TR bgcolor=#FF6600>
;<TD class="header_cell" bgcolor=#FF6600 align=CENTER valign=MIDDLE><B><FONT color=#FFFFFF face="Verdana">Heure</FONT></B></TD>
;<TD class="header_cell" bgcolor=#FF6600 align=CENTER valign=MIDDLE><B><FONT color=#FFFFFF face="Verdana">Evénement</FONT></B></TD>
;<TD class="header_cell" bgcolor=#FF6600 align=CENTER valign=MIDDLE><B><FONT color=#FFFFFF face="Verdana">Type d'événement</FONT></B></TD>
;<TD class="header_cell" bgcolor=#FF6600 align=CENTER valign=MIDDLE><B><FONT color=#FFFFFF face="Verdana">Détails</FONT></B></TD></TR>
;<TR bgcolor=#EFEFEF><TD class="standard_cell" align=LEFT valign=MIDDLE>Jul 20 07:54:55 2011</TD><TD class="standard_cell" align=LEFT valign=MIDDLE>Connexion WBM</TD><TD class="standard_cell" align=LEFT valign=MIDDLE>User authentication success </TD><TD class="standard_cell" align=LEFT valign=MIDDLE>Username: monlogin</TD></TR>
;<TR bgcolor=#FFFFFF><TD class="standard_cell" align=LEFT valign=MIDDLE>Jul 20 07:48:27 2011</TD><TD class="standard_cell" align=LEFT valign=MIDDLE>Trafic entrant</TD><TD class="standard_cell" align=LEFT valign=MIDDLE><FONT color=#FF0000>Bloqué - Default policy</FONT></TD><TD class="standard_cell" align=LEFT valign=MIDDLE>TCP 209.44.106.62:6000->monipwan:139 on ppp0</TD></TR>
;<TR bgcolor=#EFEFEF><TD class="standard_cell" align=LEFT valign=MIDDLE>Jul 20 07:20:03 2011</TD><TD class="standard_cell" align=LEFT valign=MIDDLE>Trafic entrant</TD><TD class="standard_cell" align=LEFT valign=MIDDLE><FONT color=#FF0000>Bloqué - Default policy</FONT></TD><TD class="standard_cell" align=LEFT valign=MIDDLE>TCP 60.173.26.41:6000->monipwan:9415 on ppp0</TD></TR>
;</TABLE></FORM></BODY></HTML>
;et ainsi de suite, mais toutes les lignes ci-dessus sont à la queue leu leu.;le fichier texte doit avoir le format suivant
;Apr 1 17:09:06 2011 Connexion WBM User authentication success Username: monlogin
;Apr 1 16:55:41 2011 Trafic entrant Bloqué - Default policy TCP 125.45.109.166:12200->monipwan:7212 on ppp0
;Apr 1 16:55:41 2011 Trafic entrant Bloqué - Default policy TCP 125.45.109.166:12200->monipwan:6588 on ppp0
Voila mon souci. Merci d'avance pour ceux qui vont prendre le temps d'y jeter un oeil.
Désolé par avance si je commence par un long pavé.




