Geben Sie die erste Bildquelle von Google Images zurück

10

Gibt es eine Möglichkeit, die erste Bildquelle aus der Google-Suche abzurufen, wenn ich einen Suchbegriff habe?

Zum Beispiel, wenn Eingabe ist tomato, wäre Ausgabehttp://www.cksinfo.com/clipart/food/fruits/tomatoes/tomato.png

Vielen Dank!

3mpetri
quelle

Antworten:

5

Die benutzerdefinierte Google-Such-API enthält jetzt Bilder. Sie sind auf 100 Anfragen pro Tag vor der Abrechnung beschränkt. Dies ist jedoch die einzig legitime Möglichkeit, mit Google nach Ihnen zu suchen.

Wenn der Link fehlleitet:

Stile aufrufen

Es gibt mehrere Möglichkeiten, die API aufzurufen:

SICH AUSRUHEN

Die Übertragung des Repräsentationsstatus in der benutzerdefinierten Google-Such-API unterscheidet sich etwas von herkömmlichem REST. Anstatt Zugriff auf Ressourcen bereitzustellen, bietet die API Zugriff auf einen Dienst. Infolgedessen stellt die API einen einzelnen URI bereit, der als Service-Endpunkt fungiert.

Sie greifen auf den API-Dienstendpunkt der benutzerdefinierten Suche von Google mit dem HTTP-Verb GET REST zu, wie in API-Vorgängen beschrieben. Sie übergeben die Details aller Suchanfragen als Abfrageparameter.

Das spezifische Format für den einzelnen API-URI für die benutzerdefinierte Google-Suche lautet:

https://www.googleapis.com/customsearch/v1?parameters

Dabei sind Parameter alle Parameter, die auf die Abfrage angewendet werden sollen. Weitere Informationen finden Sie unter Arbeiten mit Suchergebnissen und Referenz zu Abfrageparametern im Dokument Verwenden von REST.

Hier ist ein Beispiel dafür, wie dies in der Google Custom Search-API funktioniert, die eine benutzerdefinierte Test-Suchmaschine nach Vorlesungen durchsucht:

GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures

REST von JavaScript

Sie können die benutzerdefinierte Google-Such-API mithilfe von REST aus JavaScript mithilfe des Rückrufabfrageparameters und einer Rückruffunktion aufrufen. Auf diese Weise können Sie umfangreiche Anwendungen schreiben, in denen benutzerdefinierte Suchdaten angezeigt werden, ohne serverseitigen Code zu schreiben.

Im folgenden Beispiel wird dieser Ansatz verwendet, um die erste Seite der Suchergebnisse für die Abfragetomate anzuzeigen:

<html>
  <head>
    <title>JSON/Atom Custom Search API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function hndlr(response) {
      for (var i = 0; i < response.items.length; i++) {
        var item = response.items[i];
        // in production code, item.htmlTitle should have the HTML entities escaped.
        document.getElementById("content").innerHTML += "<br>" + item.htmlTitle;
      }
    }
    </script>
    <script src="https://www.googleapis.com/customsearch/v1?key=YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=tomato&callback=hndlr">
    </script>
  </body>
</html>

Sie würden natürlich den src des Skripts aktualisieren, um den Wert der Eingabe einzuschließen, von der aus Sie suchen.

Cubap
quelle
Sollen wir den API-Schlüssel öffentlich in der scriptURL entsorgen ? o_O
T.Todua
3

Sie können dazu die Google Image Search-API verwenden. Leider wurde es entfernt, sodass Sie möglicherweise feststellen, dass die Anzahl der Anfragen pro Tag begrenzt ist. Ich bin mir nicht sicher, ob es eine neue API gibt, die diese ersetzt.

John Conde
quelle
Es gab keinen Ersatz, und diese bestimmte API ist tatsächlich auf der Liste derjenigen, die definitiv heruntergefahren werden (im Gegensatz zu nur veraltet ohne weiteren Zeitplan für das Herunterfahren), gemäß dem kürzlich veröffentlichten API-Beitrag "Frühjahrsputz" , obwohl dies wahrscheinlich der Fall ist die Reichweite von drei Jahren (siehe Abschnitt 1.3).
'24.
Hm ok, aber kann ich vielleicht irgendwie den Inhalt der Ergebnisseite abrufen und den ersten Bildlink analysieren oder so? Gibt es überhaupt eine Problemumgehung?
3mpetri
Sie können eine Suche durchführen und dann den HTML-Code analysieren, um das erste Ergebnis zu erhalten. Das ist definitiv machbar. Es verstößt jedoch wahrscheinlich gegen die Nutzungsbedingungen von Google.
John Conde