# Daten von einem Server in eigenem Java-Programm benutzen



## Dooku (1. Mrz 2014)

Hi,
ist es möglich bestimmte Daten die ein Server bereitstellt in einem Java-Programm zu benutzen? Bspw. um Wetterdaten von unterschiedlichen Severn miteinander zu vergleichen... 
Für den Anfang würde es mir schon reichen die aktuelle Bundesliga-Tabelle von folgender Seite ( Die aktuelle Bundesliga 2013/2014 - Der 23. Spieltag - Fussballdaten - Die Fußballdatenbank ) als einfache txt-Datei per Java-Programm runterzuladen. Nur leider weis ich nicht wie man das bewerkstelligen könnte. Geht das und was müsste ich alles , neben Java, dafür können?


----------



## JavaMeister (1. Mrz 2014)

ja das geht.

neben java sind auch grundlagen in html und netzwerkprogrammierung sowie parsing notwendig.


----------



## Dooku (1. Mrz 2014)

Also Sockets, PHP und HTML...? Was wäre denn ein guter Ansatz?


----------



## Tobse (1. Mrz 2014)

Dooku hat gesagt.:


> Also Sockets, PHP und HTML...? Was wäre denn ein guter Ansatz?


PHP nein.

Es ist generell kein Guter einsatz, daten aus Webseiten abzugreiffen weil diese sich immer ändern können und damit dein Programm unbrauchbar machen.
Der Übung zuliebe taugt es aber.

[EDIT]Ich setze mal vorraus, dass du weisst was HTTP ist und wie das mit Sockets zusmmenhängt, das ist Grundlage für so etwas. Java bietet auch einige Klassen die das sehr vereinfachen.[/EDIT]

Du hast also folgende Möglichkeiten an die Tabelle zu kommen:
- Den Quelltest als DOM parsen lassen
- Per Regex die relevanten daten abgreiffen

Wenn DOM und Regex dir nichts sagen lies das erst nach, sonst wird das nix.


----------



## Dooku (1. Mrz 2014)

Das hatte ich allerdings auch nicht im Sinn. Wenn ich die Herangehensweise richtig verstanden habe, läuft das ja auf ziemliches Gefriemel mit dem ausgelieferten HTML-Dokument heraus. 

Ich dachte mehr daran direkt auf die Daten (die ja wahrscheinlich in einer Datenbank auf dem Sever liegen) zuzugreifen, sodass man diese quasi "runterlädt" (am besten sogar nur die Interessanten..). 
Aber mein Wissen auf diesem Gebiet ist leider noch allzu begrenzt und damit diese "Idee" ebenso vage.

Es gibt doch zahlreiche "Vergleichstools" (zb für Preise) auf Webseiten, wie kommen die denn an die Daten der ursprünglichen Seiten?


----------



## Dooku (19. Mrz 2014)

Wie ist dass denn, wenn die Website-Anbieter auch eine App anbieten? Hier muss doch eine Web-API existieren, über die man sehr einfach an gewünschten Daten kommen können müsste. Gibt es da Möglichkeiten, wenn die Web-API nicht (öffentlicht) dokumentiert ist?


----------



## Lit-Web (22. Mrz 2014)

Hallo,

also Wetter Seiten etc. stellen meistens APIs bereit. Du musst, wenn die API nicht öffentlich beschrieben ist, bei denen eben mal nachfragen in welchen Datenformaten die ausliefern. Meist ist das JSON oder XML, möglich könnte aber auch CSV sein.

Das musst du erfragen, da kann dir keiner weiter helfen.

Ansonsten nutze für die Verbindung eine Http Klasse, am besten die von Apache und stelle darüber die Kommunikation mit der Server API her.

Zum parsen von JSON kannst du dann z.B. Jackson verwenden oder aber JSONObject direkt von json.org.

Wenn konkrete Fragen bestehen zu einem Code Problem kann ich dir gern weiter helfen.

Jedoch ist das Thema hier bei Datenbankprogrammierung wohl eher falsch untergebracht.


----------

