Ich benutze die Google-Bildersuch-API. Bis gestern hat es funktioniert, aber heute morgen steht "Diese API ist nicht mehr verfügbar"
Ist es offiziell geschlossen, oder einen Fehler an meiner Seite?
Anfrage
https://ajax.googleapis.com/ajax/services/search/images?v=1.0&rsz=8&q=cute+kittens
Antwort
{"responseData": null, "responseDetails": "This API is no longer available.", "responseStatus": 403}
Dies ist die vollständige URL-Vorlage, die verwendet werden soll
Wir können unnötige Parameter eliminieren.
https://www.googleapis.com/customsearch/v1?q= {searchTerms} & num = {count?} & start = {startIndex?} & lr = {sprache?} & safe = {safe?} & cx = { cx?} & cref = {cref?} & sort = {sort?} & filter = {filter?} & gl = {gl?} & cr = {cr?} & googlehost = {googleHost?} & c2coff = {disableCnTwTranslation?} & hq = {hq? } & hl = {hl?} & siteSearch = {siteSearch?} & siteSearchFilter = {siteSearchFilter?} & exactTerms = {exactTerms?} & excludeTerms = {excludeTerms?} & linkSite = {linkSite?} & orTerms = {orTerms?} & relatedSite? = {dateRestrict?} & lowRange = {lowRange?} & highRange = {highRange?} & searchType = {searchType} & fileType = {fileType?} & rights = {rights?} & imgSize?} & imgType = {imgType?} & imgType?} & imgType? ?} & imgDominantColor = {imgDominantColor?} & alt = json
Ich benutze
Die Antwort, die ich gefunden habe, war die Verwendung der Custom Search Engine (CSE) API von Google. Beachten Sie, dass dies auf 100 kostenlose Anfragen pro Tag beschränkt ist.
cx
erstellen und ändern, um nach Bildern zu suchencx
in Ihrer Browser-URL.Die URL des API-Endpunkts lautet https://www.googleapis.com/customsearch/v1
Die folgenden JSON-Parameter werden für diese API verwendet:
q
: Gibt den Suchtext annum
: gibt die Anzahl der Ergebnisse an. Erfordert einen ganzzahligen Wert zwischen 1 und 10 (einschließlich)start
: Der "Offset" für die Ergebnisse, bei dem die Suche beginnen soll. Erfordert einen ganzzahligen Wert zwischen 1 und 101.imgSize
: die Größe des Bildes. Ich habe "medium"
verwendetsearchType
: muss auf "image"
eingestellt seinfiletype
: Gibt den Dateityp für das Bild an. Ich habe `" jpg "verwendet, aber Sie können dies weglassen, wenn die Dateierweiterung für Sie keine Rolle spielt.key
: ein API-Schlüssel, erhalten von https://console.developers.google.com/cx
: Die benutzerdefinierte Suchmaschinen-ID aus dem vorherigen AbschnittStellen Sie einfach eine GET
-Anforderung her, indem Sie die obigen Parameter als JSON an den API-Endpunkt (ebenfalls oben aufgeführt) übergeben.
Hinweis: Wenn Sie in den Suchmaschineneinstellungen eine Liste von Referrern festlegen, funktioniert der Besuch der URL über Ihren Browser wahrscheinlich nicht. Sie müssen einen AJAX - Aufruf (oder den entsprechenden Befehl aus einer anderen Sprache) von einem in dieser Liste angegebenen Server aus durchführen. Es funktioniert nur für die Referrer, die in den Konfigurationseinstellungen angegeben wurden.
Referenz: https://developers.google.com/custom-search/json-api/v1/reference/cse/list
Jetzt können Sie Bilder mit der API zur benutzerdefinierten Bildsuche suchen.
Sie können dies mit zwei Schritten tun:
1) Holen Sie sich CUSTOM_SEARCH_ID
Gehe zu - https://cse.google.ru/cse/all
Hier müssen Sie eine neue Suchmaschine erstellen. Tun Sie dies und aktivieren Sie die Bildsuche dort.
Bildschirm (ich bin russisch ... sorry)
holen Sie sich dann diese Suchmaschinen-ID. Drücken Sie dazu auf die Schaltfläche Code abrufen:
Und dort finden Sie eine Zeile mit cx = "hier wird Ihre CUSTOM_SEARCH_ID":
OK. Es ist fertig, jetzt der zweite Schritt:
2) Holen Sie sich SERVER_KEY
Gehen Sie zu google Console - https://console.developers.google.com/project
Klicken Sie auf die Schaltfläche zum Erstellen eines Projekts, geben Sie den Namen und andere erforderliche Informationen ein. Wählen Sie dieses Projekt aus, und wählen Sie Apis aktivieren aus Suchen Sie jetzt nach der benutzerdefinierten Suchmaschine.
Jetzt müssen wir zu Anmeldeinformationen gehen und einen neuen Serverschlüssel erstellen:
OK. Jetzt können wir die Bildsuche verwenden.
Abfrage:
https://www.googleapis.com/customsearch/v1?key=SERVER_KEY&cx=CUSTOM_SEARCH_ID&q=flower&searchType=image&fileType=jpg&imgSize=xlarge&alt=json
Ersetzen Sie SERVER_KEY und CUSTOM_SEARCH_ID und rufen Sie diese Anfrage auf.
Limit: kostenlos können Sie nur 100 Bilder pro Tag suchen. Vielen Dank für Ihre Aufmerksamkeit.
Wenn dies nur für Ihre eigenen Zwecke (nicht für die Produktion) gedacht ist und Sie nicht vorhaben, Google Bildersuche zu missbrauchen, können Sie einfach die erste Bild-URL aus den Google-Suchergebnissen mit JSOUP extrahieren.
Zum Beispiel: Code zum Abrufen der Bild-URL der ersten Miniaturansicht:
public static String FindImage(String question, String ua) {
String finRes = "";
try {
String googleUrl = "https://www.google.com/search?tbm=isch&q=" + question.replace(",", "");
Document doc1 = Jsoup.connect(googleUrl).userAgent(ua).timeout(10 * 1000).get();
Element media = doc1.select("[data-src]").first();
String finUrl = media.attr("abs:data-src");
finRes= "<a href=\"http://images.google.com/search?tbm=isch&q=" + question + "\"><img src=\"" + finUrl.replace(""", "") + "\" border=1/></a>";
} catch (Exception e) {
System.out.println(e);
}
return finRes;
}
Führen:
frage - Bildsuchbegriff
ua - Benutzeragent des Browsers
Ändern Sie die API-URL in Google Benutzerdefinierte Bildsuche
Geben Sie dieselben Parameter zusammen mit API KEY und CX an.
Die Yahoo Boss API ist ein sinnvoller Ersatz, obwohl sie nicht kostenlos ist und die Ergebnisse nicht ganz so gut sind.
UPDATE: YAHOO BOSS JSON-Such-API wird am 31. März 2016 eingestellt