| ||||||||
Petit astucien | Bonjour à tous, | |||||||
Publicité | ||||||||
| ||||||||
Astucien | Bonsoir, Pour automatiser tout dépend comment tu récupères les infos, est-ce que c'est en piochant ces infos manuellement d'une page web (par copier/coller) ou est-ce en téléchargeant un fichier qui contient les infos (texte, csv ...). Dans le dernier cas, çà serait plus facile à faire. Pour t'aider en vba, il est possible avant de commencer tes manips. sous excel, de demander à enregistrer dans une macro. Tu fais ensuite toutes tes manips. et à la fin arrêter l'enregistrement dans la macro. Toutes les commandes effectuées seront alors enregistrées en vba. Avec un peu de connaissances il faut alors reprendre le code vba généré et bidouiller pour enlever les choses superflues ou le paramétrer suivant tes besoins.
| |||||||
Petit astucien | Bonsoir titus et merci pour ta réponse rapide, Pour le moment, je fais un copier coller et ufff c'est très très long. Que veux tu dire par télécharger un fichier qui contient les infos?Si je comprends bien, il faut que j'utilise une macro pour chaque page ou l'information finale se trouve? Sur le site internet en question (geny.com), j'ai plusieurs liens à ouvrir avant d'arriver sur la course en question et bien sur, des courses, il y en a tous les jours...donc à chaque fois je change de date et je recommence...une macro est -elle possible en utilisant une "plage de date"? Je débute en vba mais petit à petit j'espère m'améliorer, en tout cas je prends toutes les infos possibles lol merci encore pour ton aide
| |||||||
Astucien | Re, Je ne connais pas ce site mais je pensais (naivement) qu'ils fourniraient peut-être un fichier à télécharger avec les infos que tu souhaitais mais visiblement çà n'est pas le cas. Pour automatiser, il faudrait que la page se présente toujours de la même manière et que tu cliques à peu près aux mêmes endroits mais çà ne semble pas le cas (en fonction de certaines courses) donc je ne pense pas que cela soit faisable facilement à moins de repérer dans la page du texte (par le biais du source html) qui te permette d'isoler les infos que tu souhaites. En vba, il est possible de lancer Internet Explorer, par exemple, se connecter à un site et d'extraire des infos dans la page visitée (comme des urls vers d'autres pages) mais après comment repérer ces infos dans cette page et surtout que ce soit toujours les mêmes pour que tu puisses automatiser ? C'est pour le résultat des courses ou pour miser ? Un exemple : http://www.informit.com/articles/article.aspx?p=1170490&seqNum=7
Modifié par Titus68 le 21/04/2015 00:09 | |||||||
Petit astucien | Bonsoir titus, Désolé de ne pas avoir répondu plus vite, des petits problèmes de pc! Merci en tout cas de ton soutien car je ne me sens un peu perdu face à ce problème lol et pour répondre à ta question: J'ai surtout besoin d'une information précise: le numéro du cheval qui est le plus riche dans chaque course ex dans ce lien pour une course du jour: http://www.geny.com/partants-pmu/2015-04-22-beaumont-de-lomagne-pmu-grand-national-du-trot-paris-turf_c706498
Dans cette course, le cheval le plus riche est le n°17 (colonne des gains). Dans les courses de trot , le cheval le plus riche est celui qui à le plus gros numéro; sauf lorsque le départ est à l'autostart. ex http://www.geny.com/partants-pmu/2015-04-22-beaumont-de-lomagne-pmu-prix-de-bordeaux_c706499
Dans le deuxième exemple, il s'agit du numéro 6 le plus riche... Mon but étant dans un premier temps du constituer une base de données donc d'extraire ces infos pour les courses passées...de trot uniquement.
si tu as des idées... merci encore
| |||||||
Astucien | Juandepedro, Je ne pense pas que cela va être si facile, je vois 2 idées. Le principe est de récupérer le source html des pages web en texte et d'analyser le contenu du texte de chaque page. 1/ en partant de la liste http://www.geny.com/reunions-courses-pmu, récupérer le source html de la page avec la méthode IE indiqué hier puis faire une boucle en vba qui lit le contenu de cette page et y récupérer tous les liens de la page (href="...") qui contiennent "partants/stats/prono" et les stocker dans une table, exemple : <aclass="btnQuinte" href="/partants-pmu/2015-04-22-beaumont-de-lomagne-pmu-grand-national-du-trot-paris-turf_c706498">
partants/stats/pronoa>li>
Bidouiller en vba pour ne garder que ce qu'il y a entre href=" et "> pour n'avoir que le lien
Pour chacun de ces liens lire la page html (source), par la méthode IE, y repérer chaque texte <tr class="fond_technique_alt"> (çà semble correspondre à 1 cheval à chaque fois) puis compter les < td >, le 2ème < td > concerne le nom du cheval, le 8ème < td > son gain.
Par contre avec cette méthode comment sait-on que la course est une course de trot ?
2/ en partant de la liste de tous les chevaux :
http://www.geny.com/cheval récupérer le source de la page, puis dans cette page, à chaque fois qu'on tombe sur <a onClick="popUp(this.href, 'perf', 'cheval'); il y a un lien qui mène à la fiche du cheval, récupérer chaque lien et le nom du cheval, le stocker dans une table.
Faire une boucle qui lit toutes les pages (liens) à partir de cette table, analyser le source et repérer & euro; , juste avant il y a le gain (exemple <div class="yui-u"> 10 570 & euro;div> ).
C'est pas si évident à faire mais c'est possible.
Pour mieux comprendre, aller sur une page sous IE par exemple et afficher le source html de la page, tu devrais retrouver des infos indiquées ci-dessus.
J'ai essayé de voir vite fait s'il n'y avait pas un autre site qui proposerait les infos que tu veux à télécharger dans un fichier csv par exemple mais j'ai pas trouvé, là çà serait plus simple à faire.
Modifié par Titus68 le 22/04/2015 23:57 | |||||||
Petit astucien |
J'ai recherché également si sur un autre site l'info était plus facilement disponible mais hélas, je n'ai rien trouvé non plus. Et là j'avoue que çà dépasse mes faibles connaissances en macro... Pour savoir si les courses sont des courses de trot, on a l'info en haut en dessous de l'horaire de départ dans les caractéristiques de la course: en l’occurrence il s'agit d'une course de trot monté. http://www.geny.com/partants-pmu/2015-04-23-beaumont-de-lomagne-pmu-prix-roxane-griff_c706881
on peut également avoir de l'attelé. Donc pour le trot, c'est soit "monté"soit "attelé". Si c'est marqué "plat" ou "obstacle" c'est du galop... çà m'a l'air super compliqué d'extraire une donnée, surtout que je ne vois pas trop comment excel pourrait gérer çà pour plusieurs dates... je vais continuer à chercher si un téléchargement n'est pas possible sur un autre site...
| |||||||
Astucien | Cà doit être faisable mais il faut effectivement connaitre un peu la programmation vba. Je pense que la partie la plus contraignante c'est d'isoler les informations dans les pages html, je veux dire qu'entre ce qu'on voit affiché dans le navigateur et ce que contient la page html codée il y a effectivement beaucoup d'informations à ignorer (le css, les balises html) mais en y allant petit à petit ... J'ai déjà fait truc un petit comme çà (connexion à un site, analyse de la page html), je vais voir si je peux mettre la main sur le code vba au moins pour avoir un départ, après je prends 10% des gains
Modifié par Titus68 le 23/04/2015 23:43 | |||||||
Astucien | Un exemple pour récupérer la liste des courses à partir de la page : http://www.geny.com/reunions-courses-pmu http://cjoint.com/?EDyogmnuEJ7 C'est un fichier vbs (c'est pareil que le vba), il suffit de double-cliquer sur courses.vbs et d'attendre une vingtaine de secondes le message de fin. Pour voir le code du vbs, installer NotePad++ ou clic droit sur le fichier vbs et choisir dans la liste modifié. Avec NotePad++ c'est plus clair car les commentaires sont affichés en vert. Si le script a fonctionné il y a un fichier 'liste des courses.txt' qui sera créé. Après il faudrait faire la même chose mais en prenant chaque url qui concerne une course. | |||||||
Petit astucien | super le fichier, çà fonctionne impecc, je vais essayer de me baser sur çà pour continuer, c'est pas gagné lol mais je vais essayer...
| |||||||
Astucien | Sinon pour plus de facilité, créer un second fichier : set objFileTrace=objfso.createtextfile("trace.txt",true) puis y écrire le innerhtml : objFileTrace.writeline IE.body.innerhtml puis fermer le fichier : objFileTrace.close Dans le fichier trace.txt il y aura tout le source html de la page accédée. Repérer dans ce fichier des mot-clés qui permettent d'isoler les infos (gain, trot, ...) de manière à pouvoir écrire le code vba plus facilement.
Modifié par Titus68 le 25/04/2015 11:18 | |||||||
Astucien | juandepedro, Je t'ai mis quelques précisions pour avancer, dans un message privé ... Pour les résultats des courses à un date donnée, peux-tu me préciser sur quoi il faut cliquer ?
Modifié par Titus68 le 25/04/2015 12:43 | |||||||
Astucien | ||||||||
|
Les bons plans du moment PC Astuces | Tous les Bons Plans | ||||||||||||||||||
|