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 |
Partager