J'essaie depuis quelques jours d'extraire un élément d'une page html, un chiffre ou une phrase qu'importe, mais tous mes essais ont été vains. J'ai trouvé une page donnant quelques pistes: VOIR
Cependant, je n'ai pas réussi à faire marcher ces scripts ( l'un est censé afficher un msgbox avec un bout de contenu, mais rien ne se passe chez moi ), il doit peut être manquer des éléments évidents pour un connaisseur, mais pour un débutant...
J'espère que l'un de vous aura un peu de temps à me consacrer pour me rédiger un bout de script qui fonctionne.
Merci à tous
hilow a écrit :Salut. J'ai un peu de temps ce matin (c'est rare), alors un petit peu d'aide... Alors, il faut que tu y ailles progressivement. Si tu ne sais rien de la programmation ni de la structure d'une page web, il me semble que deux trois bases te seront essentielles. Alors, vite fait, simplifié et en prenant de gros raccourcis :
1) Une page web (au format HTML) est une suite d'éléments hiérarchisés (on appelle ça le DOM pour Document Object Model). Chaque élément est ce que tu verras appelé "balise" (tag en anglais) sur les sites qui te parlent HTML. La plupart du temps (mais pas toujours donc), une balise est en fait un bloc ayant cette forme : <balise-de-debut>du-contenu</balise-de-fin>. Aussi, chaque balise peut être personnalisée par des attributs, ce qui sur notre modèle donne quelque chose comme : <balise-de-debut attribut-couleur=la-couleur attribut-largeur=la-largeur ...>du-contenu</balise-de-fin>.
A noter un attribut "spécial" du nom de "style" qui peut contenir une somme considérable d'informations, mais c'est une autre histoire. Je ne complique pas inutilement.
2) La première des choses à faire lorsque tu veux analyser quelque chose à l'intérieur de ta page web est donc d'extraire l'élément qui t'intéresse. Dans la logique du DOM et vu d'AutoIt, un élément est un objet (le mot "élement" n'est donc pas à utiliser pour désigner n'importe quoi : du texte dans une page HTML, par exemple, n'est pas un objet, mais le tag qui le contient, oui). Il suffit donc que tu cherches dans la doc d'AutoIt la fonction qui va te permettre de récupérer l'élément que tu veux (regarde par exemple IE.au3 et la rubrique "IE Management" dans l'aide d'AutoIt si tu t'intéresses à Internet Explorer) Une fois que tu as ton élément, tu peux extraire la valeur d'un attribut particulier ou le contenu entre les deux tags de fin et début.
Exercice : afficher la largeur de l'élément de type DIV identifié en tant que "lavabo" dans cette page :
Tu peux, par exemple, aller voir la fonction _IEGetObjById, mais j'ai rien ditCode : Tout sélectionner
<html><body><div id="lavabo" width="400px">des trucs et des machins</div></body></html>
Voilà ! Pas de code pour que tu y réfléchisses. On gagne toujours du temps à ne pas sauter les étapes
Merci pour ta réponse hilow, je ne suis pas un novice en html, étant un webdesigner ( lavabo
J'ai essayé la fonction _IEGetObjById, mais celle-ci ouvre la page html avant de récupérer les données, j'aimerai que le procédé se fasse " en cachette " si toutefois c'est réalisable.
Que penses-tu de ce bout de code glané sur le site US:
Code : Tout sélectionner
Func _StringBetween2($s, $from, $to)
$x = StringInStr($s, $from) + StringLen($from)
$y = StringInStr(StringTrimLeft($s, $x), $to)
Return StringMid($s, $x, $y)
EndFunc
$THOTTBOT = _INetGetSource("Http://www.thottbot.com/")
$String = _StringBetween2($THOTTBOT, "<Title>", "</Title>")
MsgBox(1, "ThottBot.com", $String)



