shhsh
XLDnaute Nouveau
Bonjour,
J'aimerai savoir si quelqu'un pourrait m'aider pour écrire un code en VBA/Excel 2013 (environnement IE10 sous Window7) .
La difficulté que je rencontre (pour l'instant !), est de récupérer une liste de Liens dont le code source de la page web, située dans un "iframe", est de la forme :
Page web en Exemple :
don camillo - Recherche AlloCiné
Evidement, je n'ai pas Trouvé dans le code source de Name, Id ou ClassName relatifs aux liens...
si ce n'est le "name" ou l'Id du frame qui contient les liens :
Je voudrai récupérer seulement le "Nom" des liens ("FILMS"), avec leur adresse et le contenu des balises textes qui s'y rapporte pour placer ensuite l'ensemble dans un tableau Excel .
De plus, je ne dois récupérer que des liens du style :
<a href= "/films/fichefilm ...=000X.html"> et non pas :
<a href= "/video/fichefilm ...=000X.html">
Si Quelqu'un pouvait au moins m'indiquer les "fonctions" ou le code que je pourrai utiliser .
Merci pour toute bonne volonté, en précisant que je débute en programmation...
Je vous rajoute le "bout de code" qui me permet de lancer la recherche des infos pour un exemple de film :
J'aimerai savoir si quelqu'un pourrait m'aider pour écrire un code en VBA/Excel 2013 (environnement IE10 sous Window7) .
La difficulté que je rencontre (pour l'instant !), est de récupérer une liste de Liens dont le code source de la page web, située dans un "iframe", est de la forme :
HTML:
<a href="/film/fichefilm_gen_cfilm=*****.html">
Page web en Exemple :
don camillo - Recherche AlloCiné
Evidement, je n'ai pas Trouvé dans le code source de Name, Id ou ClassName relatifs aux liens...
si ce n'est le "name" ou l'Id du frame qui contient les liens :
HTML:
<iframe name="twttrHubFrame" tabindex="0" id="twttrHubFrame" src="http://platform.twitter.com/widgets/hub.html" frameborder="0" scrolling="no" style="top: -9999em; width: 10px; height: 10px; position: absolute;" allowtransparency="true">
Je voudrai récupérer seulement le "Nom" des liens ("FILMS"), avec leur adresse et le contenu des balises textes qui s'y rapporte pour placer ensuite l'ensemble dans un tableau Excel .
De plus, je ne dois récupérer que des liens du style :
<a href= "/films/fichefilm ...=000X.html"> et non pas :
<a href= "/video/fichefilm ...=000X.html">
Si Quelqu'un pouvait au moins m'indiquer les "fonctions" ou le code que je pourrai utiliser .
Merci pour toute bonne volonté, en précisant que je débute en programmation...
Je vous rajoute le "bout de code" qui me permet de lancer la recherche des infos pour un exemple de film :
Code:
' Attend que la page internet soit chargée
' pTimeOut est un time out en secondes (WaitIE vaut True si Timeout)
Public Function WaitIE(oIE As InternetExplorer, Optional pTimeOut As Long = 0) As Boolean
Dim lTimer As Double
lTimer = Timer
Do
DoEvents
If oIE.readyState = READYSTATE_COMPLETE And Not oIE.Busy Then Exit Do
If pTimeOut > 0 And Timer - lTimer > pTimeOut Then
WaitIE = True
Exit Do
End If
Loop
End Function
Public Sub Recherche_info_film()
Dim oNav As SHDocVw.InternetExplorer
Dim oDoc As MSHTML.HTMLDocument
' variables d'essais pour la suite du code et " trouver le bon lien puis pointer dessus"...
Dim Cible As HTMLAnchorElement
Set oNav = New SHDocVw.InternetExplorer
oNav.Visible = True
oNav.navigate "http://www.allocine.fr/film/meilleurs_gen_filtre=dvd&critique=public.html"
' Attente avec timeout de 10 s
If WaitIE(oNav, 10) Then
' 10 s écoulées et page non chargée
MsgBox "Time out!"
Else
' Page chargée, on continue
Set oDoc = oNav.document
End If
' Valeur recherchée
oDoc.getElementsByName("q")(0).Value = "don camillo"
' Clic sur bouton
oDoc.getElementsByClassName("btn_form")(0).Click
' Attente avec timeout de 10 s
If WaitIE(oNav, 10) Then
' 10 s écoulées et page non chargée
MsgBox "Time out!"
Else
' Page chargée, on continue
Set oDoc = oNav.document
End If
'oDoc.Links(43) = lien correspondant à la page html des 8 résultats trouvés dans les titres de films pour la recherche "don camillo"
Set Cible = oDoc.Links(43)
Cible.Click
End Sub
Pièces jointes
Dernière édition: