Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WebseitenTabelle: Link(s) extrahieren

Forumthread: WebseitenTabelle: Link(s) extrahieren

WebseitenTabelle: Link(s) extrahieren
15.07.2024 16:33:14
Fred
Hallo Excel Profis,
Ich möchte aus dem Web https://www.soccerstats.com/latest.asp?league=belarus
die Ligatabelle in Excel einfügen. Das ist auf der Seite die:
Tabelle 9
Das ansich ist kein Thema,- was ich zudem möchte:
entweder die Clubnamen als Link,- so wie es auf der Webseite ist,
oder
in einer zuzüglich eingefügten Spalte den entsprechenden Link in jeder Zeile
Bisher habe ich herausgefunden, das die Tabelle9 wohl zu Beginn einen Leeren Spaltetitel hat.
Die Vereinsnamen (mit dem Link) wohl in der Spalte:
_1
steht.

Ich komme da nun wirklich nicht weiter...
Theoretisch könnte man doch die Links aus Spalte "_1" extrahieren. Eventuell mit "Text.BetweenDelimiters",- um den Link-Text zwischen href=" und " herauszuziehen ....
aber da bin ich klar überfordert,
kann ein Excel Expere mal drauf schaun und mir eventuell bitte eine Lösung anbieten
(bin echt schon genervt ..)
https://www.herber.de/bbs/user/170908.xlsb


Gruss
Fred


Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
15.07.2024 20:26:24
ralf_b
zeig doch mal wo da ein Link stehen soll. Ich sehe da nur die reinen Namen.
da steht z.b nur "Isloch" und wo siehst du den link: /team.asp?league=belarus&stats=1-isloch ??? der steht nur im Html Quellcode
Den wirst du dir zusammen bauen müssen. Da ist sicher noch das eine oder andere zu beachten.
Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
16.07.2024 12:36:06
Fred
nun: durch eine Jahre-alte "Vorlage" von ralf_b,- leicht verändert - habe ich nun die Links extrahieren können:
Sub test_Links1()

Dim ie As Object
Dim html As Object
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim lnk As Object
Dim i As Long
Dim ws As Worksheet

On Error Resume Next
Set ws = ThisWorkbook.Sheets("Liga")
On Error GoTo 0
If ws Is Nothing Then
MsgBox "kein 'Liga' Sheet", vbCritical
Exit Sub
End If

ws.Cells.Clear

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = False
ie.navigate "https://www.soccerstats.com/widetable.asp?league=belarus"

Do While ie.readyState > 4 Or ie.Busy
DoEvents
Loop

Set html = ie.document

Set tbl = html.getElementsByTagName("table")(9)

i = 1

For Each rw In tbl.getElementsByTagName("tr")
Set cl = rw.getElementsByTagName("td")(1)
If Not cl Is Nothing Then
For Each lnk In cl.getElementsByTagName("a")
ws.Cells(i, 1).Value = lnk.innerText ' Team-Name
ws.Cells(i, 2).Value = lnk.href ' URL
i = i + 1
Next lnk
End If
Next rw

ie.Quit
Set ie = Nothing
Set html = Nothing
Set tbl = Nothing

End Sub


PS: Verweis / Microsoft HTML Object Library notwendig
Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
16.07.2024 22:31:03
ralf_b
wo hast du denn das rausgewühlt?
AW: WebseitenTabelle: Link(s) extrahieren
15.07.2024 20:50:34
Fred
Ja Ralf,
über den erw. Editor werde ich da wohl nicht ran kommen.
Vieleicht über Makro oder Python?
AW: WebseitenTabelle: Link(s) extrahieren
15.07.2024 23:11:40
Yal
Hallo Fred,

erst der Begriff "erw. Editor" hat mich klar gemacht, dass Du über eine Power Query Abfrage das Ergebnis haben möchte. Es war vorher nicht sichtbar (habe die Datei noch nicht angeschaut).

Power Query liefert Text oder Zahl. Mehr nicht. Ein Link wird als PQ-Ergebnis nie aktiv sein, weil es als Text gesehen wird.
Du wirst wohl die Link aktivieren müssen:
Sub Hyperlink_aktivieren()

Dim Z

Application.ScreenUpdating = False
Application.EnableEvents = False
With ActiveSheet
For Each Z In .Range("A:A").SpecialCells(xlCellTypeConstants)
Z.Hyperlinks.Add Z, Z.Value
Next
End With
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


VG
Yal
Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
15.07.2024 23:42:53
Fred
Vielen Dank, Yal
aber - was auch für mich recht schnell klar war, das die Werte in gewisser Spalte keine Links sondern reiner Text sind.
Es wird wohl lediglich im Quelltext ein Link "drüber gelegt".
Ich bleibe dran und werde weiter nach einer Lösung suchen.
Nochmals vielen Dank für deine Aufmerksamkeit und Hilfsbereitschaft.

Gruss
Fred

Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
Fred

... kann ein Excel,- html Experte mal drauf schaun und mir den Fehler sagen?!

Sub Link_extrahieren()

Dim ie As Object
Dim html As Object
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim lnk As Object
Dim i As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Belarus Team Links2"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.soccerstats.com/latest.asp?league=belarus"

Do While ie.readyState > 4 Or ie.Busy
DoEvents
Loop

Set html = ie.document
Set tbl = html.getElementsByTagName("table")(8)
If Not tbl Is Nothing Then
i = 1

For Each rw In tbl.getElementsByTagName("tr")
Set cl = rw.getElementsByTagName("td")(1) ' Annahme: 2. Spalte enthält den Link
If Not cl Is Nothing Then
For Each lnk In cl.getElementsByTagName("a")
ws.Cells(i, 1).Value = lnk.innerText ' Team-Name
ws.Cells(i, 2).Value = lnk.href ' URL
i = i + 1
Next lnk
End If
Next rw
Else

End If

ie.Quit
Set ie = Nothing
Set html = Nothing
Set tbl = Nothing

End Sub


Gruss
Fred

Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
Fred

.. kann ein Excel,- html Experte mal drauf schaun und mir den Fehler sagen?!

Sub Link_extrahieren()

Dim ie As Object
Dim html As Object
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim lnk As Object
Dim i As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Belarus Team Links2"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.soccerstats.com/latest.asp?league=belarus"

Do While ie.readyState > 4 Or ie.Busy
DoEvents
Loop

Set html = ie.document
Set tbl = html.getElementsByTagName("table")(8)
If Not tbl Is Nothing Then
i = 1

For Each rw In tbl.getElementsByTagName("tr")
Set cl = rw.getElementsByTagName("td")(1) ' Annahme: 2. Spalte enthält den Link
If Not cl Is Nothing Then
For Each lnk In cl.getElementsByTagName("a")
ws.Cells(i, 1).Value = lnk.innerText ' Team-Name
ws.Cells(i, 2).Value = lnk.href ' URL
i = i + 1
Next lnk
End If
Next rw
Else

End If

ie.Quit
Set ie = Nothing
Set html = Nothing
Set tbl = Nothing

End Sub


Gruss
Fred

Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
Fred

.. kann ein Excel,- html Experte mal drauf schaun und mir den Fehler sagen?!

Sub Link_extrahieren()

Dim ie As Object
Dim html As Object
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim lnk As Object
Dim i As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Belarus Team Links2"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.soccerstats.com/latest.asp?league=belarus"

Do While ie.readyState > 4 Or ie.Busy
DoEvents
Loop

Set html = ie.document
Set tbl = html.getElementsByTagName("table")(8)
If Not tbl Is Nothing Then
i = 1

For Each rw In tbl.getElementsByTagName("tr")
Set cl = rw.getElementsByTagName("td")(1) ' Annahme: 2. Spalte enthält den Link
If Not cl Is Nothing Then
For Each lnk In cl.getElementsByTagName("a")
ws.Cells(i, 1).Value = lnk.innerText ' Team-Name
ws.Cells(i, 2).Value = lnk.href ' URL
i = i + 1
Next lnk
End If
Next rw
Else

End If

ie.Quit
Set ie = Nothing
Set html = Nothing
Set tbl = Nothing

End Sub


Gruss
Fred

Anzeige
AW: WebseitenTabelle: Link(s) extrahieren
Fred

.. kann ein Excel,- html Experte mal drauf schaun und mir den Fehler sagen?!

Sub Link_extrahieren()

Dim ie As Object
Dim html As Object
Dim tbl As Object
Dim rw As Object
Dim cl As Object
Dim lnk As Object
Dim i As Long
Dim ws As Worksheet

Set ws = ThisWorkbook.Sheets.Add
ws.Name = "Belarus Team Links2"

Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "https://www.soccerstats.com/latest.asp?league=belarus"

Do While ie.readyState > 4 Or ie.Busy
DoEvents
Loop

Set html = ie.document
Set tbl = html.getElementsByTagName("table")(8)
If Not tbl Is Nothing Then
i = 1

For Each rw In tbl.getElementsByTagName("tr")
Set cl = rw.getElementsByTagName("td")(1) ' Annahme: 2. Spalte enthält den Link
If Not cl Is Nothing Then
For Each lnk In cl.getElementsByTagName("a")
ws.Cells(i, 1).Value = lnk.innerText ' Team-Name
ws.Cells(i, 2).Value = lnk.href ' URL
i = i + 1
Next lnk
End If
Next rw
Else

End If

ie.Quit
Set ie = Nothing
Set html = Nothing
Set tbl = Nothing

End Sub


Gruss
Fred

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige