IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Récuperer texte page web


Sujet :

VB.NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut Récuperer texte page web
    Bonjour à tous.
    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

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Il me récupère tous le code html en faite ...
    Comment je fais ensuite pour récuperer juste mon nombre?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    Variable string
    .contains
    .indexof
    .chars

    si ta page est toujours pareil ça devrait être facile

    ciao

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Oui met avec indexof je test si le nombre est la mais je sais pas lequel est-ce , je dois donc tester tous les nombres?

  6. #6
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    A coup de Regex ou de .indexOf et Substring comme dit plus haut.
    Montre nous le code de la page si tu veut qu'on soit plus précis

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    Je te donne un exemple de ce que je fait

    je recherche une serie de caractère unique qui se retrouve avant l'information que je cherche genre

    InfoTbl.Contains(valItem)
    InfoTbl est ma pageweb et valItem est la série recherché
    ValItem = <div class=""last"">
    ensuite je prend l'index de cette endroit et je conte combien de caractère je doit passer avant l'information que je veux que j'ajoute à l'index ...

  8. #8
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    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.
    Tu peux faire ça pour récupérer ce que tu veux:
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    intNb1 = InStr(1, strCodeSource, ">") 'Position du caractère ">" dans le code source
    intNb2 = InStr(intNb1, strCodeSource, "<") 'Position du caractère "<" dans le code source à partir de la position précédente (intNb1)
    strRecup = Mid(strCodeSource, intNb1, intNb2 - intNb1) 'Récupère le string qu'il y a entre les deux positions (intNb1 et intNb2)


    intNb1/intNb2 sont des integer
    strCodeSource est un string contenant le code source de la page web
    strRecup est un string récupérant les données que tu veux.

    Bien entendu, c'est à toi d'identifier les caractères html qui entour le chiffre que tu veux récupérer.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut
    Merci pour les réponses j'arrive à ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
      Dim webRequest As WebRequest
            Dim webResponse As WebResponse
     
            webRequest = HttpWebRequest.Create("http://www.google.com/webhp?hl=fr")
            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)<br/>
                        For Each match As Match In matches
                            TextBox1.Text += match.Value
                            Dim strCodesource = TextBox1.Text
                            Dim intNb1 = InStr(1, strCodesource, "10") 'Position du caractère ">" dans le code source
                            Dim intNb2 = InStr(intNb1, strCodesource, "15") 'Position du caractère "<" dans le code source à partir de la position précédente (intNb1)
                            Dim strRecup = Mid(strCodeSource, intNb1, intNb2 - intNb1) 'Récupère le string qu'il y a entre les deux positions (intNb1 et intNb2)
                        Next
                    End If
                Loop
            End Using
    Problème j'ai l'erreur suivante
    L'argument 'Start' doit être supérieur à zéro.
    sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim intNb2 = InStr(intNb1, strCodesource, "15")

  10. #10
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Bonsoir,

    intNb1 donc sûrement être égal à -1 car il n'a pas trouvé la chaîne de caractères.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Pourtant quand j'enlève
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
         Dim strCodesource = TextBox1.Text
                            Dim intNb1 = InStr(1, strCodesource, "10") 'Position du caractère ">" dans le code source
                            Dim intNb2 = InStr(intNb1, strCodesource, "15") 'Position du caractère "<" dans le code source à partir de la position précédente (intNb1)
                            Dim strRecup = Mid(strCodeSource, intNb1, intNb2 - intNb1) 'Récupère le string qu'il y a entre les deux positions (intNb1 et intNb2)
    La textbox m'affiche cette suite de nombre :
    885917553127213272137553127213204101000110100010500038081720362
    000049645812341113122719711024100010001971363627100115009955551
    312252312340023611427255181432177717773044520131119999993027150
    003000012032000000000055180000271111111139660222221222223222210
    033326379443340028031110276777162147000258859132402048571999999
    000182505806039258335101919767676820100844448321114641052200300
    30030033084113000
    la chaîne n'est donc pas vide ...
    Une erreur de code?

  12. #12
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Le code que j'ai donné permet d'isoler le chiffre que tu veux récupérer dans le code source récupéré.
    Par exemple, tu récupères un code source de ce style:
    <div>
    <p class="bidule">23413</p>
    </div>

    Si tu veux récupérer le chiffre 23413, tu fais comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    intNb1 = InStr(1, strCodeSource, "<p class=""bidule"">") 
    intNb1 = InStr(intNb1, strCodeSource, ">")
    intNb2 = InStr(intNb1, strCodeSource, "</p>")
    strRecup = Mid(strCodeSource, intNb1, intNb2 - intNb1)
    Mais bon, je me demande si tu as besoin de faire ça au vu de ton code précédent........

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    J'ai essayer comme ça pour récupérer le 3eme 0 en partant de la fin mais toujours la même erreur ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
       Dim strCodesource = TextBox1.Text
                                Dim intNb0 = InStr(1, strCodesource, 
     
    "885915482776227867277622786754827762278672041010001101000105000
    3808172036200004964581234111312271971102410001000197136362710011
    5009955551312252312340023611427255181432177717773044520131119999
    9930271500030000120320000000000551800002711111111396602222212222
    2322221003332637944334002803111027677716214700025885913240204857
    1999999000182505806039258335101919767676820100844448321114641052
    20030030030033084113000")
                                Dim intNb1 = InStr(intNb0, strCodesource, 
     
    "885915482776227867277622786754827762278672041010001101000105000
    3808172036200004964581234111312271971102410001000197136362710011
    5009955551312252312340023611427255181432177717773044520131119999
    9930271500030000120320000000000551800002711111111396602222212222
    2322221003332637944334002803111027677716214700025885913240204857
    1999999000182505806039258335101919767676820100844448321114641052
    20030030030033084113") 'Position du caractère ">" dans le code source
                                Dim intNb2 = InStr(intNb0, strCodesource, "00") 'Position du caractère "<" dans le code source à partir de la position précédente (intNb1)
                                Dim strRecup = Mid(strCodesource, intNb0, intNb2 - intNb1) 'Récupère le string qu'il y a entre les deux positions (intNb1 et intNb2)

  14. #14
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Tu n'as pas compris ce que fait le code donné.
    Que veux-tu faire réellement car ton code change à chaque fois?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Ba j'aimerais pas exemple récupérer le 3eme 0 en partant de la fin

  16. #16
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Citation Envoyé par yonpo Voir le message
    Tu n'as pas compris ce que fait le code donné.
    Que veux-tu faire réellement car ton code change à chaque fois?
    Citation Envoyé par hugo7 Voir le message
    Ba j'aimerais pas exemple récupérer le 3eme 0 en partant de la fin
    Citation Envoyé par hugo7 Voir le message
    Personne?
    Tant que tu n'aura pas explicité ce que tu recherche, le contexte de la recherche, on ne pourra pas t'aider

  17. #17
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Citation Envoyé par hugo7 Voir le message
    Ba j'aimerais pas exemple récupérer le 3eme 0 en partant de la fin
    C'est quand bizarre de connaître la valeur de ce qu'on doit récupérer.... Un type oui mais une valeur précise.... Car si tu connais la valeur, pas besoin de la récupérer parce que tu la connais déjà.......
    Que veux-tu faire: récupérer un chiffre dans le code source d'une page web ou bien récupérer un caractère dans une chaine?
    Expliques ce que tu veux réellement!

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Bon j'ai une textbox dans une page web contenant un chiffre ou un nombre que je ne connais pas .
    Je voudrais le récupérer .
    D'avance merci

  19. #19
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    D'accord.
    Dans le 9ième poste tu récupères un string dans input. Montres nous ce qu'il contient.

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    442
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 442
    Par défaut réponse
    Tu parles de cet imput?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       Dim input As String
                  Do While stream.Peek >= 0
                        input = stream.ReadLine
    Si oui à la fin de la troisième ligne de code il contient tous le code html de la page chargeée , soit dans ce cas la page d'accueil de google.

Discussions similaires

  1. Récuperer données page web
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/09/2010, 19h51
  2. besoin d'aide pour récuperer valeur page web
    Par moldock dans le forum Débuter
    Réponses: 6
    Dernier message: 27/07/2009, 14h45
  3. récuperer une page web en java
    Par hélvète dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 30/04/2008, 22h02
  4. récuperer contenu page web en c
    Par hitcher48 dans le forum Développement
    Réponses: 4
    Dernier message: 25/04/2007, 20h13
  5. Récuperer Titre page web en cours!!!
    Par GeDeon35 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 31/05/2005, 23h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo