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

Code überträgt keine Zahlen mehr von URL ins Blatt

Forumthread: Code überträgt keine Zahlen mehr von URL ins Blatt

Code überträgt keine Zahlen mehr von URL ins Blatt
25.03.2026 18:40:42
Christian
Hallo,

ich bitte euch darum, mal zu schauen, weshalb das Makro in der Datei keine Zahlen ins Blatt 1P einträgt.

Vor 2 Wochen hat es noch funktioniert, ich als Laie tippe mal darauf, dass sich an den Internetseiten etwas geändert hat, mir fehlen aber die Kenntnisse um herauszufinden, was...

Übertragen werden soll, wenn ihr die erste der URL öffnet steht oben in der Mitte 1–250 von 13.007 (Zahl kann sich bis ihr es ausführt ändern), diese 13007 soll nach 1P!AL übertragen werden. Analog die beiden anderen URL

Danke
Christian

https://www.herber.de/bbs/user/180456.xlsm
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code überträgt keine Zahlen mehr von URL ins Blatt
26.03.2026 00:02:29
ralf_b
möglicherweise erkennt die Webseite deine Aufrufe als automatisierte Abfrage und sperrt die Antwort.
Wenn dem so ist, dann mußt du dir andere Scraping Varianten überlegen. Ich hatte das neulich erst und das war nicht lustig.
Es ist nicht das Selbe wenn du per Vba eine Webseite aufrufst oder per Browser. Die Server erkennen mittlerweile die Unterschiede und liefern denn keine echten Daten mehr aus. Aber hier kann dir ein Spezialist für Webabfragen eher weiterhelfen. Das ist dann aber kein Excel-Thema mehr.

Anzeige
Darauf hatte ich...
31.03.2026 03:53:42
Case
Moin Christian, :-)

... dich bei dem letzten Thema hingewiesen. ;-)

HTML-Parsing oder DOM-Scraping lassen sich relativ eifach blockieren - und das macht IMDb wohl (eventuell über AWS WAF). ;-)

Die ganzen Tricks mit Header erweitern usw. funktionieren dann nicht mehr. ;-)

Was (noch) stabil geht ist Selenium. Wenn du diesen Weg gehen möchtest, kann ich dir ein Beispiel zeigen. ;-)

Servus
Case

Anzeige
AW: Darauf hatte ich...
31.03.2026 09:22:36
Christian
Hallo Case,

ich erinner mich.
Hatte ja gehofft, dass IMDB einfach nur etwas an der Seite geändert hat und deshalb der Code einfach nicht mehr passt, weil er an der falschen Stelle oder nach dem falschen Inhalt sucht...

kannst du das vlt. nochmal überprüfen? Vielen Dank schonmal

Ich hatte mich letztens selber in puncto IMDB mit Selenium probiert, im Sinne von Eintragen in Formulare. Hat im Endeffekt funktioniert, nur um dann festzustellen, es hat ewig gedauert bis es geklappt hat und das ich so viele Pausen habe einbauen müssen, dass es von Hand schneller gewesen wäre.

Der einzige Vorteil der mir das bringen würde, ist der Grund, der bereits der Grund war, weshalb ich es mit VBA mache, Vermeidung von Tippfehlern.
Ich meine, wenn es dir unbedingt in den Fingern juckt, mir da ein Beispielscript zu zeigen, kannst du das gerne machen, aber ich frage mich dann in diesem Fall, ob die Mühe nicht größer ist, als der Ertrag.
Daher meine eigentliche Bitte, einfach mal kurz schaun, ob sich an der IMDB Seite inhaltlich etwas geändert hat, weshalb es nicht mehr funktioniert und den VBA Code entsprechend anpassen, ansonsten werde ich es wohl von Hand eintragen.

DAnke
Christian

Anzeige
Wenn du dir den...
31.03.2026 13:26:08
Case
Moin Christian, :-)

... Quelltext der Seite (STRG+u in Firefox) anschaust, dann ist die Zahl nicht da, sondern sowas: ;-)

#############
token.awswaf.com
challenge.js
AwsWafIntegration.getToken()

#############

Das ist eine AWS WAF Bot‑Schutzseite - gehört also zu Amazon Web Services WAF (Web Application Firewall). ;-)

Mit MSXML2.XMLHTTP, Power Query und Konsorten bekommst du nur einen leeren ResponseText. ;-)
Da werden Blöcke mit JavaScript nachgeladen. ;-)

Selenium startet einen Browser - damit geht es (noch). ;-)

Es ist etwas "frickelig" einzurichten - klappt dann aber: ;-)

Userbild

Mit diesem Code (für eine Zeile aus deinem Beispiel): ;-)
Option Explicit

Public Sub Main()
Dim strURL As String
Dim lngTMP As Long
strURL = Tabelle2.Range("F2").Value
lngTMP = fncIMDb(strURL)
Tabelle1.Range("AK2").Value = lngTMP
End Sub
Function fncIMDb(strURL As String) As Long
Dim objCount As Object
Dim objRegEx As Object
Dim objElem As Object
Dim strText As String
Dim objBot As Object
Set objBot = CreateObject("Selenium.ChromeDriver")
With objBot
.Start
.Get strURL
.Wait 5000
Set objElem = .FindElementsByXPath("//*[contains(text(),'von') or contains(text(),'of')]")
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "^\d+[-–]\d+\s+(?:von|of)\s+([\d\.,]+)"
For Each objCount In objElem
strText = objCount.Text
If objRegEx.Test(strText) Then
fncIMDb = CLng(Replace(Replace(objRegEx.Execute(strText)(0).SubMatches(0), ".", ""), ",", ""))
.Quit
Exit Function
End If
Next objCount
.Quit
fncIMDb = -1
End With
End Function

Der ChromeDriver ist am einfachsten zu steuern - Edge und Firefox sind hakeliger. ;-)

Geschwindigkeit kommt dann, wenn es funktioniert über "chrome-headless" - also ohne Browserfenster. ;-)
Dann noch bei .Wait experimentieren. Z. B. statt ".Wait 5000" sowas - ".WaitForElementByXPath "//*[contains(text(),'von') or contains(text(),'of')]", 10000". ;-)
Wenn du mehrere ziehst, dann darauf achten, dass du den Browser nur einmal startest - nicht jedesmal. ;-)

Alles nur Ansätze. ;-)

Servus
Case
Anzeige
AW: Wenn du dir den...
31.03.2026 17:08:27
Christian
Hallo Case,

danke für deine Erklärung, die ich soweit auch nachvollziehen kann.
Aber etwas anderes verstehe ich trotzdem nicht.

Wenn ich mir den Quellcode view-source:https://www.imdb.com/de/search/name/?gender=female&adult=include&count=250
anschaue, findet die Firefox Suche mit Strg + F nirgends "awswaf". Sowohl wenn ich angemeldet, als auch wenn ich abgemeldet bin bei IMDB.

Dafür dann aber sehr wohl das hier:
Userbild

in Zeile 1339.

Das Makro funktioniert natürlich trotzdem nicht.
Werde mich dann jetzt mal mit deinem Code beschäftigen
Christian


Anzeige
Ja - das stimmt, aber...
31.03.2026 17:51:30
Case
Moin Christian, :-)

... das ist der fertig geladene Quelltext - nach Javascript geladen. ;-)

Wenn du per VBA zugreifst (das meinte ich mit Tricks, wie den Header erweitern): ;-)
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")

http.Open "GET", url, False
http.SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"
http.SetRequestHeader "Accept-Language", "de-DE,de;q=0.9,en;q=0.8"
http.SetRequestHeader "Accept", "text/html"
http.SetRequestHeader "Connection", "keep-alive"
http.Send
html = http.ResponseText

Dann kommt dabei sowas (als Bild - wegen dem vielen HTML-Gedöns) raus (im Direktfenster): ;-)

Userbild

Nochmal - ich glaube nicht, dass du mit Power Query oder VBA ohne Selenium die Zahl auf Dauer bekommst. ;-)

Servus
Case
Anzeige
AW: Ja - das stimmt, aber...
02.04.2026 19:36:41
Christian
Hallo Case,

sorry bin gestern notfallmäßig ins Krankenhaus eingeliefert worden. Kann mich erst wieder um Sachen wie Excel kümmern, wenn das überstanden ist.

Danke für deine Hilfe und euch allen frohe Ostertage
Christian
AW: Wenn du dir den...
31.03.2026 17:42:44
Christian
so hab Chrome installiert, den Chromedriver, , Selenium, in den VBA Extras Selenium Type Library und Microsoft VBScript Regular Expressions 5.5 ausgewählt, den Pfad zu Chromedriver.exe gesetzt und trotzdem bei Set objBot = CreateObject("Selenium.ChromeDriver") Autmoatisierungsfehler.

Dasselbe wenn ich es mit dem Firefox entsprechenden Sachen probiere.

Naja um ehrlich zu sein, das wird mir langsam zu kompliziert, werde dann wohl ode rübel doch die Daten von Hand abschreiben, es sei denn du kannst aus dem Codeteil den ich eben per Screenshot gepostet habe, etwas rauslesen, was das ganze doch wieder auf dem herkömmlichen Weg den ich vorher hatte, ans Laufen bringt.
Werde das oben genannte jetzt wieder deinstallieren.

Gruß
Christian

PS: Als ich sagte, dass ich Einträge bei IMDB mal am Laufen hatte, war das mit PowerShell und Selenium.
Wie gesagt, das wird mir jetzt zu kompliziert, nur um Tippfehler zu vermeiden.
Anzeige
Ja - beim Einrichten...
31.03.2026 18:18:16
Case
Moin Christian, :-)

... ist Selenium (bzw. die richtigen Treiber) etwas zickig. ;-)

Habe Chrome 146 - und dann den direkten Download für den ChromeDriver: ;-)
https://storage.googleapis.com/chrome-for-testing-public/146.0.7680.0/win64/chromedriver-win64.zip

Ist für 64 Bit - und für meine Chrome-Version. Wie gesagt klappt mit deiner Testdatei prima. ;-)

Aber von Hand geht auch. ;-)

Servus
Case
Anzeige
AW: Ja - beim Einrichten...
07.04.2026 14:37:02
Christian
Hallo Case,

bin wieder zuhause.
Wie gesagt, ich bekomme nach wie vor einen Automatisierungsfehler.

Aber ich denke, ich lasse es dann beim Abtippen. Hab jetzt dem Makro, dass u.a. auch diesen teil ausführt noch gesagt, es soll die 3 Internetseiten im Browser öffnen, dass ich das nicht selbst machen muss... mit dem Rest muss ich dann leben.

Vielen Dank
Christian
Anzeige
AW: Code überträgt keine Zahlen mehr von URL ins Blatt
26.03.2026 07:22:07
Christian
Hallo Ralf,

naja schade, aber troztdem danke für deine Mühe
Christian
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