# Wie Google & Co mit Java nutzen?



## raptor (29. Okt 2007)

Hallo zusammen, 
ich möchte über verschiedene Suchmaschinen im Internet Suchabfragen durchführen und natürlich das Ergebnis weiter verarbeiten. Jetzt habe ich dafür die Klasse HttpClient aus den Jakarta Commons genommen. Blöd ist natürlich, dass man "nur" den gesamten HTML-Code als Antwort erhält. Jetzt müsste ich quasi alles, was ich nicht haben will drum herum weg schneiden.
Gibt es da geeignetere Möglichkeiten für?


----------



## Guest (29. Okt 2007)

Es gibt von Google "paar" APIs, die du verwenden kannst. Siehe: http://code.google.com/apis/


----------



## raptor (29. Okt 2007)

Ich möchte ja nicht nur Google benutzen, sondern auch Yahoo und x-beliebige weitere Suchmaschinen.


----------



## tuxedo (29. Okt 2007)

Dann wirst du dir weitere APIs suchen müssen. Es gibt keinen einheitlichen SUchmaschinenstandard mit dem man Anfragen stellen kann und hinterher ein gut sortiertes, einfach zu parsendes Ergebnis bekommt.

- Alex


----------



## raptor (29. Okt 2007)

Hm, alles klar. Damit weiß ich schon mal Bescheid. Danke.


----------



## raptor (29. Okt 2007)

Wenn ich noch mal kurz nachfragen dürfte, welche von den hundert APIs nimmt man denn praktischer Weise?
http://code.google.com/apis/

Ich möchte einfach nur einen Suchbegriff übergeben und das Suchergebnis in einer möglichst einfach zu verarbeitenden Form zurück bekommen. Fühle mich vom API-Angebot ein wenig erschlagen.


----------



## Gast (29. Okt 2007)

Ich hätte dir da die Google Soap Search Api nahegelegt. Diese scheint aber nicht mehr supported zu werden. In Kombination mit Axis hätte man da recht schnell einen Client generieren lassen können.


----------



## Wildcard (29. Okt 2007)

Jup, die gibt's nicht mehr.


----------



## raptor (31. Okt 2007)

Hm, da steht, dass man die AJAX Search API statt dessen verwenden soll. Nur glaube ich nicht, dass es das ist, was ich haben möchte. Ich will dem Benutzer ja keine Möglichkeit geben Suchbegriffe einzugeben oder ihm die dann direkt anzeigen. Soll alles im Hintergrund laufen. Außerdem ist das jetzt nicht für eine bestimmte Webseite gedacht. Beim Anmelden muss ich die ja auch angeben.


----------



## Guest (31. Okt 2007)

Google ist nicht die einzige Suchmaschine, die es so gibt.
Eine Möglichkeit sind vielleicht die WebServices von Yahoo. http://developer.yahoo.com/search/index.html


----------



## raptor (31. Okt 2007)

grml. Das ist mir selber klar. Ich möchte aber auch nicht nur eine Suchmaschine benutzen. Hatte oben schon mal geschrieben, dass auch Yahoo o.ä. verwendet werden soll.


----------



## MASTERmind (31. Okt 2007)

und wenn du eine Enum mit mehereren URLs kapselst und diese dann per http request belästigst?
da gibts feine sachen für


----------



## raptor (12. Nov 2007)

MASTERmind hat gesagt.:
			
		

> und wenn du eine Enum mit mehereren URLs kapselst und diese dann per http request belästigst?
> da gibts feine sachen für


Öhm, verstehe ich nicht so ganz. 
Ich hatte es mal ausprobiert, mit den Commons Bibliotheken einen HttpRequest zu senden. Klappt ja auch alles wunderbar, aber da bekomme ich "nur" den reinen HTML-Code. Was ich letztendlich möchte, ist eine Liste von Suchtreffern.

edit: Bei dem oben genannten Link von yahoo ist es so, wie es sein sollte. Das Ergebnis kommt als XML zurück. Damit kann man ja was anfangen. Sowas suche ich auch für Google (oder diverse andere Suchmaschinen).
http://search.yahooapis.com/WebSearchService/V1/webSearch?appid=myapp&query=test


----------



## Murray (12. Nov 2007)

Ein allgemeines API für alle Suchmaschinen, mit dem man sich überall die reinen Ergebnislisten ohne Werbung etc. abholen kann, wird es wohl so schnell nicht geben - damit würde den Suchmaschinenbetreibern doch die Existenzgrundlage entzogen.


----------



## raptor (14. Nov 2007)

Mir bleibt also quasi nichts anderes übrig als den HTML Kram von Google auseinander zu fummeln oder mir doch eine der angebotenen API raus zu suchen, von denen ich im Moment noch gar nicht weiß, welche mir weiterhelfen könnte...


----------



## DocRandom (14. Nov 2007)

..und warum verwendest Du nicht *HTTPUnit* zum einlesen Deiner Websites?
Egal welcher Suchmaschinen-Anbieter!
Du mußt nur eben wissen wie die einzelne Suchmaschine die Abfrageparameter erwartet.
Den HTML - Code kannste dann locker mit  HTTPUnit analysieren!

lg
DocRandom


----------



## raptor (14. Nov 2007)

DocRandom hat gesagt.:
			
		

> ..und warum verwendest Du nicht *HTTPUnit* zum einlesen Deiner Websites?


Weil ich hier nach Tipps gefragt habe. Gucke es mir mal an. Danke.


----------

