diesen Quellcode verwende ich um eine Googlesuche zu starten. Heißt, ich hab eine Liste mit Namen "Test2015", in der in der Spalte A Suchbegriffe stehen und Google soll danach suchen.
Das ganze funktioniert wunderbar, notiert mir in die Spalte E einen Begriff und in Spalte F sogar die Webadresse.
Nun würde ich aber gern die Top 5-Treffer notiert haben wollen und nicht nur das erste Ergebnis.
Hätte jemand von euch eine Idee wie das funktioniert?
Danke und Gruß
A.
Sub Websuche()
Dim url As String, lastRow As Long
Dim XMLHTTP As Object, html As Object, objResultDiv As Object, objH3 As Object, link As Object
Dim start_time As Date
Dim end_time As Date
Dim cookie As String
Dim result_cookie As String
Dim i As Long
Dim str_text As String
With Sheets("Test2015")
lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
.Range(.Cells(3, 5), .Cells(lastRow, 20)).ClearContents
start_time = Time
Debug.Print "start_time:" & start_time
For i = 3 To lastRow
url = "https://www.google.co.in/search?q=" & Cells(i, 1) & "&rnd=" & WorksheetFunction. _
RandBetween(1, 10000)
Set XMLHTTP = CreateObject("MSXML2.serverXMLHTTP")
XMLHTTP.Open "GET", url, False
XMLHTTP.setRequestHeader "Content-Type", "text/xml"
XMLHTTP.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; rv:25.0) Gecko/ _
20100101 Firefox/25.0"
XMLHTTP.send
Set html = CreateObject("htmlfile")
html.body.innerHTML = XMLHTTP.ResponseText
Set objResultDiv = html.getelementbyid("rso")
Set objH3 = objResultDiv.getelementsbytagname("H3")(0)
Set link = objH3.getelementsbytagname("a")(0)
str_text = Replace(link.innerHTML, "", "")
str_text = Replace(str_text, "", "")
Cells(i, 5) = str_text
Cells(i, 6) = link.href
DoEvents
Next
end_time = Time
Debug.Print "end_time:" & end_time
Debug.Print "done" & "Time taken : " & DateDiff("n", start_time, end_time)
MsgBox "done" & "Time taken : " & DateDiff("n", start_time, end_time)
End With
End Sub