Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Anzahl von Einträgen aus Internetseite in Zelle

Forumthread: Anzahl von Einträgen aus Internetseite in Zelle

Anzahl von Einträgen aus Internetseite in Zelle
26.06.2025 13:50:21
Christian
Hallo,

ich bitte euch um Hilfe, bzw. euch mal diese Seite anzuschauen.

https://www.imdb.com/de/search/name/?birth_date=1995-06-23%2C2007-06-24&gender=female&adult=include&count=250

da steht oben in der Mitte 1-250 von 13.128

ist es möglich, diese Zahl 13.128 auszulesen und ohne 1000er Trennung als Zahl ohne Nachkommastellen in die erste freie Zelle der Spalte 1P!AI zu schreiben?

Ich bitte darum, nicht die URL in den Code zu schreiben, sondern auf die Zelle zu verweisen, in der die URL steht, Hilfe!F2

Habe noch 2 andere Links, deren Seiteninhalt sich nur durch andere Suchkriterien auf der Seite unterscheiden. Hoffe dass wenn ich mal einen Code für eine Seite habe, ich den Rest selber hinbekomme.

Danke
Christian

PS: Kann sein, dass sich die Zahl 13.128 ändert, bis ihr die Seite öffnet


Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Im Folgenden...
26.06.2025 14:34:26
Case
Moin Christian, :-)

... eine Möglichkeit mit VBA über "MSXML2.XMLHTTP": ;-)
Option Explicit

Public Sub Main()
Dim objRegEx As Object
Dim objMatch As Object
Dim strText As String
Dim objXML As Object
Set objXML = CreateObject("MSXML2.XMLHTTP")
With objXML
.Open "GET", "https://www.imdb.com/de/search/name/?birth_date=1995-06-23,2007-06-24&gender=female&adult=include&count=250", False
.SetRequestHeader "User-Agent", "Mozilla/5.0"
.Send
strText = .ResponseText
End With
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.Pattern = "von ([\d\.,]+)"
.IgnoreCase = True
.Global = False
Set objMatch = .Execute(strText)
If objMatch.Count > 0 Then
MsgBox "Gesamtzahl: " & Replace(objMatch(0).SubMatches(0), ",", "")
Else
MsgBox "Keine Gesamtzahl gefunden."
End If
End With
End Sub


ABER!!! Sobald an der Seite etwas geändert wird, musst du unter Umständen anpassen. ;-)

Web-Scraping ist in der Regel immer heikel. Wenn z. B. auf der Seite mit Java Daten nachgeladen werden usw.. ;-)

Mit Power Query kannst du die Zahl auch auslesen (habe es eben probiert). Aber auch da kann es zu Problemen kommen. ;-)

Servus
Case
Anzeige
AW: Im Folgenden...
26.06.2025 15:33:22
Christian
Hallo Case, erstmal vielen Dank.

Zum Glück ist meine Erfahrung dass IMDB an ihrer Seite eher selten was ändert, gefühlt alle 10 Jahre.

Auf jeden Fall funktioniert es, vielen Dank.

Mache mich dann jetzt daran das auch mit den anderen beiden Links umzusetzen, denke das bekomme ich hin.

Gruß
Christian
Anzeige
finaler Code
26.06.2025 15:48:46
Christian
der funktioniert:

Option Explicit


Public Sub HoleIMDBGeburtszahlen()
Dim objRegEx As Object
Dim objMatch As Object
Dim strText As String
Dim objXML As Object
Dim wsHilfe As Worksheet, ws1P As Worksheet
Dim urls(1 To 3) As String
Dim results(1 To 3) As Variant
Dim i As Integer
Dim nextRow As Long

Set wsHilfe = ThisWorkbook.Sheets("Hilfe")
Set ws1P = ThisWorkbook.Sheets("1P")

' URLs aus Hilfe!F2:F4 lesen
For i = 1 To 3
urls(i) = wsHilfe.Range("F" & i + 1).Value
Next i

Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.Pattern = "von ([\d\.,]+)"
.IgnoreCase = True
.Global = False
End With

For i = 1 To 3
Set objXML = CreateObject("MSXML2.XMLHTTP")
With objXML
.Open "GET", urls(i), False
.SetRequestHeader "User-Agent", "Mozilla/5.0"
.Send
strText = .ResponseText
End With

Set objMatch = objRegEx.Execute(strText)
If objMatch.Count > 0 Then
results(i) = CLng(Replace(objMatch(0).SubMatches(0), ",", ""))
Else
results(i) = ""
End If
Next i

' Nächste freie Zeile in Spalte AI suchen
nextRow = ws1P.Cells(ws1P.Rows.Count, "AI").End(xlUp).Row + 1

' Ergebnisse in AI (35), AJ (36), AK (37) schreiben
For i = 1 To 3
ws1P.Cells(nextRow, 34 + i).Value = results(i)
Next i
End Sub
Anzeige
AW: Powershell
26.06.2025 14:44:01
Fennek
Hallo,

hier ist ein Powershell-Code:

[code]
$url = 'https://www.imdb.com/de/search/name/?birth_date=1995-06-23%2C2007-06-24&gender=female&adult=include&count=250'
$useragent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0'

$ret = iwr $url -UserAgent useragent -DisableKeepAlive

$ret.ParsedHtml.body.getElementsByClassName('sc-7d56ecad-3 dPzhgh')[0].innerHTML.split(' ')[2]
[/code]

mfg
Anzeige
AW: Powershell
26.06.2025 15:36:01
Christian
Hallo Fennek,

vielen Dank erstmal.
Von der theorie her funktioniert der Code. Ich habe nur keine Ahnung ob ich das Ergebnis von Powershell in meine Excel Tabelle übertragen kann und wenn ja wie.

Aber interessant, sowas auch mal als Powershell Lösung zu sehen.

Gruß
Christian
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18