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 :

Alternative/Astuce getElementsByClassName (web requests)


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 33
    Points : 17
    Points
    17
    Par défaut Alternative/Astuce getElementsByClassName (web requests)
    Bonjour tout le monde,

    Tout est dit dans le titre, mais bon il vaut mieux une phrase : "Sur vb.net il est possible de faire .getElementById / GetElementsByName etc etc ... Y a t il une astuce pour faire un GetElementsByClassName étant donné que ça n'existe pas par défaut?". L'objectif ça serait de faire comme pour un web control d'internet explorer .getElementsByClassName("XXXX")(Y).innerText par exemple.

    Voici mon morceau de code qui marche pour un ID :
    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
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
     
            Dim Test2 As String = "http://vi.vipr.ebaydesc.com/ws/eBayISAPI.dll?ViewItemDescV4&item=182246994036&t=1475242705000&tid=7710&category=115699&seller=www.expondo.de*&excSoj=1&excTrk=1&lsite=77&ittenable=false&domain=ebay.de&descgauge=1"
            Dim ResultatTest2 As String = GetInnertextClassName(Test2, "anzeige-nummer")
            MessageBox.Show(ResultatTest2)
        End Sub
     
        Public Function GetInnertextClassName(ByVal TheLink As String, ByVal ClassN As String) As String
            Dim req As HttpWebRequest = DirectCast(HttpWebRequest.Create(TheLink), HttpWebRequest)
            req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"
            Dim resp As HttpWebResponse = DirectCast(req.GetResponse, HttpWebResponse)
     
            Dim sr As New IO.StreamReader(resp.GetResponseStream)
            Dim doc As New mshtml.HTMLDocument
            Dim iDocument As mshtml.IHTMLDocument2 = doc
            iDocument.open()
            iDocument.write(sr.ReadToEnd)
            iDocument.close()
     
            Return doc.getElementById(ClassN).innerText
     
            sr.Close()
            resp.Close()
        End Function
    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 33
    Points : 17
    Points
    17
    Par défaut
    Bonjour,

    Merci pour ton aide Wallace, mais bien évidemment, avant de poster une question sur un forum j'ai fait mes recherches de mon côté. Je suis déjà tombé sur cette page, mais je n'ai pas réussi à le faire fonctionner cet exemple.
    Qui plus est, je vois pas comment avec cette formule on pourrait extraire le .innerText du X ème élément qui a pour classeName "closeWindow" par exemple.

    Si quelqu'un pouvait même avoir un exemple bidon qui marche ça serait génial : $

    Merci d'avance

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 98
    Points : 41
    Points
    41
    Par défaut
    Méthode longue mais tu peux essayer de récupérer le code de la page puis tenter une approche avec le split, tu devrais t'en sortir avec des conditions if startwith end with contains etc..

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/08/2009, 10h48
  2. [1.x] Web Request Post
    Par pittacos dans le forum Symfony
    Réponses: 1
    Dernier message: 27/01/2009, 17h35
  3. Réponses: 0
    Dernier message: 17/09/2008, 13h55
  4. Réponses: 0
    Dernier message: 23/05/2008, 13h04
  5. [Alternance][Idf] Développeur web
    Par Bouki dans le forum Demandes
    Réponses: 0
    Dernier message: 17/02/2008, 11h41

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