> Tous les forums > Forum Bureautique
 Importer données web sur excel automatiquement
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
juandepedro
  Posté le 20/04/2015 @ 21:56 
Aller en bas de la page 
Petit astucien

Bonjour à tous,

Je suis débutant sur excel et je ne maîtrise pas trop vba. J'aimerais cependant importer des données d'un site de turf(geny) afin de créer ma base de données perso. Pour le moment, je fais çà manuellement, mais c'est terriblement long et une importation automatique me serait d'un grand secours!

Je souhaite pour être plus précis connaître une donnée bien précise; le numéro du cheval qui est le plus riche pour chaque course et par hippodrome sur une période donnée ex: (du 1 janvier au 31 décembre 2014).

Je ne sais pas si ma question est très compréhensible pour les "non-turfistes" mais j'espère que vous pourrez m'aider.

Un grand merci à tous

juan

Publicité
Titus68
 Posté le 20/04/2015 à 23:21 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

juandepedro
 Posté le 20/04/2015 à 23:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

Titus68
 Posté le 21/04/2015 à 00:04 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
juandepedro
 Posté le 22/04/2015 à 21:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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

Titus68
 Posté le 22/04/2015 à 23:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
juandepedro
 Posté le 23/04/2015 à 23:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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...

Titus68
 Posté le 23/04/2015 à 23:42 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Titus68
 Posté le 24/04/2015 à 13:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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.

Publicité
juandepedro
 Posté le 24/04/2015 à 15:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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...

Titus68
 Posté le 24/04/2015 à 20:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Titus68
 Posté le 25/04/2015 à 12:22 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
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
Titus68
 Posté le 25/04/2015 à 13:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

A partir de cette liste çà semble plus facile :

http://www.stats-quinte.com/archives-courses.html

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
Excel 2003 Importer des données de fichiers mht
Excel 2003 Importer donnees depuis PHP
Importer des données excel 2003 dans access 2003
importer des données excel sous word
MapPoint : impossible importer des données Excel
Importer données Excel en Word
importer données d'un tableau xml dans excel
importer données excel dans access
Importer données de Excel sur Outlook RESOLU
Coller des données brutes de mise en forme dans Excel/Word
Plus de sujets relatifs à Importer données web sur excel automatiquement
 > Tous les forums > Forum Bureautique