Contenu des Frames HTML (VB6)

Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006 - 12 juil. 2006 à 17:21
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012 - 20 juin 2008 à 19:49
Bonjour à tous,

Je souhaiterais savoir si quelqu'un connaitrait le moyen, en vb6 de lire le contenu d'une page web contenant des frames.

Je m'explique:

Lorsque vous entrez sur une page web avec des frames et que vous affichez le code source, seul le code du frameset apparait, on ne peut accéder au reste du code qu'en selectionnant les frames un par un.

Avec la méthode WebBrowser1.Document.documentElement.innerHTML, je ne parviens donc à recuperer que le code du frameset, mais pas celui des frames qui m'interessent...

Est ce que quelqu'un connait la manip?

En vous remerciant.

10 réponses

michelxld Messages postés 402 Date d'inscription vendredi 6 août 2004 Statut Membre Dernière intervention 12 octobre 2008 32
14 juil. 2006 à 08:41
bonjour

j'espere que cet exemple pourra t'aider

Dim Frms As Object
Dim i As Integer


Set Frms = WebBrowser1.Document.frames
For i = 0 To Frms.Length - 1
    Debug.Print WebBrowser1.Document.frames(i).Document.all.Item.innerHTML
Next


 


bonne journée
michel
0
Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006
14 juil. 2006 à 11:59
Merci beaucoup de ta reponse michel, je commencais à m'arracher les cheveux :D


J'essaye ca au plus vite et je te tiens au courant.
0
Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006
14 juil. 2006 à 13:46
Alors, j'ai essayé ta méthode, voila le resultat obtenu:


J'obtiens l'erreur "80020009: Une exception s'est produite" à l'entrée dans la boucle.


Ce qui m'étonnes, c'est qu'au deboguage, frms.length vaut 1 alors que la page contient 3 frames...


En ce qui concerne "Debug.Print
WebBrowser1.Document.frames(i).Document.all.Item.innerHTML", es tu sur
qu'il faut mettre deux fois "document"?
0
Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006
14 juil. 2006 à 13:48
D'autre part, si je supprime la boucle avec juste la formule suivante:
"Debug.Print
WebBrowser1.Document.frames(1).Document.all.Item.innerHTML", j'obtiens
la meme erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
20 sept. 2006 à 12:20
J'ai le même problème... Je n'arrives pas à récupérer le code des frames...
Vous avez du nouveau sur se sujet ?

signé: Squall [8)]
0
Asaiel Messages postés 37 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 21 septembre 2006
20 sept. 2006 à 18:30
Bonjour,

Non, tojours pas d'info sur ce problème, je pense que ce topic est oublié...

Si vous réussissez a avoir ces informations, j'aimerais vraiment que vous m'en fassiez part.
0
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
26 sept. 2006 à 12:04
Rebonjour,

J'ai essayé la méthode de MichelXLD et ça fonctionne... Mais moi comme j'aime bien faire dans le compliqué, j'essaye d'accéder au code d'une frame dans une autre frame ! Et là bien sur, je n'y arrive pas...

Comment faire ?

Voici un extrait du code que j'utilise :

Public WithEvents IE As InternetExplorer


Private Sub CMD_LancerIE_Click()
 Set IE = New InternetExplorer
 IE.Visible = True
 IE.navigate "http://www.monSiteWeb"
end sub


Private Sub IE_DownloadComplete()


    Dim Frms As Object
    Dim Frms2 As Object
    Dim i As Integer
   
    Set Frms = IE.document.frames
    MsgBox "Code de la page de base : " & Chr(10) & Chr(10) & IE.document.all.Item.innerHTML
    For i = 0 To Frms.Length - 1
        MsgBox "Code de la frame : " & Chr(10) & Chr(10) & Frms(i).document.all.Item.innerHTML
    Next


    MsgBox "Nombre de frames dans la frame : " & Frms.Length


    Set Frms2 = Frms(0).document.frames 'Là je suis obligé de mettre 0 car il me met une erreur quand je met plus !
    For i = 0 To Frms2.Length - 1
        MsgBox "Code de la seconde frame : " & Chr(10) & Chr(10) & Frms2(i).document.all.Item.innerHTML
         'Le résultat de se message est vide !
    Next


    IE.Quit
end sub

Quelqu'un pour m'aider ?
0
tomkich Messages postés 1 Date d'inscription jeudi 26 janvier 2006 Statut Membre Dernière intervention 30 novembre 2006
30 nov. 2006 à 12:09
Alors et bien du coté de chez ca marche pas toujour le meme code d'erreur sauf que j'ai entre les parenthese (80070005)
0
vortex3m Messages postés 6 Date d'inscription vendredi 2 juin 2006 Statut Membre Dernière intervention 9 août 2009
20 juin 2008 à 19:14
Utilise un winsock pour récupérer le code source de la page!
0
Squall____ Messages postés 65 Date d'inscription mercredi 7 janvier 2004 Statut Membre Dernière intervention 11 septembre 2012
20 juin 2008 à 19:49
Alors ça les winsocks j'y connais rien !
0
Rejoignez-nous