Hallo zusammen,
ich habe versucht, mit dem VBA Programm die Daten von Immobilien24 auszulsesen. Jedoch stoppt das Program immer bei der Zeile
e = Int(Result.innerText) / 20
mit dem Laufzeitfehler 91.
Ich habe auch noch ähnliche Programme für andere Seite erstellt, da hatte ich jedoch kein Problem. Daher weiß ich ehrlich gesagt nicht, warum es nicht funktioniert ...
Mein ganzes Code ist wie folgt:
Option Explicit
Sub Immobilienscout24()
'Deklarationen
Dim Starttime As Double
Dim MinutesElapsed As String
Dim ws As Worksheet
Dim objHTTP As XMLHTTP60
Dim i As Long, e As Long, o As Long
Dim StartEnd As Range
Dim url As String
Dim Result As Object, Title As Object
Dim oHtml As New MSHTML.HTMLDocument
'Starttime check Applaufzeit
Starttime = Timer
'Deklaration des Worksheet
Set ws = Tabelle1
'HTTP Request
Set objHTTP = New XMLHTTP60
'Loop starten i ist von 1 bis 30
url = "https://www.immobilienscout24.de/Suche/radius/wohnung-mieten?centerofsearchaddress=M%C3%BCnchen;;Bhf%20M%C3%BCnchen%20Siemenswerke;;;&numberofrooms=2.0-&pricetype=calculatedtotalrent&geocoordinates=48.0943091;11.5326999;3.0&pagenumber=" & i
'Aufruf der Webseite mit GET request
With objHTTP
.Open "GET", url
.Send
End With
'Warten bis HTTP request geladen ist
Do While objHTTP.readyState < 4
DoEvents
Loop
'Aufruf der Webseiteninformation in Text
Set oHtml = New MSHTML.HTMLDocument
oHtml.body.innerHTML = objHTTP.responseText
Dim Result As Object
Set Result = oHtml.getElementsByClassName("palm-hide margin-bottom-m")(0)
e = Int(Result.innerText) / 20
For i = 1 To e
url = "https://www.immobilienscout24.de/Suche/radius/wohnung-mieten?centerofsearchaddress=M%C3%BCnchen;;Bhf%20M%C3%BCnchen%20Siemenswerke;;;&numberofrooms=2.0-&pricetype=calculatedtotalrent&geocoordinates=48.0943091;11.5326999;3.0&pagenumber=" & i
For o = 0 To 19
'Aufruf der Webseite mit GET request
With objHTTP
.Open "GET", url
.Send
End With
'Warten bis HTTP request geladen ist
Do While objHTTP.readyState < 4
DoEvents
Loop
'Aufruf der Webseiteninformation in Text
oHtml.body.innerHTML = objHTTP.responseText
Set StartEnd = ws.Range("A" & ws.Range("A99999").End(xlUp).Row)
'Title auslesen
Set Title = oHtml.getElementsByClassName("result-list-entry__brand-title")(o)
ws.Range("C" & StartEnd.Row + 1).Value = Title.innerText
Next o
Next i
Set oHtml = Nothing
Set objHTTP = Nothing
MinutesElapsed = Format((Timer - Starttime) / 86400, "hh:mm:ss")
MsgBox "This code ran successfully in " & MinutesElapsed & " minutes", vbInformation
End Sub
Vielen Dank im Voraus und euch eine schöne Zeit.
Gruß
SW
|