Какова моя цель: Создание списка записей с помощью webScapring. Скребок отлично работает и создает список. Он проверяет, существует ли значение. Только если значение не существует, оно будет добавлено в список. Список будет постоянно расширяться.
Ожидаемый результат: Если значение существует в списке, оно будет пропущено. Если значение не существует, оно будет записано в следующей свободной строке без свободных строк.
Фактический результат: Это делает для каждого существующего значения пустую строку. Например, если все еще существует 4 значения, создается 4 пустых строки.
Явная опция
Sub ExposeID()
Dim browser As Object 'Aufnehmen der verwendeten Instanz des Browsers (Internet Explorer)
Dim knotenAst As Object 'Aufnehmen einer HTML Struktur aus dem Browser Dokument
Dim n As Integer
Dim url As String 'Aufnehmen der auszulesenden Adresse
Dim ExposeID As String
Dim letztezeile As Integer
Dim nodeList As Object, i As Long
Dim ZählerÜbersprungen As Integer
ZählerÜbersprungen = 0
Dim ZählerHinzugefügt As Integer
ZählerHinzugefügt = 0
Set browser = CreateObject("internetexplorer.application")
browser.Visible = False
For n = 0 To 1
url = "https://www.immobilienscout24.de/Suche/de/niedersachsen/oldenburg-oldenburg/haus-kaufen?pagenumber=" & n + 1
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
Set nodeList = browser.document.querySelectorAll(".result-list__listing[data-id]")
For i = 0 To nodeList.Length - 1
Dim FindString As String
Dim Rng As Range
FindString = nodeList.Item(i).getAttribute("data-id")
If Trim(FindString) <> "" Then
With Sheets("IDs").Range("A:A") 'searches all of column A
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
ZählerÜbersprungen = ZählerÜbersprungen + 1
Else
Cells(letztezeile + i + 1, 1) = nodeList.Item(i).getAttribute("data-id")
ZählerHinzugefügt = ZählerHinzugefügt + 1
End If
End With
End If
Next i
Next n
Set nodeList = Nothing
i = 0
n = 0
browser.Quit
MsgBox "Es wurden " & ZählerHinzugefügt & " Einträge hinzugefügt." & vbCrLf & "Es wurden " & ZählerÜbersprungen & " Einträge übersprungen.", vbOKOnly
ZählerÜbersprungen = 0
ZählerHinzugefügt = 0
End Sub