Meilleur auteur de réponses
Recuperer un texte d'une page web

Question
-
Bonjour je voudrais savoir si il est possible de récuperer un texte d'une page web et comment?
Imaginons que sur une page j'ai un chiffre comme 5 comment je peux le récuperer?
On m'a parler de web.broser comment sa marche ...
Voila d'avance merci pour les réponses
Réponses
-
Comme j'ai pu vous dire le meilleurs moyen c'est d'utiliser Regex voici un exemple
Imports System.Net Imports System.IO Imports System.Text.RegularExpressions Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim webRequest As WebRequest Dim webResponse As WebResponse webRequest = HttpWebRequest.Create("http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/fe1835a5-20cc-44e0-9f2c-ac5560668712") webResponse = webRequest.GetResponse() Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream) Dim r As New Regex("(?<word>\d)", RegexOptions.Multiline Or RegexOptions.IgnoreCase) Dim input As String Do While stream.Peek >= 0 input = stream.ReadLine Dim matches As MatchCollection = r.Matches(input) If matches.Count > 0 Then Console.WriteLine("{0} ({1} matches):", input, matches.Count) For Each match As Match In matches Console.WriteLine(" " + match.Value) Next End If Loop End Using End Sub End Class
Cordialement, Troxsa- Proposé comme réponse TroxsaEditor mardi 30 novembre 2010 21:20
- Marqué comme réponse Alex Petrescu mercredi 8 décembre 2010 09:20
Toutes les réponses
-
Bonjour,
Voici comment récupérer le contenu d'une page web, a vous de récupérer l'information nécessaire en analysant la chaîne "pageHtml".
Dim webRequest As WebRequest Dim webResponse As WebResponse webRequest = HttpWebRequest.Create("http://.../mapage.html") webResponse = webRequest.GetResponse() Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream()) Dim pageHtml As String pageHtml = stream.ReadToEnd() ' Utiliser ici le contenu de pageHtml avec la méthode IndexOf() par exemple End Using
Cordialement
Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Proposé comme réponse AtHackX lundi 22 novembre 2010 09:47
- Marqué comme réponse Alex Petrescu mercredi 24 novembre 2010 13:46
- Non marqué comme réponse Hugo7 vendredi 26 novembre 2010 16:28
- Non proposé comme réponse Hugo7 vendredi 26 novembre 2010 16:29
- Proposé comme réponse TroxsaEditor vendredi 26 novembre 2010 18:44
-
Bonjour,
Hugo7, je vous remercie de nous dire si vous avez besoin d’assistance supplémentaire ou si la réponse de M. Tourreau a été suffisante.
Cordialement,
Alex
________________
Astuces pour Visual Studio 2010
XNA – Développement jeux vidéo
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
-
Bonjour,
Vous devez mettre : "Imports System.Net"
La méthode IndexOf() prend en paramètre une chaîne à rechercher et retourne la position où elle se trouve (-1 si la chaîne est inexistante). Plus d'informations : http://msdn.microsoft.com/fr-fr/library/system.string.indexof.aspx
Cordialement
Gilles TOURREAU - MVP C# - MCPD Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5 - MCTS ADO .NET 3.5 / SQL Server 2008 Developper - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr- Proposé comme réponse TroxsaEditor vendredi 26 novembre 2010 18:45
-
-
-
Bonjour,
Bien sur sur si vous pouvez
Le code qui à été donné est le bon suffit juste d'ajouté ce fameux indexOf qui est facile !
L'utilisation de Regex est plus dur, si vous ne savez pas utiliser plutot l'indexOf
Dim webRequest As WebRequest Dim webResponse As WebResponse webRequest = HttpWebRequest.Create("http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/fe1835a5-20cc-44e0-9f2c-ac5560668712") webResponse = webRequest.GetResponse() Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream) Dim pageHtml As String = stream.ReadToEnd() ' Utiliser ici le contenu de pageHtml avec la méthode IndexOf() par exemple If pageHtml.IndexOf("5") > 0 Then MsgBox("Le 5 est bien present") Else MsgBox("Non pas dans cette page !") End If End Using
Cordialement
Cordialement, Troxsa -
-
-
Bonjour,
Pouvez-vous expliquer à nouveau ce que vous voulez récupérer dans la page html ? Est-ce qu’il s’agit d’un contenu dont vous savez a priori qu’il existe ? Ou vous voulez récupérer tout le texte contenu dans la page, même si on ne connait pas en avance quel est ce texte ?
Cordialement,
Alex
________________
Astuces pour Visual Studio 2010
XNA – Développement jeux vidéo
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.
-
Merci pour les réponses.
Alors en faite j'ai un site web avec une page qui contiendra juste un chiffre ou un nombre et je voudrais pouvoir récupérer ce nombre ou ce chiffre.
Ce nombre ou ce chiffre sera afficher sur la page soit dans une textbox ou directement dans le code Html ou autrement je ne sais pas mais il sera bien là.
D'avance merci
-
-
-
Oui mais cela ne me permet pas de récupérer n'importe quel nombre ....
Ou alors il faut que je fasse une boucle pour tester tous les nombre?
Pourrais-je avoir de l'aide svp
Deuxiemement quelque soit l'url que je mette même d'une page sans 5 comme la page d'accueil de google il me met qu'un 5 est présent ..Ce code regarde t'il le code html? parce que dans ce cas la il y a de forte chance que un bon nombre de nombre i soit et induise des erreurs
D'avance merci
-
Bonjour,
Oui mais cela ne me permet pas de récupérer n'importe quel nombre ....
Pouvez-vous confirmer que vous souhaitez récupérer tous les nombres présent dans la page HTML ? (entre les balise <html></html>) ?Deuxiemement quelque soit l'url que je mette même d'une page sans 5 comme la page d'accueil de google il me met qu'un 5 est présent ..Ce code regarde t'il le code html? parce que dans ce cas la il y a de forte chance que un bon nombre de nombre i soit et induise des erreurs
Oui, le code de Troxsa regarde dans tout le code HTML de la page (pour mieux vous en rendre compte, allez dans Internet Explorer sur le site Google puis sur Page / Afficher la source).Cordialement
Gilles TOURREAU - MVP C#
Architecte .NET/Consultant/Formateur chez Winwise
Blog : http://gilles.tourreau.fr
- MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
- MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5 -
Comme j'ai pu vous dire le meilleurs moyen c'est d'utiliser Regex voici un exemple
Imports System.Net Imports System.IO Imports System.Text.RegularExpressions Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim webRequest As WebRequest Dim webResponse As WebResponse webRequest = HttpWebRequest.Create("http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/fe1835a5-20cc-44e0-9f2c-ac5560668712") webResponse = webRequest.GetResponse() Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream) Dim r As New Regex("(?<word>\d)", RegexOptions.Multiline Or RegexOptions.IgnoreCase) Dim input As String Do While stream.Peek >= 0 input = stream.ReadLine Dim matches As MatchCollection = r.Matches(input) If matches.Count > 0 Then Console.WriteLine("{0} ({1} matches):", input, matches.Count) For Each match As Match In matches Console.WriteLine(" " + match.Value) Next End If Loop End Using End Sub End Class
Cordialement, Troxsa- Proposé comme réponse TroxsaEditor mardi 30 novembre 2010 21:20
- Marqué comme réponse Alex Petrescu mercredi 8 décembre 2010 09:20
-
-
Hugo7,
Un forum d'entre aide sers à aider la personne qui en a besoin mais pas a lui faire tout sinon cela ne s'appelle plus de l'aide, c'est faire son travail !
Si vous ne comprenez pas le code c'est normal :) enfin ça dépend ... :)La méthode utilisé Regex (regularExpression) , vous reverrez toutes les informations sur le site : Regex (regularExpression)
Avez vous essayé le code ? car si vous l'aviez fait cela aurait été facile de mettre un textbox la ou il le faillais !
Imports System.Net<br/> Imports System.IO<br/> Imports System.Text.RegularExpressions<br/> <br/> Public Class Form1<br/> <br/> Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load<br/> Dim webRequest As WebRequest<br/> Dim webResponse As WebResponse<br/> <br/> webRequest = HttpWebRequest.Create("http://social.msdn.microsoft.com/Forums/fr-FR/vbasicfr/thread/fe1835a5-20cc-44e0-9f2c-ac5560668712")<br/> webResponse = webRequest.GetResponse()<br/> <br/> Using stream As StreamReader = New StreamReader(webResponse.GetResponseStream)<br/> Dim r As New Regex("(?<word>\d)", RegexOptions.Multiline Or RegexOptions.IgnoreCase)<br/> <br/> Dim input As String<br/> Do While stream.Peek >= 0<br/> input = stream.ReadLine<br/> Dim matches As MatchCollection = r.Matches(input)<br/> <br/> If matches.Count > 0 Then<br/> ' Console.WriteLine("{0} ({1} matches):", input, matches.Count)<br/> For Each match As Match In matches<br/> Texbox1.text += match.Value<br/> Next<br/> End If<br/> Loop<br/> End Using<br/> End Sub<br/> End Class
J'attire votre attention sur le fonctionnement du code, cela va balayer toute la page et vous remontez tout ce qui est en rapport avec ce qui est demandé, dans le cas du code actuelle c'est des numéros (\d), si vous ne faite pas plus de traitement dans le code cela va vous donner, dans le textbox, la derniere valeur trouvé ce qui est normal.
Avant de reposer une autre question sur ce sujet je vous conseil d’essayé de comprendre le code, vous avez tout pour comprendre il suffit de lire ce qui ce trouve sur le site ^^
...
Cordialement, Troxsa