Récupération tableau d'une page HTML

stt_stt

XLDnaute Nouveau
Bonjour,

Je souhaiterais pouvoir récuperer chaque colonne du fichier joint dans une feuille EXCEL ainsi que le lien de chaque "Driver Name".
J'arrive à me connecter et à ouvrir la page mais ensuite je ne sais pas du tout comment programmer la récupération de ces données.

Si quelqu'un a une idée, je suis preneur à 150% :)

Merci par avance
 

Pièces jointes

  • AvailDrivers.zip
    6.5 KB · Affichages: 45

JCGL

XLDnaute Barbatruc
Re : Récupération tableau d'une page HTML

Bonjour à tous,

peux-tu essayer avec Données / Données Externe / Nouvelle requête sur le Web.

Mettre l'adresse du site dans la barre en haut et cocher le cadre qui convient (ne pas oublier dans Options de cocher HTML pour conserver les liens)

Ici avec ta page HTML enregistrée :

01302011200313.png

A+ à tous
 

stt_stt

XLDnaute Nouveau
Re : Récupération tableau d'une page HTML

J'ai peut-être homis quelque chose, c'est que je voulais le faire par macro car je vais avoir plusieurs pages comme celle.
J'ai donc fait la macro qui a l'air de fonctionner.
Par contre, je ne peux pas récupérer le lien de chaque pilote qui me donnerait les caractéristiques de chacun.
Ce n'est vraiment pas simple du tout mon affaire

Merci pour ta réponse
Stephane
 
Dernière édition:

stt_stt

XLDnaute Nouveau
Re : Récupération tableau d'une page HTML

Je viens d'essayer sur le même site mais avec un page pour laquelle j'ai besoin d'être connecté par login et pwd.
Cela ne fonctionne pas du moins les données récupérées ne sont pas utilisables.
J'ai la macro qui me loggue en automatique mais l'utilisation de ''Nouvelle requête sur le web'' semble ne pas en tenir compte.

voilà la macro pour "Nouvelle requete sur le web" telle qu'elle est actuellement:
Code:
With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.gpro.net/gb/AvailDrivers.asp", Destination:=Range("A1"))
        .Name = "AvailDrivers"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "3"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
 

JCGL

XLDnaute Barbatruc
Re : Récupération tableau d'une page HTML

Bonjour à tous,

Peux-tu essayer ceci après avoir renseigné le nom d'utilisateur et le mot de passe :

VB:
Option Explicit

Sub GPRO()

    Dim IE As Object    'InternetExplorer
    Dim password, userid, OK As Object    'IHTMLElement
    Dim MaPageHtml As Object    'HTMLDocument

    On Error Resume Next
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.navigate ("http://www.gpro.net/gb/AvailDrivers.asp")
    Do Until IE.ReadyState = 4
        DoEvents
    Loop
    Set MaPageHtml = IE.Document
    'Numéro d'abonné
    Set userid = MaPageHtml.getElementsByName("TextboxUser").Item
    userid.Value = "Nom_Utilisateur"
    'mot de passe
    Set password = MaPageHtml.getElementsByName("TextBoxMdp").Item
    password.Value = "Mot_de_Passe"

    'Le Bouton de connexion
    Set OK = MaPageHtml.getElementsByName("ImageButtonValiderInconnu").Item
    OK.Click
End Sub

A+ à tous
 

stt_stt

XLDnaute Nouveau
Re : Récupération tableau d'une page HTML

Le lien pour la page du login et pwd est Grand Prix Racing Online

Voilà la macro que j'utilise jusqu'à présent :

Code:
sUrl = "http://www.gpro.net"
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True 'Mettre à False pour ne pas afficher la fenêtre.
    IE.Navigate sUrl
 
    Do Until IE.ReadyState = 4
     DoEvents
    Loop
        
    IE.Document.all("textlogin").Value = login
    IE.Document.all("textPassword").Value = password

    IE.Document.all("Logonfake").Click

    Do Until IE.ReadyState = 4
      DoEvents
    Loop
   
    IE.Navigate "http://www.gpro.net/gb/AvailDrivers.asp?Page=1&MinOA=&MaxOA=&Sort="
    Do Until IE.ReadyState = 4
      DoEvents
    Loop
    Set IE = Nothing

Ensuite la page qui nécessite le login est celle là par exemple : Esteban Zunino - Driver profile - Grand Prix Racing Online

Merci beaucoup pour ton aide. Je pense que tu n'es pas loin de la solution.
 
Dernière édition:

stt_stt

XLDnaute Nouveau
Re : Récupération tableau d'une page HTML

Je viens d'adapter ta macro à ce que je souhaite mais cela ne fonctionne pas.

voilà la macro complète

Code:
Sub Macro3()
'
' Macro3 Macro
' Macro enregistrée le 30/01/2011 par stt
'

   Dim IE As Object    'InternetExplorer
   Dim password, userid, OK As Object    'IHTMLElement
   Dim MaPageHtml As Object    'HTMLDocument
   Dim login, pwd As String
 
    On Error Resume Next
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.Navigate ("http://www.gpro.net/gb/gpro.asp")
    Do Until IE.ReadyState = 4
        DoEvents
    Loop
    Set MaPageHtml = IE.Document
    'Numéro d'abonné
   Set userid = MaPageHtml.getElementsByName("textlogin").Item
    userid.Value = login
    'mot de passe
   Set password = MaPageHtml.getElementsByName("textPassword").Item
    password.Value = pwd

    'Le Bouton de connexion
   Set OK = MaPageHtml.getElementsByName("Logonfake").Item
    OK.Click

    Range("A1").Select
    With ActiveSheet.QueryTables.Add(Connection:= _
        "URL;http://www.gpro.net/gb/DriverProfile.asp?ID=280", Destination:=Range( _
        "A1"))
        .Name = "DriverProfile.asp?ID=10886_1"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlSpecifiedTables
        .WebFormatting = xlWebFormattingNone
        .WebTables = "4"
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
End Sub

Je me connecte sans souci, par contre ensuite il récupère les données comme s'il n'était pas connecté.
 

JCGL

XLDnaute Barbatruc
Re : Récupération tableau d'une page HTML

Bonjour à tous,

J'ai fait la démarche de m'inscrire sur le portail.
J'ai bien reçu la confirmation que les Admins confirmaient mon inscription.
Mais je ne suis pas allé plus loin... Impossible d'aller plus avant.
Désolé, je ne pourrais pas t'aider d'avantage

A+ à tous
 

klin89

XLDnaute Accro
Re : Récupération tableau d'une page HTML

Bonsoir stt_stt, JCGL

En remplaçant ceci :
Code:
'Le Bouton de connexion
   Set OK = MaPageHtml.getElementsByName("Logonfake").Item
    OK.Click
par cela
Code:
 'Le Bouton de connexion
     Set OK = MaPageHtml.forms(0)
     OK.submit
Et peut-être changer l'index !

Dans le lien ci-dessous, vois le paragraphe "Comment s'authentifier sur un site web via VBA"

FAQ MS-Excel

Klin89
 
Dernière édition:

Discussions similaires

Réponses
16
Affichages
598

Statistiques des forums

Discussions
312 684
Messages
2 090 916
Membres
104 696
dernier inscrit
BOUNIOL MARC