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

Contribuez Discussion :

fonction getclassName sur un page du net


Sujet :

Contribuez

  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut fonction getclassName sur un page du net
    bonjours a tous

    dans la même ligné que récupérer le code source d'une page sur le net
    je vous propose aujourd'hui
    une fonction bien sympathique "getclassname"

    en gros c'est quoi?

    cette fonction recherche dans le code source de la page toute les classes du même nom

    e vous les affiches ou ce que vous voulez avec les balise s ou non

    voila le code il est largement commenté
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    Option Explicit
    'varaible pour le chemin complet du fichier de destination
    Dim l_URL As String        ' variable pour le lien de la page html
    Dim Lapage_en_HTML         'variable pour l'object "Microsoft.XMLHTTP"( l'object XML)
    'variable pour le texte a découpé par les ""chr(13)""
    Dim i As Long              ' variable pour le decompte des lignes dans le texte de sortie en html ou texte
     
     
     
    Sub test5()
        l_URL = "http://www.programme-tv.net/programme/programme-tnt.html"    'la variable l_URL contient le lien de la page html que l'on veux récupérer
        Dim elements As Variant    'elements etant destiné a tere un tableau il sera donc variant
        Dim classe_recherchée As String    ' variable representant la classe recherchée
        classe_recherchée = "has_boutons "">"
        'La variable elements prend la valeur du tableau (classe recherché)
        'elements = Getclassname(l_URL, classerecherchée) 'avec les balises
        elements = Getclassname(l_URL, classe_recherchée, True)    'sans les balises(format texte)
        'on affiche les données par classe
        For i = 1 To 18
            MsgBox elements(i)
        Next
    End Sub
     
    Public Function Getclassname(sURL, classe As String, Optional au_format_text As Boolean = "false")
        Dim tablo()    'variable tableau donc variant
        Set Lapage_en_HTML = CreateObject("Microsoft.XMLHTTP")    'instancie l'object
        Lapage_en_HTML.Open "GET", sURL    'ouvre l'url dans l'object
        Lapage_en_HTML.Send    'envoie la requette
        Do: DoEvents: Loop While Lapage_en_HTML.ReadyState <> 4    'attendre que la page soit chargée
    'le code source est dans """"Lapage_en_HTML.ResponseText""""
    'on coupe le code source en splitant sur la variable "classe"
        Getclassname = Split(Lapage_en_HTML.ResponseText, classe)
        'on va maintenant redimensionner le tableau classe par classe afin d'en supprimmer toute trace de code html
        For i = 1 To 18    'UBound(Getclassname)rien que les 18 premieres m'interressent
            ReDim Preserve tablo(1 To i)
            ' si la variable au_format_text est true
            If au_format_text = True Then
                With CreateObject("htmlfile")
                    'on y ecrit le codesource de la classe(1) de Getclassname
                    .Write Split(Lapage_en_HTML.ResponseText, classe)(i)
                    'Ici on garde que le texte au format texte( sans les balises)
                    tablo(i) = .body.innerText
                End With
            Else
                ' si la variable au_format_text est false
                tablo(i) = Split(Lapage_en_HTML.ResponseText, classe)(i)
            End If
        Next
        'on remplace le tableau qu'il y a dans getclassname par ce qu'il y a dans tablo
        Getclassname = tablo
    End Function
    voili voilou

    heu.... qu'en pensez vous

  2. #2
    Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Mars 2016
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mars 2016
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    j’essaie de faire un test sur votre fonction avec les paramètres

    l_URL = "http://grammar.reverso.net/P_2_reason_plus_so_plus_consequence.shtml"
    classe_recherchée = "'submit_over'"

    J'ai une erreur d’exécution '9' sur la ligne 41 du code ' .Write Split(Lapage_en_HTML.responseText, classe)(i)

    Pouvez vous m'aider svp

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Points : 12 068
    Points
    12 068
    Billets dans le blog
    8
    Par défaut re
    re
    ma fois la bonne blague si tu avais regardé avec l'inspecteur de document"F12" tu te serait rendu compte que la classe change et "submit_over" c'est sa classe que quand la souris se promene dessus
    sinon c'est "submit"

    les evenement sont coder "inline" on lme vois bien dans l'arborescence sur cette capture

    Nom : Capture.JPG
Affichages : 195
Taille : 227,4 Ko

    demo en animé regarde bien la classe quand on passe dessus et que l'on se retire avec la souris dans l'inspecteur de document a droite
    Nom : demo.gif
Affichages : 248
Taille : 727,4 Ko

    voila tu a ta reponse et tu sais quoi faire

Discussions similaires

  1. Afficher graphique (Excel) sur une page ASP.NET
    Par supra3000 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/02/2009, 17h32
  2. Impossible d'afficher une image sur une page ASP.Net
    Par Jean-Claude Dusse dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/01/2009, 20h23
  3. Utlisation d'autres langues sur des pages ASP.NET 2005
    Par nkonito dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/07/2007, 15h56
  4. Réponses: 1
    Dernier message: 04/04/2006, 11h29

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