Lire contenu d'une page web dans WebBrowser [Résolu]

Signaler
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
-
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
-
Bonjour,

Je cherche à lire la source du fichier contenu dans un WebBrowser :
j'ai essayer DocumentStream, DocumentText ... pas moyen !
Y'a-t-il un moyen ?

Merci d'avance

16 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
cela ne m'etonne pas...

attends que la page arrive...
Navigate rend la main tout de suite, mais le document n'est pas encore là.

tu remarqueras que mon test attend l'evenement WebBrowser1_DocumentCompleted

fais le test, dans ton code :

ShowMyIP.Navigate("http://www.whatismyip.org" )
MsgBox("Merci de patienter quelques secondes avant de valider")
MsgBox(ShowMyIP.DocumentText)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
t'as pas de bol, t'as un DOM rien qu'à toi ?? ^^

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
voir InnerHTML

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
??
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
tu vois où InnerHTML ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
ben dans la doc, pardi ^^

http://msdn2.microsoft.com/en-us/library/ms535255.aspx

allez, un petit exemple, parce que tu m'a l'air un peu perdu...
(exemple en VB6, mais tu manipules le DOM, derrière, peu importe le langage, le principe est le même)

Private Sub Form_Load()
   WebBrowser1.Navigate "http://www.google.com"
End Sub<hr />
Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Dim oDoc As HTMLDocument
   Set oDoc = WebBrowser1.Document
   If oDoc.hasChildNodes Then
       MsgBox oDoc.childNodes.Item(0).innerHTML
   End If
End Sub , ----
By Renfield

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
l'exemple ci-dessus va afficher le code contenu dans les balises

<HTML>

</HTML>

du document... je dis pas que c'est LA solution, c'est un moyen possible de retrouver son code HTML.....

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
ChildNotes n'existe pas en VB.net ...
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
j'ai pas fait

WebBrowser1.Document.ChildNodes

Document est de type IUnknown... donc rien n'apparaitra dans l'intellisense.

le WebBrowser que tu utilise....c'est le même qu'en VB6, c'est le même composant COM, donc tu AS forcément ChildNodes...

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
non : le compilateur m'indique une erreur ... (childnotes ET childnodes ...)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
t'aurais un bout de code, et le texte du compilo ?

(childnotes n'existe pas, on est d'accord...)

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
Erreur 3 'hasChildNodes' n'est pas un membre de 'System.Windows.Forms.HtmlDocument'. D:\Users\Jerem\Documents\Visual Studio 2005\Projects\LiveKill3\LiveKillGUI\LiveKillGUI\Principal.vb 142 28 LiveKillGUI

Erreur 4 'childNodes' n'est pas un membre de 'System.Windows.Forms.HtmlDocument'. D:\Users\Jerem\Documents\Visual Studio 2005\Projects\LiveKill3\LiveKillGUI\LiveKillGUI\Principal.vb 143 36 LiveKillGUI

Dim

oDoc
As HtmlDocument = ShowMyIP.Document

If oDoc.hasChildNodes
ThenMsgBox(oDoc.childNodes.Item(0).innerHTML)

End
If
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
regarde dans l'explorateur d'objets ce que tu as en équivalent de la propriété hasChildNodes en dotnet.
Ps : MsgBox
est modifié par MessageBox.Show()

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
62
y'a pas a dire, t'es un mec qui cherche dans ce que propose les objets, toi

tu m'a fait installer VB2005 juste pour ça ?

Private
Sub WebBrowser1_DocumentCompleted(
ByVal sender
As System.Object,
ByVal e
As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Handles WebBrowser1.DocumentCompletedMsgBox(WebBrowser1.DocumentText)

End
Sub

Private
Sub Form1_Load(
ByVal sender
As
Object,
ByVal e
As System.EventArgs)
Handles
Me.LoadWebBrowser1.Navigate(

"www.google.com")

End
Sub

l'explorateur d'objets te l'aurait dit, pourtant...

Public Property DocumentText() As String
Membre de : <gras>System
.<gras>Windows
.<gras>Forms
.
<gras>WebBrowser


Résumé :

Obtient ou définit le contenu HTML de la page affichée dans le contrôle System.Windows.Forms.WebBrowser.

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
même DocumentText me renvoie pas la source :
je vais sur whatismyip.org dans un webbrowser invisible, pour obtenir mon IP

voici le code :


If
My.Computer.Network.IsAvailable
And
My.Computer.Network.Ping(
"www.whatismyip.org")
Then



ShowMyIP.Navigate(




"http://www.whatismyip.org"
)MsgBox(ShowMyIP.DocumentText)

ShowMyIP.Visible =


True



' debug

InfosPC.Text = InfosPC.Text & vbCrLf &




My
.Resources.ip &

""



' System.Net.Dns.GetHostByName(System.Net.Dns.GetHostName).AddressList.GetValue(0).ToString






End



If
Messages postés
552
Date d'inscription
samedi 8 janvier 2005
Statut
Membre
Dernière intervention
12 avril 2008
1
joli ! exactement ça ^^
merci renfield (désolé pour le dérangement )

++