Page 1 sur 1
[R] Selection de texte sous IE
Posté : dim. 22 mai 2011 23:41
par fouille
Bonjour,
Je réalise un script avec AutoIt dans lequel je voudrais copier du texte. Ca se passe sur cette page
http://www.charazay.com/index.php?act=match&id=14752978 dans la zone sous le dessin de terrain.
Si je fais afficher le code source on peut voir que le texte est encadré par un tas de balises (<strong>, <div>, <span>,...)! Je ne sais pas comment récupérer juste ce texte.
J'ai fait des essais avec _IEBodyReadText mais je récupère tout le texte de la page et quand je veux faire un send dans notepad ça écrit ligne par ligne et c'est plutôt long!
Mon idée serait de sélectionner (surligner en bleu) le texte qui m'intéresse et de simuler un ctrl+C puis de simuler un ctrl+V dans Notepad... Mais pour l'instant je bloque!
Quelqu'un aurait une idée?
Merci d'avance
Re: [..] Selection de texte sous IE
Posté : dim. 22 mai 2011 23:55
par Zippo
Utilise :
1)_INetGetSource
2)_StringBetween
Re: [..] Selection de texte sous IE
Posté : lun. 23 mai 2011 00:23
par fouille
Zippo a écrit :Utilise :
1)_INetGetSource
2)_StringBetween
Pas sûr que ce soit ce que je cherche... Ou alors j'ai pas bien compris!
Avec ça, je pourrai envoyer ma string dans notepad sans que ça écrive ligne par ligne?
Merci pour ta réponse en tout cas!
Re: [..] Selection de texte sous IE
Posté : lun. 23 mai 2011 00:55
par Zippo
Si je comprends bien tu veux allez chercher des informations sur la page CHARAZAY et les mettrent sous notepad ou un fichier de lecture.
Petit exemple pour récuprer
91,Les cloportes de Nashville,66,team ardeche
Code : Tout sélectionner
#include <inet.au3>
#include <array.au3>
#include <string.au3>
Local $sCodeSource
$slien = "http://www.charazay.com/index.php?act=match&id=14752978"
$sCodeSource = _INetGetSource($slien);Recupere code source de la page
$sRecuperePtsJoueur1 = _StringBetween($sCodeSource,'<p id="homePoints" class="bigPoints center">','</p>');Recupere les pts du joueur1 grace au balise de la page html
$sRecuperePtsJoueur2 = _StringBetween($sCodeSource,'<p id="awayPoints" class="bigPoints center">','</p>');Recupere les pts du joueur2 grace au balise de la page html
$sRecuperePseudoJoueurs = _StringBetween($sCodeSource,'<p class="teamName center">','</p>');Recupere les deux pseudo
$hfileOpen = FileOpen("InfoPartie.txt", 1);Créer/ouvre un ficher TXT
FileWrite($hfileOpen,$sRecuperePseudoJoueurs[0] & " avec " & $sRecuperePtsJoueur1[0] & @CRLF & _;Ecrie les info...
$sRecuperePseudoJoueurs[1] & " avec " & $sRecuperePtsJoueur2[0] );Et la encore ...
FileClose($hfileOpen);Ferme le fichier
Voilà la petite démonstration, utilisent ces fonction pour n'importe quel balise. Et se script marche pour toutes les matchs ..
Et si tu tiens vraiment à ton notepad, rajoute ceci :
Code : Tout sélectionner
ShellExecute("notepad.exe",@ScriptDir & "\" & "InfoPartie.txt")
Voili Voilou ! En espérant t'avoir aidé ^^
Re: [..] Selection de texte sous IE
Posté : lun. 23 mai 2011 09:09
par sksbir
@fouille : sur ton lien, dans la zone sous le dessin du terrain, il n'y a plus rien...
@zippo : intéressant ton analyse, et ça présente l'avantage de pouvoir travailler en tache de fond

. Par contre, tu récupères la page en tant que source, et du coup, t'es obligé de l'analyser.
Voici une solution qui exploite la page en tant qu'objet, à l'aide de IE.au3 :
Code : Tout sélectionner
#include <IE.au3>
$OIE=_IECreate("http://www.charazay.com/index.php?act=match&id=14752978")
$TEST=_IEGetObjById($OIE,"pagetitle")
MsgBox(0,"test",$TEST.innertext)
Re: [..] Selection de texte sous IE
Posté : lun. 23 mai 2011 21:16
par fouille
sksbir a écrit :@fouille : sur ton lien, dans la zone sous le dessin du terrain, il n'y a plus rien...
Ouais le site connait quelques soucis ces derniers jours...
Merci pour vos solutions, je vais tester tout ça.
Mais sinon, j'ai trouvé une autre solution tout simple (pas super jolie, mais qui marche ^^)
Send("^{a}")
Send("^{c}")
puis
Send("^{v}") dans un fichier texte!
Il reste plus qu'à traiter un peu le texte et c'est dans la poche!
Encore merci pour les réponses!!
Re: [..] Selection de texte sous IE
Posté : lun. 23 mai 2011 21:22
par Zippo
Ta technique n'est pas fiable ...
Re: [..] Selection de texte sous IE
Posté : mar. 24 mai 2011 00:12
par fouille
Zippo a écrit :Ta technique n'est pas fiable ...
Pourquoi? Pas "propre" ça je suis d'accord, mais pourquoi pas fiable?
Re: [..] Selection de texte sous IE
Posté : mar. 24 mai 2011 00:35
par Zippo
Bah ...
n#1)Il faut que la fenêtre soit sélectionné.
n#2)Il ne faut pas qu'un pop-up apparaissve (reviens un peu au n#1)
n#3)Il ne faut pas qu'il active un autre onglet en même temps.
Etc ...
Lis plutôt le code source avec l'exemple que je t'ai donné, ou alors celui de Sksbir.
Ces deux techniques sont fiable à 99.99% sauf si tu n'a pas internet ...

ou alors le webmaster a changé les balises ^^
Re: [..] Selection de texte sous IE
Posté : mar. 24 mai 2011 00:53
par Yarillo
Pour avoir utilisé
Supermacro suffisamment longtemps je peux assurer moi aussi que c'est pas fiable.
Re: [..] Selection de texte sous IE
Posté : mar. 24 mai 2011 14:10
par fouille
Zippo a écrit :Bah ...
n#1)Il faut que la fenêtre soit sélectionné.
n#2)Il ne faut pas qu'un pop-up apparaissve (reviens un peu au n#1)
n#3)Il ne faut pas qu'il active un autre onglet en même temps.
Etc ...
Lis plutôt le code source avec l'exemple que je t'ai donné, ou alors celui de Sksbir.
Ces deux techniques sont fiable à 99.99% sauf si tu n'a pas internet ...

ou alors le webmaster a changé les balises ^^
OK je vois ce que tu veux dire... Bon après pour l'utilisation que je vais en avoir ça pourrait suffire, mais je vais tester vos techniques (pas eu le temps hier soir, mais je tenterai le coup...)
Merci encore
Re: [..] Selection de texte sous IE
Posté : mer. 25 mai 2011 00:07
par fouille
sksbir a écrit :@fouille : sur ton lien, dans la zone sous le dessin du terrain, il n'y a plus rien...
@zippo : intéressant ton analyse, et ça présente l'avantage de pouvoir travailler en tache de fond

. Par contre, tu récupères la page en tant que source, et du coup, t'es obligé de l'analyser.
Voici une solution qui exploite la page en tant qu'objet, à l'aide de IE.au3 :
Code : Tout sélectionner
#include <IE.au3>
$OIE=_IECreate("http://www.charazay.com/index.php?act=match&id=14752978")
$TEST=_IEGetObjById($OIE,"pagetitle")
MsgBox(0,"test",$TEST.innertext)
Cool, ce code est tout simple et marche parfaitement pour ce que je veux faire

Merci beaucoup!
Merci aussi à Zippo, j'ai pompé sur ton exemple pour l'écriture dans les fichiers (ça m'a évité d'éplucher la doc

)
Par contre j'ai pas encore pu valider ta méthode à cause du site qui n'affiche pas le texte qui m'intéresse 9 fois sur 10 en ce moment... Mais bon il n'y a pas de raison que ça ne marche pas!
Du coup problème résolu (c'est à moi de changer le titre du sujet?)! Merci à tous encore une fois

Re: [..] Selection de texte sous IE
Posté : mer. 25 mai 2011 07:25
par sksbir
fouille a écrit :
Du coup problème résolu (c'est à moi de changer le titre du sujet?)! Merci à tous encore une fois

Oui, c'est à toi de mettre le titre qui va bien.
