Page 1 sur 1
[R] Lire des données WEB
Posté : ven. 17 avr. 2009 11:47
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
Re: [..] Lire des données WEB
Posté : ven. 17 avr. 2009 13:53
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
Re: [..] Lire des données WEB
Posté : ven. 17 avr. 2009 14:28
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
Re: [..] Lire des données WEB
Posté : ven. 17 avr. 2009 14:32
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
Re: [..] Lire des données WEB
Posté : ven. 17 avr. 2009 17:04
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
(Pas besoin de ton string... Ma page ne contient que un nombre , après , je fait juste nbr & "%")