Importation données à partir du web

Bonjour à tous

Je pense que que ceci est très facile pour vous.

Je voudrais extraire des données dans un Siteweb mais j'ai un souci avec la méthode "getelementsbyclassname". Quand j'exécute le code, Il apparaît "erreur 438. Propriété ou méthode non gérée par cet objet" . Est-ce qu'il y a une alternative? J'ai déja cocher les réferences qui va avec le code.

J'ai visionné par contre un tuto sur youtube et cela semblait marcher très bien.

Ci dessus le code.

Private Sub BrowseWiseowl()

Dim oXMLPage As Object
Dim aHTML As Object
Dim sURL As String

Dim VidCats As MSHTML.IHTMLElementCollection
Dim VidCat As MSHTML.IHTMLElement
Dim VidCatList As MSHTML.IHTMLElement

Set oXMLPage = CreateObject("MSXML2.ServerXMLHTTP")
Set aHTML = CreateObject("htmlfile")

sURL = "https://www.wiseowl.co.uk/videos/"

oXMLPage.Open "GET", sURL, False
oXMLPage.send

aHTML.body.innerHTML = oXMLPage.responseText
Set oXMLPage = Nothing

Set VidCatList = aHTML.getElementsByClassName("WoMenuList")
Set VidCats = VidCatList.getElementsByTagName("a")
Debug.Print VidCats.Length

For Each VidCat In VidCats
Debug.Print VidCat.innerText, VidCat.getAttribute("href")

Next VidCat
End Sub

Je joins un ptit fichier à titre d'exemple

Merci d'avance pour votre aide.

Cdt.

31testhtml.xlsx (8.26 Ko)

Bonjour,

C'est mieux ... mais je coince sur getElementsByClassName

si cela peut te mettre sur la piste !

Private Sub BrowseWiseowl()
'nécéssite d'activer la référence Microsoft HTML Objects Library
'nécéssite d'activer la référence Microsoft Internet Controls

Dim oXMLPage As Object
Dim aHTML As Object
Dim sURL As String

Dim VidCats As MSHTML.IHTMLElementCollection
Dim VidCat As MSHTML.IHTMLElement
Dim VidCatList As MSHTML.IHTMLElement

Set oXMLPage = CreateObject("MSXML2.ServerXMLHTTP")
Set aHTML = CreateObject("htmlfile")

sURL = "https://www.wiseowl.co.uk/videos/"

oXMLPage.Open "GET", sURL, False
oXMLPage.send

aHTML.body.innerHTML = oXMLPage.responseText
Set oXMLPage = Nothing

' Set VidCatList = aHTML.getElementsByClassName("WoMenuList")
' Set VidCats = VidCatList.getElementsByTagName("a")
Set VidCats = aHTML.getElementsByTagName("a")
Debug.Print VidCats.Length

For Each VidCat In VidCats
Debug.Print VidCat.innerText, VidCat.getAttribute("href")

Next VidCat
End Sub
45testhtml.xlsm (15.02 Ko)

En fait

stackoverflow.com a écrit :

I believe they added GetElementsByClassName with IE9+. (I am using 8 so I cannot confirm this). Even the w3 standard for an HTMLDocument do not expose a GetElementsByClassName method

Quelle est ta version d'IE ?

Voir ici les compatibilités

https://developer.mozilla.org/fr/docs/Web/API/Document/getElementsByClassName

Merci Steelson! Mais ce serait plus pratique si on avait une alternative. Je vais essayer de faire avec. Bonne journée!

Puisqu'on a le texte de la page .responseText, on peut le triturer directement ...

Rechercher des sujets similaires à "importation donnees partir web"