VBA - html quellcode auslesen
07.07.2021 16:11:39
Fred
Hallo Excel Experten,
ich möchte nach wie vor Daten von einer Webseite abfragen und in weiteren verlinkten websites entsprechend weitere abfragen zufügen.
mein Vorhaben; mit dem pq-editor entsprechende abfragen zu erstellen lege ich mal (kurz) auf's eis und verfolge einen "neuen ansatz".
Darum geht es:
Ich möchte feststellen, welche qualität eine webseite mit ihren predictions (vorhersagen) hat.
Basis sind die Fußballspiele der seite https://www.totalcorner.com/match/today
mit dem pq-editor die daten abrufen ist ja keine große sache. allerdings möchte ich noch weitere daten von jedem angegebenen spiel erhalten. an diese daten kommt man allerdings nur dran, wenn man eine weitere seite öffnet. mit dem pq-editor schaffe ich es leider nicht, diese "detail-infos" eines spiels abzufragen,- deshalb
ein neuer ansatz
ich möchte das mit vba erreichen.
makro1
sammelt Link' s von der Seite https://www.totalcorner.com/match/today
die zu diesen "Detail-Info-Seiten" führen
Sub such_links()
Dim IEApp As Object, allX As Object
Dim zeile As Long
Dim sText As String
' dies makro sammelt alle Links, die in der class "text-center td_analysis" an erster stelle stehen !!
zeile = 10
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = False
IEApp.Navigate "https://www.totalcorner.com/match/today/" 'anpassen
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.document.ReadyState = "complete"
For Each allX In IEApp.document.all
If allX.classname = "text-center td_analysis" Then
With Tabelle1
sText = Split(Split(allX.outerHTML, "href=""")(1), """")(0)
.Hyperlinks.Add Anchor:=.Cells(zeile, 1), Address:="https://www.totalcorner.com/" & sText, _
TextToDisplay:=Replace(Mid(sText, 200), ".html", "")
End With
zeile = zeile + 1
End If
Next
IEApp.Quit
Set IEApp = Nothing
MsgBox "Fertig"
End Sub
Das Makro läuft wie gewünscht
Makro 2
soll auf den "Detail-Info-Seiten" bestimmt(e) Text(e) finden
Sub such_Prediction()
Dim IEApp As Object
Dim textsuche As Object
Dim zeile As Long
Dim spalte As Integer
zeile = 10
spalte = 2
Set IEApp = CreateObject("InternetExplorer.Application")
IEApp.Visible = True
IEApp.Navigate ("https://www.totalcorner.com/match/corner-stats/104830269/England-vs-Denmark") 'Daten Seite
Do: Loop Until IEApp.ReadyState = 4 'Geladen
Set textsuche = IEApp.document.getElementsByClassName("match-facts-pred")(0)
If Not textsuche Is Nothing Then
Tabelle1.Cells(zeile, spalte) = textsuche.innertext
Else
MsgBox "Wert nicht vorhanden"
End If
IEApp.Quit
MsgBox ("Fertig")
End Sub
Dies Makro findet was es soll,- allerdings für nur eine (vorgegebene Adresse)
Was ich bräuchte:
Ein Makro, was die Link's von "Makro 1" nacheinander aufruft und gewünschten Text findet und mir in Tabelle schreibt,- in entsprechende Zeile.
Das was ich in dieser Hinsicht bisher habe,- https://www.herber.de/bbs/user/147003.xlsb
Kann evt. ein Guru mal draufschaun und evt. Lösungsansatz zeigen?
Gruss
Fred