Page 1 sur 1
[R] Récupérer texte html d'un code source
Posté : lun. 28 sept. 2015 12:37
par Casiram
Bonjour à tous, je travaille sur un script qui (si j'y parvient

) permettra d'obtenir des statistiques chaque jour.
J'ai déjà réussi en grande parti grâce à votre forum à me logger et me diriger vers la page contenant les statistiques en fonction du jour etc, c'est ici que je sèche, voilà le code :
Code : Tout sélectionner
<tr class="line2">
<td class="caption">Nombre de pages vues
<a target="_blank" class="glossaryLinkBlack" href="*confidentiel*">*</a>
</td>
<td class="data">138 605</td>
</tr>
Pour cet exemple j'aimerais récupérer le nombre 138 605 dans une variable, le soucis est que la balise "<td class="data">" est présente plusieurs fois sur la page, j'ai essayé plusieurs choses mais le résultat que j'obtiens est toujours 0 ou 1 (ce qui est faux

)
Merci d'avance, bonne journée

Re: [..] Récupérer texte html d'un code source
Posté : lun. 28 sept. 2015 15:14
par jguinch
Est-ce qu'il te serait possible de poster l'ensemble de la source HTML ? Parce que là, on se rend pas compte que
<td class="data"> apparaît plusieurs fois

Re: [..] Récupérer texte html d'un code source
Posté : lun. 28 sept. 2015 16:19
par Casiram
En fait la donnée qui m’intéresse se trouve dans un tableau, la page html est celle d'un client et je ne peux donc pas montrer l'intégralité mais voilà cependant le code html du tableau :
► Afficher le texte
Code : Tout sélectionner
<table class="groupedData">
<tr>
<td>
<table class="whiteData">
<tr class="header">
<td colspan="2" class="header2">
Données Générales
</td>
</tr>
<tr class="line1">
<td class="caption">Hits
<a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>
</td>
<td class="data">1 332 933</td>
</tr>
<tr class="line2">
<td class="caption">Nombre de pages vues
<a target="_blank" class="XXX">*</a>
</td>
<td class="data">138 605</td>
</tr>
<tr class="line1">
<td class="caption">Volume
<a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>
</td>
<td class="data">127 759 494 960</td>
</tr>
<tr class="line2">
<td class="caption">Nombre de visites
<a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>
</td>
<td class="data">2 402</td>
</tr>
<tr class="line1">
<td class="caption">Nombre de visiteurs
<a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>
</td>
<td class="data">567</td>
</tr>
<tr class="line2">
<td class="caption">Nombre de visites par visiteur</td>
<td class="data">4,236</td>
</tr>
<tr class="line1">
<td class="caption">Durée moyenne des visites
<a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>
</td>
<td class="data">00:47:36 </td>
</tr>
<tr class="line2">
<td class="caption">Nombre de visites à une seule page </td>
<td class="data">1 607</td>
</tr>
</table>
</td>
</tr>
</table>
En espérant que ce soit utile

Re: [..] Récupérer texte html d'un code source
Posté : lun. 28 sept. 2015 21:32
par jguinch
Avec ça, ça devrait aller :
► Afficher le texte
Code : Tout sélectionner
$string = '<table class="groupedData">' & _
' <tr>' & _
' <td>' & _
' <table class="whiteData">' & _
' <tr class="header">' & _
' <td colspan="2" class="header2">' & _
' Données Générales' & _
' </td>' & _
' </tr>' & _
' <tr class="line1">' & _
' <td class="caption">Hits' & _
' <a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>' & _
' </td>' & _
' <td class="data">1 332 933</td>' & _
' </tr>' & _
' <tr class="line2">' & _
' <td class="caption">Nombre de pages vues' & _
' <a target="_blank" class="XXX">*</a>' & _
' </td>' & _
' <td class="data">138 605</td>' & _
' </tr>' & _
' <tr class="line1">' & _
' <td class="caption">Volume' & _
' <a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>' & _
' </td>' & _
' <td class="data">127 759 494 960</td>' & _
' </tr> ' & _
' <tr class="line2">' & _
' <td class="caption">Nombre de visites' & _
' <a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>' & _
' </td>' & _
' <td class="data">2 402</td>' & _
' </tr>' & _
' <tr class="line1">' & _
' <td class="caption">Nombre de visiteurs' & _
' <a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>' & _
' </td>' & _
' <td class="data">567</td>' & _
' </tr>' & _
' <tr class="line2">' & _
' <td class="caption">Nombre de visites par visiteur</td>' & _
' <td class="data">4,236</td>' & _
' </tr>' & _
' <tr class="line1">' & _
' <td class="caption">Durée moyenne des visites' & _
' <a target="_blank" class="glossaryLinkBlack" href="XXX">*</a>' & _
' </td>' & _
' <td class="data">00:47:36 </td>' & _
' </tr>' & _
' <tr class="line2">' & _
' <td class="caption">Nombre de visites à une seule page </td>' & _
' <td class="data">1 607</td>' & _
' </tr>' & _
' </table>' & _
' </td>' & _
' </tr>' & _
'</table>'
$val = StringRegExp($string, "(?s)Nombre de pages vues.+?<td[^>]+>([\d\h]+)</td>", 1)[0]
ConsoleWrite($val)
Re: [..] Récupérer texte html d'un code source
Posté : mar. 29 sept. 2015 09:46
par Casiram
Bonjour, merci beaucoup cela fonctionne, le soucis est que ce code me donne le résultat inscrit dans la variable $string, je cherche à obtenir ce nombre de pages vues en temps réel, est-il possible de lire ce résultat directement dans le code source de la page grâce à _IEDocReadHTML($oIE) par exemple ?
Merci d'avance

Re: [..] Récupérer texte html d'un code source
Posté : mar. 29 sept. 2015 10:45
par jguinch
@Casiram : bin oui, justement.
Re: [..] Récupérer texte html d'un code source
Posté : mar. 29 sept. 2015 11:02
par Casiram
C'est ce que j'avais essayé mais la valeur que l'on me retournait été toujours 0
J'ai réussi en utilisant les tableaux, voilà le code si ça peut en aider certain :
Code : Tout sélectionner
;récuperation de la table données (*id8)
$oTable = _IETableGetCollection($oIE, 8)
$aTableData = _IETableWriteToArray($oTable)
;récupération de la taille du tableau
$cols = UBound($aTableData)
$rows = UBound($aTableData, 2)
$dims = UBound($aTableData, 0)
;affichage de la valeur recherchée
MsgBox(0,"valeur recherchée",$aTableData[1][2])