Recupération d'infos sur ParisTurf
#1
Débutant XLPages

Inscription: 02/02/2011

Messages: 5

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 02-02-2011 21h31

Bonsoir,

J'aimerais automatiser la récupération des infos sur ParisTurf.

Mais je ne maitrise pas vraiment le VBA et je ne sait pas comment l'on peut lire et récupérer les différents ID pour ouvrir les adresses ci dessous

Voici le chemin qui ouvre la page des réunions

http://www.paris-turf.com/pid1-paris- ... -pmh.html?date=2011-02-03

puis

http://www.paris-turf.com/reunion/pid ... urse.html?idcourse=764303

qui  ouvre le tableau des partants de la course du quinté

et

http://www.paris-turf.com/dossier-lay ... urse=764303&idLigne=1

qui ouvre l'historique des courses du 1er cheval de la course que je souhaite récupérer sur la Feuille 1 puis passer  à l'historique du 2ième cheval à coller sur la feuille 2 etc, etc.

En espérant avoir été clair, merci de votre aide


Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 02-02-2011 22h44
Bonsoir chpaca, bienvenue sur XLpages.com.

Arf, XLpages.com va finir par se spécialiser dans la récup de données Web pour Turfistes ! (Dites, va falloir penser à ma commission les gars, hein ? ).

Bon, à vrai dire, j'ai un boulot de dingue et je ne suis pas vraiment dispo actuellement... Cela dit, si personne n'est intervenu entre temps pour t'aider, je reviendrai sur ce fil dès que je peux pour me pencher sur ta question... (si tu as par hasard fait cette même demande ailleurs et obtiens une réponse qui te convienne, je te remercie toutefois de revenir ici nous en informer, STP).

Dans l'attente, je pense qu'il conviendrait que tu détailles un peu plus ta demande. Par ailleurs, tu parles de récupérer les "ID", c'est donc que tu n'es pas tout à fait novice en la matière... Si tu as déjà réalisé une approche de la question, je t'invite à joindre ton classeur ici pour une meilleur approche de ce que tu voudrais obtenir.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#3
Débutant XLPages

Inscription: 02/02/2011

Messages: 5

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 03-02-2011 18h54

Bonsoir,

Déjà , merci de cette première réponse rapide.

Non je n'ai pas fait cette demande ailleurs

Pour faire des macros, j'utilise juste "enregistrer une macro".J'ai déjà eu du mal à modifier ma macro effacer pour l'automatiser à toutes les feuilles, alors mais pour écrire une macro de A à Z c'est pas gagner. Si j'ai parlé d'ID c'est simplement qu' ils apparaissent dans les liens.

Ci-joint un fichier de ce que j'aimerais obtenir. En cliquant sur le bouton "données PT" il me place dans chaque feuilles C1, c2 …… l'historique de chaque cheval.

Très fastidieux par copier/ coller avec les aller-retour internet / excel

Merci de votre aide








Pièce jointe:
zip Develop_PTurf.zip   [ Taille: 74.22 Ko - Téléchargements: 922 ]
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#4
Régulier XLPages

Inscription: 06/09/2010

Messages: 58

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 05-02-2011 22h21
Bonsoir à tous et particulièrement à Didier,

je viens de regarder un peu la PJ que tu as joins à ta demande. Eh bé !!!!!!!!!!!!!!!!! ca va pas être simple, mais je pense que le maître de ce forum va tenter de t'aider.
Si j'ai bien compris tu veux récupérer pour chaque cheval prenant par à la course du tiercé les infos suivantes :
les dernières places,
les dernières allocations courues,
le nombre de courses courues dans sa carriere
le nombre de victoires
le nombre de places
le nombre de citations dans la liste type,
le nombre de points dans la Synthèse originale
et la cote probable indiquée dans paris turf

Cela fait beaucoup d'élements à récupérer et je pense que tu devrais détailler beaucoup plus en détails l'ensemble des paramètres, car quelqu'un qui ne connait ni les courses, ni le journal Paris turf va avoir bien du mal à comprendre ta demande, même si ici il y a des cracks au niveau VBA sans explications plus abouties je doute qu'ils arrivent a s'y retrouver.

Pour ma part je serais aussi très intéressé par la récupération de tous ces éléments auxquels tu pourrais ajouter la place dans le classement de Paris turf .

Pour ma part malgré mon très faible niveau en VBA, je vais essayer de voir si je peux programmer quelque chose pour récupérer une partie des éléments, mais ce qui va poser problème c'est de récupérer l'ID de la course qui varie chaque jour

Cordialement
JC
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 06-02-2011 22h18
Bonsoir chpaca, jc24, le Forum,

Oui, effectivement, je confirme ce que dis notre ami jc24 : pour comprendre ton classeur, il faut certainement être un fondu de Turf... Ce qui n'est pas vraiment mon cas, à vrai dire.

Cela dit, et pour répondre aux explications de ton premier post, tu trouveras ci-joint une interprétation de ce que j'ai compris.

J'ai utilisé le code suivant :

DANS LE MODULE DE CODE DE LA FEUILLE 1
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Application.Intersect(Target, Columns(2)) Is Nothing Then
        If Target.Value <> "" Then
            Cancel = True
            RecupListeChevaux Target.Offset(0, 1)
        End If
    End If
End Sub

DANS UN MODULE DE CODE STANDARD
Option Explicit
'--------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 06/02/2011
' Sujet     : Récup données Web Paris-Turf.com
'--------------------------------------------------------------------
Sub MAJlisteCourses()
Dim IE As InternetExplorer
Dim IEDoc As HTMLDocument
Dim IElien As HTMLLinkElement
Dim Col As New Collection
Dim T As String
Dim L As Long, VerifL As Long, Lign As Long
Const vURL As String = "http://www.paris-turf.com/"
    'TRAITEMENT
    Sheets(1).Range("B:C").ClearContents
    Application.ScreenUpdating = False
    'Crée une instance d'IE invisible
    Set IE = CreateObject("internetExplorer.Application")
    IE.Visible = False
    'Ouvre la page Web
    IE.Navigate vURL
    Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    'Récupère la liste de tous les ID intéressants (ID Courses sans doublon)
    Set IEDoc = IE.Document
    On Error Resume Next
    With Sheets(1)
        Lign = 5
        For L = 0 To IEDoc.Links.Length - 1
            Set IElien = IEDoc.Links(L)
            T = IElien
            If T Like "*course.html?idcourse=*" Then
                If Val(IElien.innerText) < 1 Then
                    VerifL = Col.Count
                    Col.Add IElien.innerText, IElien.innerText      'Sans doublon
                    If VerifL <> Col.Count Then
                        Lign = Lign + 1
                        .Cells(Lign, 2).Value = IElien.innerText      'Nom de la course
                        .Cells(Lign, 3).Value = CStr(Right(T, 6))     'ID de la course
                    End If
                End If
            End If
        Next L
    End With
    On Error GoTo 0
    IE.Quit
    Application.ScreenUpdating = True
    Beep
    MsgBox "Actualisation terminée !"
End Sub

Sub RecupListeChevaux(IDcourse As String)
Dim IE As InternetExplorer
Dim WbkCible As Workbook
Dim IEDoc As HTMLDocument
Dim IElien As HTMLLinkElement
Dim Col As New Collection
Dim vURL As String, T As String
Dim NbC As Long
    vURL = "http://www.paris-turf.com/reunion/pid ... ltats&idcourse=" & IDcourse
    'Crée le classeur de stats chevaux
    Workbooks.Add
    'TRAITEMENT
    'Crée une instance d'IE invisible
    Set IE = CreateObject("internetExplorer.Application")
    IE.Visible = False
    'Ouvre la page Web
    IE.Navigate vURL
    Do Until IE.readyState = READYSTATE_COMPLETE
        DoEvents
    Loop
    'Récupère la liste de tous les ID intéressants(ID Chevaux sans doublon)
    Set IEDoc = IE.Document
    T = IEDoc.DocumentElement.innerHTML
    IE.Quit
    On Error Resume Next
    NbC = InStr(1, T, "appelAjaxResume(this.id, 'CH',")
    Do While NbC > 0
        NbC = InStr(1, T, "appelAjaxResume(this.id, 'CH',")
        T = Mid(T, NbC + 30)
        If Val(T) > 0 Then Col.Add CStr(Val(T)), CStr(Val(T))
    Loop
    'Crée un onglet par cheval
    For NbC = 0 To Col.Count - 1
        RecupCheval IDcourse, Col(NbC), NbC
        DoEvents
        Application.StatusBar = "Traitement en cours > " & CStr(CInt(NbC * 100 / Col.Count)) & " %"
    Next NbC
    On Error GoTo 0
    Application.ScreenUpdating = True
    Application.StatusBar = False
    Beep
    MsgBox "Récupération terminée !"
End Sub

Sub RecupCheval(IDcourse As String, IDcheval As String, N As Long)
Dim R As Range
Dim vURL As String
    vURL = "http://www.paris-turf.com/dossier-lay ... torique_des_courses" _
            & "&idcheval=" & IDcheval & "&idcourse=" & IDcourse
    Worksheets.Add(After:=Sheets(Sheets.Count)).Name = "Ch " & CStr(N)
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & vURL, Destination:=Range("A1"))
        .Name = "LaRequete"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
        .Delete
    End With
End Sub

Le principe de fonctionnement est le suivant :
- Clic sur le bouton pour actualiser la liste des courses du jour (et récupération des ID correspondants)
- Double-clic sur un élément de la liste (course) pour obtenir les stats des chevaux dans un nouveau classeur.

En espérant que ça puisse te dépanner...

Cordialement,

Pièce jointe:
zip mDF_RecupWeb_ParisTurf.zip   [ Taille: 24.45 Ko - Téléchargements: 1322 ]

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#6
Régulier XLPages

Inscription: 06/09/2010

Messages: 58

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 07-02-2011 23h25
Bonsoir Didier, bonsoir le forum

J'ai télécharger l'application que tu as créé mais je me trouve confronter à un bug au niveau de :

Set IEDoc = IE.Document
    On Error Resume Next
    With Sheets(1)
        Lign = 5

avec le message suivant du débogeur "mécanisme de bibliothèque d'objets non géré"

pourtant par rapport a ce que tu m'avais déjà concocté je n'ai changé ni de systeme , ni de version d'internet explorer, j'avoue ne pas comprendre d'ou vient ce bug

Quelqu'un a t'il une idée ??

Merci par avance de vos réponses
Cordialement
JC
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#7
Régulier XLPages

Inscription: 06/09/2010

Messages: 58

Système d'exploitation:
PC
Version Excel utilisée:
2003
Posté le : 07-02-2011 23h48
Re bonsoir,

Ca y est j'ai trouvé la solution et je vous la donne si quelqu'un rencontre les mêmes difficultés que moi, en fait faut aller dans l'éditeur VBA (alt + f11), puis outil, puis références et là faut cocher (ref edit control). Et l'importation se fait sans souci, par contre si comme moi vous n'êtes pas abonné au site de Paris turf, inutile de chercher les données car elles sont remplacées par des *.

Bonne soirée a tous et merci Didier pour ce fabuleux boulot, une fois de plus, même si je ne pourrais l'utiliser.

Quand je vois avec quelle facilité tu réponds a nos interrogations et nos lacunes, je me dis que je donnerai beaucoup pour avoir le même niveau que toi

Cordialement
JC
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#8
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 08-02-2011 00h16
Bonsoir jc24,

Merci de ton retour d'info.

Cela dit, je reste assez surpris du problème que tu as rencontré, mais aussi (et surtout) de la solution apportée qui semble rétablir le bon fonctionnement au final.

En effet, le contrôle RefEdit est bien un contrôle activeX existant et il nécessite bien de cocher la référence de bibliothèque "Ref Edit Control" lorsqu'il est utilisé dans un classeur.

Par contre, ce que je ne m'explique pas : c'est que le classeur que j'ai fourni plus haut ne contient aucun contrôle RefEdit !
N'aurais-tu pas fait une fausse manipulation et inséré toi-même (à l'insu de ton plein gré lol ) un tel contrôle dans la feuille de calcul du classeur par hasard ?

En tout cas, merci de ton enthousiasme et des explications complémentaires que tu fournis. C'est toujours bienvenu.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#9
Débutant XLPages

Inscription: 02/02/2011

Messages: 5

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 09-02-2011 19h37
Super , c'est tout à fait ce que je souhaitais.

réponse rapide, efficace

Encore merci
Hors Ligne
Rapport   Haut 

Re: Recupération d'infos sur ParisTurf
#10
Débutant XLPages

Inscription: 07/06/2011

Messages: 1

Système d'exploitation:
PC
Version Excel utilisée:
2010
Posté le : 07-06-2011 10h04
Merci pour votre travail. J'avais une question sur ce fichier, comment rentrer l'identifiant et le mot de passe Paris Turf dans la macro pour pouvoir accéder aux données du site?


Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes