Über Java Google Suche nutzen

Bitte aktiviere JavaScript!
Hallo,

ich hoffe das ist das richtige Unterforum, bin mir nicht ganz sicher wo die Frage einzuordnen ist.

Ich möchte ein Tool schreiben, das eine Anfrage an die Google Bildersuche stellt (nach einem auf dem Rechner gespeicherten Bild soll gesucht werden).

Wichtigste Frage: Ist sowas überhaupt möglich? Bzw lässt Google das zu, dass man quasi "nicht per Hand" sucht?

Falls ja:

Wie realisiert man sowas? Bzw unter welches Thema fällt das überhaupt, damit ich ein bisschen recherchieren kann? Muss ich da sozusagen den Job des Browsers übernehmen und eine HTTP Request senden? Und wenn ja, wie finde ich raus, welche Form das ganze haben muss?

Danke schonmal im Vorraus :toll:
 
A

Anzeige


Vielleicht hilft dir dieser Kurs hier weiter: (hier klicken)
Du hast deine eigene Frag beantwortet, oder?;)

In der Tat musst du einen HTTP Request senden. das kannst du im Prinzip mit jeder Bibliothek machen, die "so auf dem Markt" ist. Ich nehme öfter Apache HTTPComponent
Weiterhin musst du GENAU auf die Adresszeile im Browser achten, denn so siehst du welche Parameter gesendet werden müssen. Notfalls hilft auch Google weiter?
Hier mal eine kleines Snippet, das eine "normale" Suche nach Turtle ausführt;)
Java:
   public static void main(String[] args) throws Exception {
	CloseableHttpClient httpclient = HttpClients.createSystem();
	// @formatter:off
	URI uri = new URIBuilder()
	 .setScheme("http")
	 .setHost("www.google.de")
	 .setPath("/search")
	 .setParameter("q", "Turtle")
	 .build();
	// @formatter:on
	HttpGet httpget = new HttpGet(uri);
	CloseableHttpResponse httpResponse = httpclient.execute(httpget);
	BufferedReader rd = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent()));

	StringBuffer result = new StringBuffer();
	String line = "";
	while ((line = rd.readLine()) != null) {
	    result.append(line);
	    result.append("\r\n");
	}
	System.out.println(result);
    }
 
Zuletzt bearbeitet:
Vielen Dank für die Antwort. Bin erst jetzt dazu gekommen, damit etwas anzustellen. Allerdings liefert der Code mir nicht den Quellcode zurück, der im Browser angezeigt wird. Es scheint, als würde da nur etwas verkürztes zurückkommen.. Mache das aber auch über die Bildersuche..

Gibt es evtl noch einen anderen Ansatz, mit vorhandener URL den Quellcode einer Seite auszulesen - so wie das ein Browser etwa machen würde?

Danke..
 
Ich rate dir, die Antwort mal in eine Datei zu schreiben und dir die dann im Browser anzuzeigen. Klappte bei mir;)
 
Btw: Ich glaube die Coolen Kids verwenden jetzt kein Apache HTTP mehr (oder ist das Spring?), sonder OkHttp! :-D

Obwohl... Am Ende ist es für solche Sachen wohl doch eher Wumpe... ;-)
 
Vergiß nicht dich zu erkundigen wie Dein Vorhaben rechtlich abgesichert ist. Google versteht da keinen Spaß wenn Du dennen einfach Ihre Daten klaust (Auch wenn es anders herum natürlich vollkommen ok ist :D )

Gruß

Claus
 
Danke für die Hinweise. Ja, ob das rechtlich in Ordnung ist, steht natürlich auf einem anderen Blatt.. Google will natürlich, dass man nur über den Browser oder die API auf deren Services zugreift. Aber denkt ihr, die werden da gegen jedes kleine Script etwas unternehmen, was im Monat paar mal auf die Suche zugreift? Ich hoffe mal nicht..

Im Übrigen klappt das bei mir immer noch nicht - den Quelltext den ich zurückbekomme, ist immer der der Startseite, obwohl die URL definitiv die der Bildersuche ist. Die HTTP Request ist also scheinbar als von einem Programm erkennbar. Kann man das irgendwie ändern?
 
Die API nutzen?

Alles andere ist doch eh Käse. Da ändern die was an Ihrem Ausgabeformat und deine Software läuft nicht mehr.

Gruß

Claus
 
Hey allerseits,

ich bin bei meinen Recherchen auf dieses Forum gestoßen. V. a. turtles Hinweise haben mir sehr geholfen. Aber wie kann man mit dem URIBuilder von Apache die Anzahl der Suchergebnisse bestimmen? Ich bekomme momentan nur 12.
Danke! LG
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben