Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Googlesuche=> 5 Ergebnisse notieren

Googlesuche=> 5 Ergebnisse notieren
19.04.2016 10:56:38
Albert
Hallo zusammen,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Googlesuche=> 5 Ergebnisse notieren
23.04.2016 07:02:51
fcs
Hallo Albert,
probiere es mal wie folgt, die 5 Einträge werden in einer Schleife abgefragt und nach rechts in der Zeile eingetragen.
Falls weniger als 5 Suchergebnisse vorkommen können, dann muss noch eine Fehlerbehandlung eingebaut werden.
Gruß
Franz
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 intK as Integer
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")
For intK = 0 To 4
Set objH3 = objResultDiv.getelementsbytagname("H3")(intK)
Set link = objH3.getelementsbytagname("a")(intK)
str_text = Replace(link.innerHTML, "", "")
str_text = Replace(str_text, "", "")
.Cells(i, 5 + intK * 2) = str_text
.Cells(i, 6 + intK * 2) = link.href
Next
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

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige