J'ai une fonction qui récupère le code HTML d'une page internet :
Private Function Html(WUrl As String) As String
WebBrowser.Navigate (WUrl)
Do Until WebBrowser.ReadyState = READYSTATE_COMPLETE
DoEvents
Loop
Html = WebBrowser.Document.documentElement.innerHtml
End Function
Le problème est que le code HTML retourné est tronqué, limité à environ 240 caractères.
Je ne pense pas que ce soit un problème de variable car si je mets un espion sur
WebBrowser.Document.documentElement.innerHtml
, déjà le code est tronqué.
Y a-t-il une limitation ? Est-il possible de récupérer le code complet de la page internet ?
Merci d'avance votre aide :)
A voir également:
Html code visual studio
Visual basic html - Meilleures réponses
Vba récupérer contenu page web - Meilleures réponses
En effet pas de frame dans ma page à afficher, seulement un tableau.
J'ai mis le code que tu me proposes, mais le résultat est le même, le code est tronqué au même endroit que avec mon code (vu avec l'espion de variables) :(
Désolé. Cette propriété n'existe pas sous VB6.
Va falloir essayer autrement
Peut-être en invoquant d'abord l'objet Body
WebBrowser1.Document.body.innerHTML
????
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
C'est exactement ce que je me suis dit en découvrant la vraie recette du vrai homard à l'armoricaine. Et j'ai alors décidé de ne pas m'en mêler et d'aller déguster ce plat préparé par un bon chef dans un bon restaurant, en lieu et place.
Je suis également sur ce genre de recherche,
je passe rapidement vous donner une piste a suivre vu que j'ai également trouvé très peu de réponse a mon problème.
La parade que j'ai trouvé est la suivante .. Attendre
A vous de régler et améliorer ce code
Try WebBrowserTemp.ScriptErrorsSuppressed = True Dim debutA As Long = Environment.TickCount ' millisec WebBrowserTemp.Navigate(REMOTE_URL) Do While WebBrowserTemp.ReadyState <> WebBrowserReadyState.Complete System.Threading.Thread.Sleep(10) Application.DoEvents() If (Environment.TickCount - debutA) / 1000 > 1 Then Exit Do Loop 'MsgBox("Chargement terminé !") Catch ex As Exception Console.WriteLine("HTML : error " & ex.Message) End Try
' Récuperer les tables Dim TableCollection As HtmlElementCollection = WebBrowserTemp.Document.GetElementsByTagName("table")
J'ai pensé au problème de temps en effet.
J'ai donc fait un test de charger la page grâce à un premier bouton, puis de récupérer son contenu grâce à un second bouton.
Mais le problème reste le même.
Je ne comprends pas pourquoi ça fonctionne pas alors que pour d'autres (d'après les recherches que j'ai faites) ça semble fonctionner :(
Re,
Vérifie quand même (sait-on jamais ?) que tu n'as pas un caractère null de terminaison chr(0) dans la chaîne importée
car sinon, ma foi ...
Regarde :
toto = "aaaaa" & Chr(0) & "bbbbb" MsgBox toto Text1.Text = toto
Essaye ce que tu obtiendrais en remplaçant chr(0) par "" avec la fonction replace
Tout cela est assez curieux.
Je viens de lancer ton propre code sur le lien/test que tu as donné ===>>
voici ce que j'obtiens avec msgbox (affichage limlité) ===>>>
et voici ce que j'obtiens (non limité, donc) en textbox :