· API-Schlüssel ・ Suchmaschinen-ID Beides erhalten Sie beim Aktivieren der benutzerdefinierten Google-Such-API.
Dieser Artikel war hilfreich, um den API-Schlüssel und die Suchmaschinen-ID abzurufen. Google-Suchergebnisse mithilfe der benutzerdefinierten Such-API abrufen
Klicken Sie hier für die Bildsuche. Bildersammlung mit der benutzerdefinierten Google-Such-API
Laden Sie 10 Bilder aus den Suchergebnissen herunter. Das Speicherziel wird im Download-Ordner angegeben.
CustomSearch.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class CustomSearch {
public static void main(String[] args) throws IOException {
String key = "API-Schlüssel";
String cx = "Suchmaschinen-ID";
String qry = "Zeichen, das Sie suchen möchten";
String link = null;
List<String> linkList = new ArrayList<String>();
//Stellen Sie eine Anfrage an die Google Custom Search API
URL url = new URL(
"https://www.googleapis.com/customsearch/v1?key=" + key + "&cx=" + cx + "&q=" + qry
+ "&searchType=image");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader(
(conn.getInputStream())));
//Die Antwort ist json
//Der Prozess des Findens der URL von json
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
if (output.contains("\"link\": \"")) {
link = output.substring(output.indexOf("\"link\": \"") + ("\"link\": \"").length(),
output.indexOf("\","));
System.out.println(link);
linkList.add(link);
}
}
conn.disconnect();
//Der Vorgang des Herunterladens eines Bildes von einer URL.
URL imageURL = null;
HttpURLConnection urlConnection = null;
for (int i = 0; i < 10; i++) {
try {
imageURL = new URL(linkList.get(i));
urlConnection = (HttpURLConnection) imageURL.openConnection();
//Wenn dies der Fall ist, lassen Sie die Umleitung zu
urlConnection.setInstanceFollowRedirects(true);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//InputStream ist eine Oberklasse aller Klassen, die Byte-Eingabestreams darstellen.
InputStream in = null;
try {
in = urlConnection.getInputStream();
} catch (IOException e) {
e.printStackTrace();
}
byte[] buf = new byte[4096];
int readSize;
int total = 0;
try {
FileOutputStream fos = new FileOutputStream("C:\\Users\\user\\Downloads\\" + "test" + i + ".jpg ");
//Die Lesemethode hat einen Wert, wenn keine zu lesenden Bytes vorhanden sind, da der Stream das Ende der Datei erreicht hat-1 wird zurückgegeben.
//Das erste gelesene Byte ist Element b[0]Das nächste Byte ist b[1]Es wird in gespeichert und so weiter.
//Die maximale Anzahl von Bytes, die gelesen werden können, entspricht der Länge von b.
while (((readSize = in.read(buf)) != -1)) {
total = total + readSize;
//Schreibt readSize-Bytes ab der Offset-Position 0 des angegebenen Byte-Arrays in diesen Dateiausgabestream.
fos.write(buf, 0, readSize);
}
fos.flush();
fos.close();
in.close();
} catch (FileNotFoundException e) {
System.out.println("Dateifehler");
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Size:" + total);
}
}
}
Wirf das Suchzeichen als Anfrage an die API. Eine Antwort wird mit JSON-Daten zurückgegeben. Suchen Sie die URL des Bildes aus den JSON-Daten. Dann verbinden Sie sich mit der URL und laden Sie herunter! nur das!
Recommended Posts