none
Recuperer un texte d'une page web RRS feed

  • 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

    samedi 20 novembre 2010 21:35

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
    mardi 30 novembre 2010 21:19
    Auteur de réponse

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
    dimanche 21 novembre 2010 22:22
    Modérateur
  • 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

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    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.

     

     


    Suivez MSDN sur Twitter 

    lundi 22 novembre 2010 15:11
  • Bonjour merci pour les réponses.

    Quel est le

    Import System
    
    que je dois mettre pour pouvoir utiliser votre code?

    Comment marche la méthode IndexOf() ?

    D'avance merci

    lundi 22 novembre 2010 21:16
  • 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
    lundi 22 novembre 2010 21:59
    Modérateur
  • Bonjour,

    Pour la lecture d'une page HTML le mieux ne serait il pas Regex ?

     

    A bientot


    Cordialement, Troxsa
    mardi 23 novembre 2010 09:17
    Auteur de réponse
  • Mais je ne peux pas récuperer de texte avec la méthode indexof ....
    vendredi 26 novembre 2010 16:28
  • 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
    vendredi 26 novembre 2010 18:44
    Auteur de réponse
  • Oui mais la je test juste si le 5 est dans la page non?
    samedi 27 novembre 2010 14:02

  • c'est pas ce qui est demandé a la base ?


    Cordialement, Troxsa
    samedi 27 novembre 2010 14:44
    Auteur de réponse
  • 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

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    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.

     

     


    Suivez MSDN sur Twitter 

    dimanche 28 novembre 2010 09:37
  • 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

    dimanche 28 novembre 2010 13:46
  • Personne n'a de réponse ?
    mardi 30 novembre 2010 15:11
  • Bonjour Hugo7

     

    toute les réponse vous ont étés données, personnelement j'ai essayé et sa fonctionne tres bien ...

    donc je vois pas quoi faire de plus de ce qui a été donné

     

     


    Cordialement, Troxsa
    mardi 30 novembre 2010 15:29
    Auteur de réponse
  • 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

    mardi 30 novembre 2010 18:59
  • 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
    mardi 30 novembre 2010 19:38
    Modérateur
  •  

     

    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
    mardi 30 novembre 2010 21:19
    Auteur de réponse
  • Merci pour la réponse , pourrais-je avoir plus d'info sur le code ,  comment la fonction marche t'elle? Est 'il possible de mettre le nombre récupérer dans une textbox? D'avance merci
    mercredi 1 décembre 2010 21:29
  • 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
    mercredi 1 décembre 2010 21:59
    Auteur de réponse