import page web
#1
Aspirant XLPages

Inscription: 20/05/2010

Messages: 21

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 20-05-2010 10h04
Bonjour,
Tout juste inscrit et me voila à votre aide svp.
J'ai lu avec attention sur la méthode de la procédure pour récupérer les données du web sur le site france galop. Je voudrai aussi modifier cet application pour récupérer les données des chevaux sur chaque course et reunion du jour sur le nouveau site pmu. Comment faire, merci.
gmh.
Hors Ligne
Rapport   Haut 

Re: import page web
#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 : 20-05-2010 18h35
Bonjour gmh et bienvenue sur XLpages.com
Bonjour le Forum,

Si tu ne nous donnes pas plus de détails que ça, malgré de la bonne volonté, on ne va pas pouvoir faire grand chose pour t'aider... Pour rappel, ici, nous ne sommes pas majoritairement turfistes aguerris, en tout cas, pas à ma connaissance (bien que je ne sois pas contre).

On sera peut être capable d'automatiser ce que toi, tu es capable de faire à la main, mais surtout capable de décrire précisément.

Donc, un exposé clair et détaillé de ce que tu souhaites avec les URL qu'il convient de visiter serait déjà un bon commencement. Ensuite, un fichier en pièce jointe représentant le résultat souhaité serait aussi le 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: import page web
#3
Aspirant XLPages

Inscription: 20/05/2010

Messages: 21

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 21-05-2010 07h37
Bonjour,
Veuillez trouver ci-joint le fichier de la procédure de récupération de données depuis le site pmu qui fonctionnait bien auparavant. Mais il y eu refonte du site et depuis récupération impossible de donnéées.
Mon fichier avec ces codes VBA semble peut être un peu lourde, il y a peut être mieux de création de codes.
Cordialement.

Pièce jointe:
zip Courses2.zip   [ Taille: 35.96 Ko - Téléchargements: 697 ]
Hors Ligne
Rapport   Haut 

Re: import page web
#4
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 : 21-05-2010 19h10
Bonjour gmh, le Forum,

Avec "tous" ces renseignements fournis : test sur ton fichier de la requête "Reunion1"... pour moi la requête fonctionne toujours et rapatrie bien les données du jour dans la feuille de calcul.

Pour le reste, compte tenu des seules informations que tu consens à donner et ma passion pour les devinettes, je passe mon tour et laisse d'autres se pencher sur ton problème s'ils en ont envie.

Je te souhaite quand même d'obtenir ce que tu recherches,

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: import page web
#5
Aspirant XLPages

Inscription: 20/05/2010

Messages: 21

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 22-05-2010 17h02
Bonjour,

La requête "Reunion1" au fichier précédent fonctionne bien effectivement, mais ma difficulté viens ailleurs pour cela j’ai modifie le fichier ci-joint pour être plus clair.

Sur les autres requête et en particulier l’importation de données de chaque partant ( une reunion peut contenir 5 12 ou 18 partants) ne fonctionne plus sur le nouveau site www.pmu.fr . Je peu aussi aller sous Internet Explorer se servir du clic droit « Exporter vers Microsoft Excel » le détail d’un partant (voir un exemple au fichier foint à la feuille  «PtsR1C1 » mais le travail est plus fastidieux les codes VBA peu le faire. Mes connaissances en VBA ne me permet pas de trouver dans le code source de la page Internet les éléments à fournir pou le bon déroulement de mon fichier.

Cordialement
Pièce jointe:
xls Courses3.xls   [ Taille: 45.50 Ko - Téléchargements: 709 ]
Hors Ligne
Rapport   Haut 

Re: import page web
#6
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 : 22-05-2010 23h54
Bonsoir gmh, le Forum,

Bon, si j'ai bien compris la situation...

Tu trouveras en pièce jointe peut-être une solution à ton problème.

J'ai utilisé le code VBA suivant :

Option Explicit
'---------------------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 22/05/2010
' Sujet     : Récup données Web PMU
'---------------------------------------------------------------------------------------
Sub Traitement()
Dim vURL As String
Dim D As String, NumCourse As String
    With Sheets("Accueil")
        D = .Range("E2").Text
        NumCourse = .Range("E4").Text
    End With
    'URL de départ
    vURL = "http://www.pmu.fr/pmu/servlet/pmu.web ... etaillesServlet?dd=" _
            & D & "&idc=" & NumCourse & "&np=1&ppd=0"
    'Traiter
    RecupChevaux vURL
End Sub

Sub RecupChevaux(ByVal vURL As String)
Dim IE As InternetExplorer
Dim O As Object, OI As Object
Dim L As Long

    'Ouvre la page web dans IE de façon invisible
    Set IE = CreateObject("internetExplorer.Application")
    IE.Visible = False
    'RAZ de la feuille
    ActiveSheet.Cells.Delete
    Application.ScreenUpdating = False
    On Error Resume Next
    'Boucle sur l'ensemble des partants
    Do
        If vURL = "" Then
            'Bouton "Suivant" sur la page Web ?
            For Each OI In IE.Document.Links
                If OI.Title = "Suivant" Then
                    vURL = OI.href
                End If
            Next OI
        End If
        If vURL = "" Then Exit Do   'Sortir à la fin
        'Ouvrir la page Web
        IE.Navigate vURL
        Do Until IE.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        'Récup Nom du partant
        Set O = IE.Document.getElementsByTagName("H1")
        For Each OI In O
            L = L + 1
            With Cells(L, 1)
                .Value = OI.innerText
                .EntireRow.AutoFit
                .EntireColumn.AutoFit
                Application.StatusBar = .Value
            End With
        Next OI
        'Récup Détail du partant
        Set O = IE.Document.getElementsByTagName("P")
        For Each OI In O
            If OI.innerText <> " Retour à l'accueil de pmu.fr" Then
                L = L + 1
                With Cells(L, 1)
                    .Value = OI.innerText
                    .EntireRow.AutoFit
                    .EntireColumn.AutoFit
                End With
            End If
        Next OI
        L = L + 1
        vURL = ""
    Loop
    Application.ScreenUpdating = True
    'Fermer IE
    IE.Quit
    Application.StatusBar = False
    MsgBox "Traitement terminé !  ", vbInformation + vbOKOnly, "myDearFriend!  -  www.mdf-xlpages.com"
End Sub

Un élément est devenu indispensable par contre : il te faut indiquer non seulement la date de la course mais aussi son numéro ID avant de lancer le traitement. Tu retrouveras ce numéro ID dans les Url de la page web pointant sur la course ciblée.

Dans ton exemple, la date était 22052010 et le numéro ID de la course 13792171.

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

Cordialement,

PS: à l'avenir, si tu souhaites de l'aide, merci de faire un effort et de prendre la peine de donner des explications détaillées.

Autre chose STP : merci de ne pas faire de copier-coller de tes posts depuis Word. Word embarque un grand nombre de balises html invisibles dans ton post, ça alourdit inutilement la base de données du site d'une part et ça peut aussi perturber fortement la mise en forme des pages du forum d'autre part (pour info, j'ai dû intervenir dans la base de données du site pour épurer ton dernier post de ces balises malvenues).


Pièce jointe:
zip PourGmh.zip   [ Taille: 21.78 Ko - Téléchargements: 601 ]

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: import page web
#7
Aspirant XLPages

Inscription: 20/05/2010

Messages: 21

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 24-05-2010 13h28
Bonjour,
Merci. J'ai plus ou moins le résultat.
J'aurai voulu plus de détails dans l'importation des données.
Toujours avec l'exemple en date du 22052010 j'ai modifier le fichier gmh est il possible d'avoir les données sur plusieurs colonnes. La couleur du fond n'est pas à prendre en compte c'est juste pour être plus clair.
Codialement.
Pièce jointe:
xls Gmh.xls   [ Taille: 26.00 Ko - Téléchargements: 666 ]
Hors Ligne
Rapport   Haut 

Re: import page web
#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 : 24-05-2010 23h20
Bonsoir gmh, le Forum,

Contrairement à l'exemple fourni précédemment, tu souhaites finalement récupérer l'ensemble des données de la page Web et non plus seulement les données d'entête  (et si tu nous disais tout la prochaine fois, ça ne serait pas plus simple ?)

Dans la nouvelle pièce jointe, j'ai donc repris la totalité de la procédure VBA et repars donc avec le code suivant :
Option Explicit
'---------------------------------------------------------------------------------------
' Auteur    : Didier FOURGEOT (myDearFriend!)  -  www.mdf-xlpages.com
' Date      : 24/05/2010
' Sujet     : Récup données Web PMU
'---------------------------------------------------------------------------------------
Sub Traitement()
Dim vURL As String
Dim D As String, NumCourse As String
    With Sheets("Accueil")
        D = .Range("E2").Text
        NumCourse = .Range("E4").Text
    End With
    'URL de départ
    vURL = "http://www.pmu.fr/pmu/servlet/pmu.web ... etaillesServlet?dd=" _
            & D & "&idc=" & NumCourse & "&np=1&ppd=0"
    'Traiter
    RecupChevaux vURL
End Sub

Sub RecupChevaux(ByVal vURL As String)
Dim IE As InternetExplorer
Dim O As Object, OI As Object, OIS As Object
Dim L As Long

    'Ouvre la page web dans IE de façon invisible
    Set IE = CreateObject("internetExplorer.Application")
    IE.Visible = False
    'RAZ de la feuille
    ActiveSheet.Cells.Delete
   
    Application.ScreenUpdating = False
    On Error Resume Next
    'Boucle sur l'ensemble des partants
    Do
        If vURL = "" Then
            'Bouton "Suivant" sur la page Web ?
            For Each OI In IE.Document.Links
                If OI.Title = "Suivant" Then
                    vURL = OI.href
                End If
            Next OI
        End If
        If vURL = "" Then Exit Do   'Sortir à la fin
        'Ouvrir la page Web
        IE.Navigate vURL
        Do Until IE.ReadyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        'Détermine première ligne libre
        L = Cells(Rows.Count, 1).End(xlUp).Row + 3
        'Récup Nom du partant
        Set O = IE.Document.getElementsByTagName("H1")
        For Each OI In O
            L = L + 1
            With Cells(L, 1)
                .Value = OI.innerText
                .Font.Bold = True
                Application.StatusBar = .Value
            End With
        Next OI
        'Récup Détail du partant
        Set O = IE.Document.getElementsByTagName("P")
        For Each OI In O
            If OI.innerText <> " Retour à l'accueil de pmu.fr" Then
                Set OIS = OI.getElementsByTagName("span")
                L = L + 1
                With Cells(L, 1)
                    .Value = OIS.Item(0).innerText
                End With
                With Cells(L, 2)
                    .Value = OIS.Item(1).innerText
                End With
            End If
        Next OI
        RecupPlusDetails Cells(L + 2, 1), vURL
        vURL = ""
        If L > 150 Then Exit Do
    Loop
    Columns(1).AutoFit
    ActiveSheet.UsedRange.HorizontalAlignment = xlLeft
    Application.ScreenUpdating = True
    'Fermer IE
    IE.Quit
    Application.StatusBar = False
    MsgBox "Traitement terminé !  ", vbInformation + vbOKOnly, "myDearFriend!  -  www.mdf-xlpages.com"
End Sub

Sub RecupPlusDetails(R As Range, vURL As String)
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & vURL, Destination:=R)
        .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 = xlSpecifiedTables
        .WebTables = "1"
        .WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
        .Delete
    End With
End Sub
Evidemment, le traitement devient forcément plus long et il te faudra patienter quelques minutes pour obtenir le résultat escompté (chez moi, environ 3 minutes pour récupérer les données des 17 chevaux de la course donnée en exemple).

Par ailleurs, pour des raisons évidentes de test, j'ai dû supprimer la formule que tu avais mis en cellule E2 de ta feuille "Accueil".

En espérant que ça te convienne.

Cordialement,




Pièce jointe:
zip mDF_PMU.zip   [ Taille: 23.77 Ko - Téléchargements: 766 ]

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: import page web
#9
Aspirant XLPages

Inscription: 20/05/2010

Messages: 21

Système d'exploitation:
PC
Version Excel utilisée:
2003,2007
Posté le : 25-05-2010 07h12
Bonjour,
Autant pour moi,et je suis désolé mais dans la rapidité lors de la commande copie collée depuis le site j'ai omis de faire la sélection jusqu'en bas de page.
Je n'ai pas encore testé le fichier je le ferai en fin de journée,mais cela semble se que je recherche.
Merci pour l'aide.
Cordialement
gmh

Hors Ligne
Rapport   Haut 

Re: import page web
#10
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 : 25-05-2010 21h47
Bonsoir gmh,

Ok, j'espère que c'est conforme à ce que tu attends.

Et si c'est effectivement le cas, merci de mettre en pratique ce qui est inscrit au bas de ma signature.

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 


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