Macro pour connexion login/mdp + extraction données web

Bonjour!

Cette fois je viens à vous non pas pour du travail mais pour du loisir!

En effet je suis passionné de foot et de stats, et aimerais importer des données d'un site web sur lequel j'ai un compte pour traiter les différentes statistiques par le biais d'Excel.

Je souhaiterais importer en "feuil1" d'un classeur Excel, la page web : "https://footystats.org/tomorrow/" mais seulement après m'être connecté avec login et mot de passe sur "https://footystats.org/login".

En effet la page "https://footystats.org/tomorrow/" apparait avec plus de statistiques si on est connecté avec login et mot de passe.

J'ai examiné le code de la page html et il semblerait que "username" soit le champs pour le login et "password" le champs pour le mot de passe.

J'ai commencé quelque chose en m'inspirant de ce que j'ai pu trouver sur le net, mais je bloque...

Pour information je suis sur Excel 2016.

Sub Connexion()

'Dim ie As InternetExplorer

Dim IEdoc As Object

Dim DOCelement As Object

Set ie = CreateObject("InternetExplorer.application")

ie.Visible = True

ie.Navigate ("https://footystats.org/login")

' attente de fin de chargement

Do Until ie.ReadyState = 4

DoEvents

Loop

Set IEdoc = ie.Document

'password

Set Username = IEdoc.getelementsbyname("username").Item

Set Password = IEdoc.getelementsbyname("password").Item

UserId.Value = "xxxxxxx" :

Password.Value = "xxxxxxxx" :

Re-bonjour,

Par ailleurs en plus d'un bouton qui me connecte automatiquement à mon compte FootyStats, et importe la page, il faudrait que lors de l'importation les menus déroulants de certains championnats en bas de page qui par défaut sont masqués soient rendus visibles.

J'ignore s'il est possible de réaliser cette manipulation...

Bon je progresse petit à petit mais il y a de l'avancement.

J'arrive à me connecter automatiquement, mais je ne parviens pas à copier la page internet que je souhaite (https://footystats.org/tomorrow/) après connexion, sur une feuille du classeur.

Ce que j'obtiens et la page par défaut et non la page pour les identifiés.

Ci dessous mon code à ce jour.

Help me!

Sub Macro2()
'
' Macro2
'
Sheets("Feuil1").Cells.Clear
Dim i As SHDocVw.InternetExplorer
Set i = New InternetExplorer

i.Visible = True
i.navigate ("https://footystats.org/login")
Do While i.readyState <> READYSTATE_COMPLETE
Loop

Dim idoc As MSHTML.HTMLDocument
Set idoc = i.document
idoc.all.UserName.Value = "tapeidentifiant"
idoc.all.Password.Value = "tapemotdepasse"

Dim ele As MSHTML.IHTMLElement

Dim eles As MSHTML.IHTMLElementCollection
Set eles = idoc.getElementsByTagName("button")

For Each ele In eles

If ele.ID = "register_submit" Then
ele.Click
Else
End If

Next ele

With Sheets("feuil1").QueryTables.Add(Connection:="URL; https://footystats.org/tomorrow/", Destination:=Sheets("feuil1").Range("A1"))
    .BackgroundQuery = True
      .WebSelectionType = xlEntirePage
      .WebFormatting = xlWebFormattingNone
      .Refresh BackgroundQuery:=False
    End With

End Sub

Le code html du bouton à cliquer est:

<a class="button" href="/tomorrow/">Tomorrow</a>

J'ai essayé d'intégrer la ligne suivante mais rien n'y fait...

Document.getElementsByTagName("a")(2).click

Puis une fois ce bouton cliqué je souhaiterais importer la page en "feuil1"

Pour information et parce que je juge utile de le préciser:

Sauf erreur de ma part, il n'est pas mentionné dans les GCU du site l'interdiction de réaliser l'extraction de ce type de données.

Je tiens également à rajouter que l'extraction que je souhaite faire est strictement réservée pour un usage personnel et non lucratif.

J'ai encore un peu avancé, mais je bloque à ce niveau:

Sub Macro2()
'

'
' Macro2
'
Sheets("Feuil1").Cells.Clear
Dim i As SHDocVw.InternetExplorer
Set i = New InternetExplorer

i.Visible = True
i.navigate ("https://footystats.org/login")
Do While i.readyState <> READYSTATE_COMPLETE
Loop

Dim idoc As MSHTML.HTMLDocument
Set idoc = i.document
idoc.all.UserName.Value = "identifiant"
idoc.all.Password.Value = "mdp"

Dim ele As MSHTML.IHTMLElement

Dim eles As MSHTML.IHTMLElementCollection
Set eles = idoc.getElementsByTagName("button")

For Each ele In eles

If ele.ID = "register_submit" Then
ele.Click
Else
End If

Next ele

i.navigate ("https://footystats.org/tomorrow/")
Do While i.readyState <> READYSTATE_COMPLETE
Loop
MsgBox i.LocationURL

With Sheets("feuil1").QueryTables.Add(Connection:= _
      "URL;" & i.LocationURL, Destination:=Sheets("feuil1").Range("A1"))
      .Name = "xx"
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingNone
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
  End With

End Sub

Le code ci dessus m'importe la page comme lorsque je ne suis pas connecté... Désespérant..

Rechercher des sujets similaires à "macro connexion login mdp extraction donnees web"