[R] Lire des données WEB

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Trash
Niveau 3
Niveau 3
Messages : 36
Enregistré le : mar. 27 janv. 2009 20:51
Status : Hors ligne

[R] Lire des données WEB

#1

Message par Trash »

Bonjour..

Je m'attaque a un nouveau d'attente..

Sur mon site, http://rc****.progession.html
Je souhaite mettre une donnée : celle ci est a 10%

Et sur ma GUI de AutoIt..Je voudrais récupéré cette informations + le mettre dans ma GUI !
Merci a vous de votre reponse rapide !

TRASH
Modifié en dernier par Trash le ven. 17 avr. 2009 17:05, modifié 1 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Lire des données WEB

#2

Message par Iste »

un truc du genre :

Code : Tout sélectionner

InetGet ("http://rc****.progession.html","temp",1) 
; Cela chargera la page HTML dans un fichier nomé "temp" a coté du script
$File = FileRead ("temp")
; la vriable $File devient une string de la page
$Pourcent = StringRegExp ( $File , "[0-9]{2}([0-9])?%",1)
; Bon, mon exprétion reguliere est surement fausse, mais le principe est la ^^'
MsgBox("","",$Pourcent[0])
; Maintenant la variable $Pourcent est une array contenant tout les xxx% de ta page web !
Faut revoir mon patern dans StringRegExp() car je doute qu'il fonctionne, mais sinon l'esprie est la !
Edit : penser aussi a un FileDelete() le fichier temp
Signez ici
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [..] Lire des données WEB

#3

Message par GaRydelaMer »

Bonjour

Ma petite fonction qui te renvoie la source d'une page HTML dans une variable (sans fichier temp).

Ensuite tu as dans ta variable du texte (le source HTML) et avec une expression régulière ou un _StringBetween() tu peux lire la valeur que tu veux.

Code : Tout sélectionner

Func GetHtml_Source($url)
    Local $oHTTP = ObjCreate("winhttp.winhttprequest.5.1")

    If Not IsObj($oHTTP) Then Return
;~  Const $HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0
;~  Const $HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1
;~  Const $WinHttpRequestOption_UserAgentString = 0
;~  Const $WinHttpRequestOption_EscapePercentInURL = 3
    Const $WinHttpRequestOption_EnableRedirects = 6
;~  Const $WinHttpRequestOption_UrlEscapeDisable = 7
;~  Const $WinHttpRequestOption_UrlEscapeDisableQuery = 8
    With $oHTTP
        .Option($WinHttpRequestOption_EnableRedirects) = True
        .Open("GET", $url, False)
        If @error Then Return SetError(1)
        .Send()
        ConsoleWrite("++ GetHtml_Source() " & $url & @LF & @TAB & .Status & " - " & .StatusText & @LF)
    EndWith
    Switch $oHTTP.Status
        Case 200
            Return $oHTTP.ResponseText
        Case Else
            Return SetError(1, $oHTTP.Status, $oHTTP.Status & " - " & $oHTTP.StatusText)
    EndSwitch
EndFunc   ;==>GetHtml_Source
 
Avatar du membre
jbnh
Niveau 11
Niveau 11
Messages : 1932
Enregistré le : ven. 02 mai 2008 14:54
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Lire des données WEB

#4

Message par jbnh »

Salut,

Pour récupérer la source d'une page html, il y a beaucoup plus simple ! :
Dans l'UDF IE.au3 (qui se trouve dans le dossier include de ton dossier autoit) se trouve la fonction _IEBodyReadHTML qui lit tout le code html d'une page entre la balise <body> et </body>.

Une fois que tu as le contenu en variable, tu peux isoler l'info que tu veux grâce à par exemple stringbetween.

Bonne chance
Balise [..] devant votre requête en cours, [R] quand résolu | Pas de message concernant les bots !

Merci
Trash
Niveau 3
Niveau 3
Messages : 36
Enregistré le : mar. 27 janv. 2009 20:51
Status : Hors ligne

Re: [..] Lire des données WEB

#5

Message par Trash »

Iste a écrit :un truc du genre :

Code : Tout sélectionner

InetGet ("http://rc****.progession.html","temp",1) 
; Cela chargera la page HTML dans un fichier nomé "temp" a coté du script
$File = FileRead ("temp")
; la vriable $File devient une string de la page
$Pourcent = StringRegExp ( $File , "[0-9]{2}([0-9])?%",1)
; Bon, mon exprétion reguliere est surement fausse, mais le principe est la ^^'
MsgBox("","",$Pourcent[0])
; Maintenant la variable $Pourcent est une array contenant tout les xxx% de ta page web !
Faut revoir mon patern dans StringRegExp() car je doute qu'il fonctionne, mais sinon l'esprie est la !
Edit : penser aussi a un FileDelete() le fichier temp

Voilà la solution :D

(Pas besoin de ton string... Ma page ne contient que un nombre , après , je fait juste nbr & "%")
Répondre