[R] Comment récupérer un texte mis dans une balise span

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
fauve81
Niveau 3
Niveau 3
Messages : 34
Enregistré le : jeu. 24 mai 2012 16:24
Status : Hors ligne

[R] Comment récupérer un texte mis dans une balise span

#1

Message par fauve81 »

Bonjour à tous,
Je viens à vous pour un petit problème.
J'ai dans mon application ce texte : Nombre d'encours commerciaux trouvés : 10
et j'aimerais récupérer le nbre.
Dans le html j'ai ceci :

Code : Tout sélectionner

<span id="nbEncoursCom" class="bold enhanced">8</span>
, je n'ai pas de valeur pour le traiter avec une fonction style "getvalue" .
Quelqu'un aurait-il une idée.
Merci de m'aider.
Modifié en dernier par fauve81 le mer. 25 juil. 2012 10:06, modifié 1 fois.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Comment récupérer un texte mis dans une balise span

#2

Message par PandiPanda »

Bonjour,
Soit un regex, soit vous utilisez les fonction _IEXX() ^^

ceci par exemple ?

Code : Tout sélectionner

Local $str = '<span id="nbEncoursCom" class="bold enhanced">8</span>'&@CRLF&'<span id="nbEncoursCom" class="bold enhanced">10</span>'
MsgBox(0,'',StringRegExpReplace($str,'<span id="nbEncoursCom".*">(\d+?)<\/span>',"$1"))
ou ceci;

Code : Tout sélectionner

#Include <Array.au3>

Local $str = '<span id="nbEncoursCom" class="bold enhanced">8</span>'&@CRLF&"trolololol"&'<span id="nbEncoursCom" class="bold enhanced">10</span>'
Local $array = StringRegExp($str,'(?s)<span id="nbEncoursCom".*">(\d+)<\/span>.+?',3)
_ArrayDisplay($array)
et avec la fonction _IExxx()

Code : Tout sélectionner

#include <IE.au3>
Local $s_url = "votre url du site"
Local $oIE = _IECreate($s_url)
$oElements = _IETagNameGetCollection ($oIE, "SPAN")

For $oElement In $oElements
    MsgBox(0, "Element Info", "Tagname: " & $oElement.tagname & @CR & "innerText: " & $oElement.innerText)
Next
 
Modifié en dernier par PandiPanda le mar. 24 juil. 2012 11:07, modifié 1 fois.
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
fauve81
Niveau 3
Niveau 3
Messages : 34
Enregistré le : jeu. 24 mai 2012 16:24
Status : Hors ligne

Re: [..] Comment récupérer un texte mis dans une balise span

#3

Message par fauve81 »

Merci pour cette réponse ..est ce que ce code la pourrait marcher :

au départ je voulais faire ceci

Code : Tout sélectionner

 $oChamp  = _IEGetObjByName($oForm, "nbEncoursCom")
              _IEFormElementGetValue($oChamp,"10")
et maintenant avec votre réponse, j'ai trouvé ceci :

Code : Tout sélectionner

$oChamp  = _IEBodyReadHTML($oIE)
                _StringBetween(_IEBodyReadHTML($oIE), "<span id="nbEncoursCom" class="bold enhanced">",</span>")
mais il me met une erreur
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [..] Comment récupérer un texte mis dans une balise span

#4

Message par PandiPanda »

Essayez ceci? ^^

Code : Tout sélectionner

#include <IE.au3>
#Include <String.au3>
#Include <Array.au3>

Local $s_url = "votre url"
Local $oIE = _IECreate($s_url)
$oChamp  = _IEBodyReadHTML($oIE)
Local $array = _StringBetween(_IEBodyReadHTML($oIE),'<span id=nbEncoursCom class="bold enhanced">','</span>')
_ArrayDisplay($array)
 
Edit: vous avez fait une petite erreur au niveau des quotes (")
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
fauve81
Niveau 3
Niveau 3
Messages : 34
Enregistré le : jeu. 24 mai 2012 16:24
Status : Hors ligne

Re: [..] Comment récupérer un texte mis dans une balise span

#5

Message par fauve81 »

je vais regarder et tester..
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [..] Comment récupérer un texte mis dans une balise span

#6

Message par timmalos »

Le plus simple reste quand même

Code : Tout sélectionner

$oDiv = _IEGetObjById ($oIE, "nbEncoursCom")
ConsoleWrite(_IEPropertyGet($oDiv, "innertext") & @CRLF)
 
Pas besoin de lire tout le code source.
fauve81
Niveau 3
Niveau 3
Messages : 34
Enregistré le : jeu. 24 mai 2012 16:24
Status : Hors ligne

Re: [R] Comment récupérer un texte mis dans une balise span

#7

Message par fauve81 »

Merci PandiPanda pour ton aide..Je me suis appuyer sur tes codes et cela marche...
fauve81
Niveau 3
Niveau 3
Messages : 34
Enregistré le : jeu. 24 mai 2012 16:24
Status : Hors ligne

Re: [R] Comment récupérer un texte mis dans une balise span

#8

Message par fauve81 »

fauve81 a écrit :Bonjour à tous,
Je viens à vous pour un petit problème.
J'ai dans mon application ce texte : Nombre d'encours commerciaux trouvés : 10
et j'aimerais récupérer le nbre.
Dans le html j'ai ceci :

Code : Tout sélectionner

<span id="nbEncoursCom" class="bold enhanced">8</span>
, je n'ai pas de valeur pour le traiter avec une fonction style "getvalue" .
Quelqu'un aurait-il une idée.
Merci de m'aider.
Avatar du membre
PandiPanda
Membre émérite
Membre émérite
Messages : 656
Enregistré le : mar. 19 juil. 2011 14:03
Localisation : Bruxelles
Status : Hors ligne

Re: [R] Comment récupérer un texte mis dans une balise span

#9

Message par PandiPanda »

Après je ne connaissait pas la nature du code html, encore moins si ils ont été coder à "la norme" pour ca que lire le code source au complet étai plus "sûr".

Le problème avec "votre" méthode Timmalos, c'est qu'il faut prendre en compte que le code html ai bien été coder, et qu'on ne peux y avoir qu'un seule ID Unique !
La seule moralité qui tienne dans un monde cruel est la chance. Impartiale. Équitable. Vraie
Avatar du membre
timmalos
Niveau 11
Niveau 11
Messages : 1970
Enregistré le : dim. 18 mai 2008 15:16
Status : Hors ligne

Re: [R] Comment récupérer un texte mis dans une balise span

#10

Message par timmalos »

C'est de plus en plus le cas : Le JavaScript ne laisse pas le choix. Mais bien entendu, comme toujours une analyse du code source est nécessaire pour donner la meilleure solution, et ici on ne l'a pas ;)
Répondre