it-swarm.com.de

So exportieren Sie Google-Suchergebnisse

Ich möchte eine Liste der Titel und URLs für die Suchergebnisse einer bestimmten Abfrage. In meiner speziellen Situation gibt es nur ungefähr 20 Ergebnisseiten, daher sind es nicht dass viele Daten.

6
Larsenal

Viele Antworten hier, aber YQL, auch wenn Google nicht sofort einsatzbereit ist, hilft die folgende Abfrage.

select title,url from search.web where query="pizza"

Die RESTful-URL für diese Ergebnisse lautet:

http://query.yahooapis.com/v1/public/yql?q=select%20title%2Cabstract%2Curl%20from%20search.web%20where%20query%3D%22pizza%22&format=json&diagnostics=true&callback= cbfunc

YQL selbst kann hier gefunden werden: http://developer.yahoo.com/yql/ Es ist ein wirklich nützliches Kit von Yahoo.

6
Mark Allanson

Ich kenne Google nicht, aber ich weiß, dass Bing eine Option zum Exportieren von Suchseiten als RSS hat. Sie fügen der Abfragezeichenfolge einfach format = rss hinzu. Zum Beispiel

http://www.bing.com/search?q=london&format=rss

Dies ergibt 10 Ergebnisse pro Seite, also für die zweite Seite, die Sie hinzufügen

http://www.bing.com/search?q=london&format=rss&first=11

und der dritte

http://www.bing.com/search?q=london&format=rss&first=21

und so weiter...

2
Bessi

Am Ende habe ich HTML aus den Suchergebnissen ausgeschnitten und eingefügt und dann mit jQuery die Titel und URLs abgerufen.

0
Larsenal

Probieren Sie dieses Chrome Plugin aus, um das Google-Ergebnisse in einer CSV-Datei zu erhalten. Sie finden die Titel und andere Metadateninformationen in der CSV-Datei.

0
Arnold A

Ich würde eine Änderung von Fehler beim Abrufen des URL-Ergebnisses einer Google-Suche für 200 Ergebnisse unter Verwendung von Excel vorschlagen.

Kopieren Sie den Code und fügen Sie ihn in ein Excel-Modul ein (Alt+F11, rechte Taste am linken Panel (VBAProject, Modul einsetzen). Wechseln Sie zu dem Menü Extras, Verweisen, und wählen Sie Microsoft Internet Controls, Microsoft XML 6.0, Microsoft HTML-Objektbibliothek aus.

Wenn Sie Ihre Abfragen in der Spalte A in einem Blatt des Dokuments haben, klicken Sie auf die Wiedergabeschaltfläche des Modulfensters, um den Code auszuführen.

Sub XMLHTTP8()

Dim url As String, lastRow As Long
Dim XMLHTTP As Object, html As Object, objResultDiv As Object, link As Object, objH3 As Object
Dim start_time As Date
Dim end_time As Date
Dim vN As Variant
lastRow = Range("A" & Rows.Count).End(xlUp).row

Dim cookie As String
Dim result_cookie As String

start_time = Time
Debug.Print "start_time:" & start_time


For i = 1 To lastRow
c = 0
d = 1

vN = Array("", "&start=100")
For u = LBound(vN) To UBound(vN)
url = "https://www.google.com/search?num=100" & vN(u) & "&site=webhp&source=hp&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")
    If objResultDiv.innerText = "" Then Exit For

                Set objH3 = objResultDiv.getElementsByTagName("H3")
                     For Each objH3sep In objH3
                     On Error Resume Next
                     Set link = objH3sep.getElementsByTagName("a")(0)
                     str_text = Replace(link.innerHTML, "<EM>", "")
                     str_text = Replace(str_text, "</EM>", "")
                     c = c + 2
                     d = d + 2
                     Cells(i, c) = str_text
                     Cells(i, d) = link.href
                     Next
    DoEvents
Next
Next

With ActiveSheet
Range("A1").Resize(Cells.Find(what:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).row, _
Cells.Find(what:="*", SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Column).Select
Selection.Copy
Cells(Application.Rows.Count, 1).End(xlUp).Offset(2, 0).Value = "Results"
Cells(Application.Rows.Count, 1).End(xlUp).Offset(2, 0).Select
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
    With Selection
    .ColumnWidth = 95
    .wraptext = True
    End With

For Each xCell In Selection
If InStr(1, xCell.text, "http://") > 0 Then
correct = Replace(xCell.text, "http://", "")
xCell.Value = correct
ActiveSheet.Hyperlinks.Add anchor:=xCell, Address:="http://" & xCell.Value
ElseIf InStr(1, xCell.Value, "https://") > 0 Then
correct = Replace(xCell.Value, "https://", "")
xCell.Value = correct
ActiveSheet.Hyperlinks.Add anchor:=xCell, Address:="https://" & xCell.Value
End If
Next xCell

End With

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 Sub

google search

0
Ferroao