Instruction Lire Page WEB retourner une valeur

onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011 - 18 nov. 2011 à 15:10
 Utilisateur anonyme - 21 nov. 2011 à 21:35
Bonjour à toutes et à tous, je ne sais si je poste dans la bonne rubrique, je m'en excuse si il y a erreur.

Etant novice, je débute avec visual basic express 10.

J'essaye vainement de trouver le moyen ou les jeux d'instructions afin de lire le contenu d'une page HTML, de retourner une valeur contenue dans cette page, et de l'afficher dans un label.

Si des personnes, ont une idée, je suis preneur, merci d'avance

24 réponses

Utilisateur anonyme
18 nov. 2011 à 15:49
Salut,

Alors en VB.NET (mais t'as posté dans la rubrique VB6).
Tu peux éventuellement afficher le contenu de la page html (le body):
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        RichTextBox1.Text = WebBrowser1.Document.Body.OuterText
    End Sub





CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 nov. 2011 à 15:50
Pardon j'ai rayé le VB.NET, j'imagine que tu es en VB.NET Express 2010.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011
18 nov. 2011 à 16:03
Merci acive, en effet, je suis sur Visual basic express 10, si je comprends bien en vb.net, je fais le parallèle à l'instant même ;).
Je vais tester de suite.

Ce que je souhaite réaliser plus précisement est panneau un de contrôle. Pour mon job je dois surveiller l'état de serveur sur un intranet, j'ai donc créer une interface en VB, des boutons pour ouvrir les sites etc, cela fonctionne.

A présent je cherche à réaliser une boucle, un intervalle T, qui va lire le contenu de ma page HTML et me retourne le résultat dans un Label ou autre. Exemple si voyant vert, je mets la concordance, un résultat me stipulant que celui-ci fonctionne parfaitement.

Encore merci pour ton aide, rome ne se construit pas en 1 jour, et comme je l'ai précisé je suis novice en prog, début de chez début.
0
Utilisateur anonyme
18 nov. 2011 à 16:13
Re:

 'Exemple: Au démarrage il charge la page web
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("www.google.fr")
    End Sub
    'une fois le chargement de la page complet:
    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        'et on affiche tout dans un richtextbox par exemple
        RichTextBox1.Text = WebBrowser1.Document.Body.OuterText
        'il ne te reste plus qu'à faire le tri et trouver l'information que tu cherches
    End Sub


CF2i - Guadeloupe
Ingénierie Informatique
0

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

Posez votre question
onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011
18 nov. 2011 à 16:35
D'accord ma question risque d'être stupide, un richtextbox, oki, je vois l'objet je le place dans mon formulaire.

Mais en ce qui concerne la déclaration Private Sub Form1_Load << ?
Je cherche en ce moment comment faire, comme je te l'ai dit, je lis je me documente, mais je débute.

Les procédures sur les boutons je comprends "Process.Start" et je sais ou les déclarer.

Encore merci de prendre ton temps pour un débutant
0
Utilisateur anonyme
18 nov. 2011 à 16:47
Alors, ta question était: "Lire Page WEB retourner une valeur"

Ma mission est accomplie...

Maintenant si tu es débutant à ce point, t'as un peu de boulot.

Essaye déjà d'y mettre un bouton et tu double-cliques dessus, tu seras dans le button1_Click et la tu colles:
WebBrowser1.Navigate("www.google.fr")


Ce qui fait que quand tu vas cliquer sur ce bouton il va naviguer sur le site en question


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 nov. 2011 à 20:22
Bonsoir,
qui va lire le contenu de ma page HTML et me retourne le résultat dans un Label

Oui acive mais un webbrowser est assez lourd pour récupérer un contenu de page, une simple requête web suffit
label1.text = New IO.StreamReader(Net.WebRequest.Create("http://www.google.fr").GetResponse.GetResponseStream).ReadToEnd

Bonne soirée.
0
Utilisateur anonyme
18 nov. 2011 à 20:36
Salut Banana,

Avec ton IO.StreamReader il t'affiche le html:
<!doctype html><html><head><meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"><title>Google</title><script>window.google={kEI:"rLLGToj1OMOO8gO1_bFb",getEI:function(a){var b;while(a&&!(a.getAttribute&&(b=a.getAttribute("eid"))))a=a.parentNode;return b||google.kEI},https:function(){return window.location.protocol=="https:"},kEXPI:"28936,30316,32940,33104,33373,33492,33657,34295,34333,34353,34422,34437,34446,34466",kCSI:
.......


Alors qu'avec le webbrowser tu as le texte:
Si vous utilisez un lecteur d'écran, cliquez ici pour désactiver la recherche instantanée Google. × Vous venez ici souvent? Affichez Google en page d'accueil. OKNon merci
WebImagesVidéosMapsActualitésShoppingGmailPlusTraduction
Livres
Scholar
Blogs
YouTube
Agenda
Photos
.....


En plus pour notre ami qui est débutant il vaux peut-être mieux qu'il puisse voir la page affichée.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 nov. 2011 à 20:44
Ah oui, j'avais mal lu dsl
0
Utilisateur anonyme
18 nov. 2011 à 20:48
Pas grave...

De toute façon je lui ai mis un richtextbox parce qu'il va falloir faire le tri de tout le texte et uniquement après il va inscrire la valeur qui l'intéresse dans le label

Mais... ça va être long...

CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 nov. 2011 à 20:56
J'avais vu je ne sais plus où, une expression régulière qui peut supprimer toutes les balises HTML pour ne garder que le texte qui reste. On verra s'il est utile que je la retrouve...
Bonne baignade acive
0
Utilisateur anonyme
18 nov. 2011 à 21:06
Re:

Tout à fait, on peux faire ça aussi, moi aussi j'ai vu ce truc quelque part, mais bon laisse déjà voir ce qu'il veut récupérer comme valeur, et à la fin on pourrait éventuellement supprimer le webbrowser.

L'eau est froide 27°C... ça craint



CF2i - Guadeloupe
Ingénierie Informatique
0
onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011
21 nov. 2011 à 09:12
Merci, à tous pour votre aide.
Appliquer une procédure évènementielle sur un bouton, exemple ma progress bar, etc, ceci j'arrive à le faire sans soucis.

mon timer.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
Label4.Text = "Copie effèctuée avec succès"
End If
Label3.Text = ProgressBar1.Value & (" %")

Par contre, la ou je coince, j'ai déjà un élément de réponse grave à vous.

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Navigate("http://monitor.xxx.xxx.xx")

Donc, je peux afficher ma page de monitor dans ma fenêtre, certes, mais ce n'est pas le but en fait.

Je souhaiterais, grave a une boucle, disons toutes les 10 minutes par exemple, lire la dite page, retourner les valeurs trier dans les différents labels que j'aurais créé.

Et là je coince totalement, je ne souhaite pas appliquer la procédure à quelconque bouton, je souhaiterais automatiser la tâche.
Merci encore pour votre aide
0
onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011
21 nov. 2011 à 09:16
Merci, à tous pour votre aide.
Appliquer une procédure évènementielle sur un bouton, exemple ma progress bar, etc, ceci j'arrive à le faire sans soucis.

mon timer.
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
ProgressBar1.Increment(1)
If ProgressBar1.Value = 100 Then
Label4.Text = "Copie effèctuée avec succès"
End If
Label3.Text = ProgressBar1.Value & (" %")

Par contre, la ou je coince, j'ai déjà un élément de réponse grâce à vous.

Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
WebBrowser1.Navigate("http://monitor.xxx.xxx.xx")

Donc, je peux afficher ma page de monitor dans ma fenêtre, certes, mais ce n'est pas le but en fait.

Je souhaiterais, grâce a une boucle, disons toutes les 10 minutes par exemple, lire la dite page, retourner les valeurs trier dans les différents labels que j'aurais créé.

Et là je coince totalement, je ne souhaite pas appliquer la procédure à quelconque bouton, je souhaiterais automatiser la tâche.
Merci encore pour votre aide

P.s: Je recolle, plus simple qq' modifs
0
Utilisateur anonyme
21 nov. 2011 à 12:33
Salut,
Dans ce cas tu peux utiliser la méthode de Banana32, qui consiste à récupérer le code html de la page en arrière plan.

Ca devrait faire un truc du genre:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Interval = 1000
        Dim MinSec As String = Now.Minute & ":" & Now.Second
        'Quand les minutes et les secondes contiennent un zéro (tout les 10 minutes)
        If MinSec.Contains("0:0") Then
            Dim HTML As String = New IO.StreamReader(Net.WebRequest.Create("http://www.google.fr").GetResponse.GetResponseStream).ReadToEnd
            'Dans cet exemple je cherche la valeur qui est devant "[a,b];return"
            Dim Emplacement As Long = InStr(HTML, "[a,b];return", CompareMethod.Text)
            Label1.Text = HTML.ToCharArray(Emplacement + 12, 5)
        End If
    End Sub


CF2i - Guadeloupe
Ingénierie Informatique
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
21 nov. 2011 à 14:34
Bonjour à tous

tout ce qui concerne le Web
question est il possible de récuper dans un
string ,listbox le contenu d'un post
si j'ai le url
le web c'est la page internet
et le html c'est le langage hypertext
ce que je ne comprends pas
que veux dire lire une page web
la page ce n'est un fichier c'est plutot
comme un form avec des controls ,des images
etc
0
onsedemande Messages postés 6 Date d'inscription mardi 4 décembre 2007 Statut Membre Dernière intervention 21 novembre 2011
21 nov. 2011 à 16:13
Alors MERCI MERCI tout le monde, je vais tester de suite!!!!!!!
0
Utilisateur anonyme
21 nov. 2011 à 18:49
Penser quand même à implémenter une gestion d'erreur en cas de site distant injoignable. (try catch)
@acive, Instr est obsolète, utilise plutôt substring.
Pour éviter les conversions en string de now.minute et now.second (integer) on peut partir directement d'un string : if now.tolongtimestring.substring(3) = "0:00" then ...
ou alors : if now.minute mod 10 0 and now.second 0 then ...

@ShayW
Tu n'as qu'à deviner ce que veulent les demandeurs

Bonne soirée.
0
Utilisateur anonyme
21 nov. 2011 à 19:03
Ou texte.contains... c'est pas mal non plus...


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
21 nov. 2011 à 19:11
Non parce que s'il est 10:00:25 par exemple ça déclenchera ton code, à la limite EndsWith("0:00")
Quelle température aujourd'hui chez toi ?
0