Internetdaten holen, aufbereiten und anzeigen

  • Hallo,


    nachdem ich hier so freundlich empfangen wurde, möchte ich euer Fachwissen nutzen, bevor ich loslaufe.
    Ich möchte auf einem Android Smatphone für meinen Fussballverein die aktuellen Ergebnisse und Tabellenstände in lesbarer Form darstellen.
    Eine schlechte Lösung in diesem Zusammenhang wäre, über die URL die Seite von fussball.de auf dem Smartphone aufzurufen. (hab ich schon gemacht!)
    Es sollen ausschließlich Nutzinformationen angezeigt werden, d. h. bei den Ergebnissen nur Mannschaft - Ergebnis - Mannschaft.
    Wie komme ich an die Daten (Von fussball.de holen)
    Gibt es mehrere Wege, oder werden dazu Standards angeboten?
    Kann mir jemand verbal die Zusammenhänge beschreiben?
    Welche Klassen und Methoden sollte ich in diesem Zusammenhang nutzen?


    Vorab schon mal vielen Dank für eure Hilfe

  • Zitat

    Wie komme ich an die Daten (Von fussball.de holen)


    Also das Hauptproblem besteht immer im "klauen" von Daten, das ist so eine schwierige Grauzone, laut Rechtssprechung sind Fussballergebnisse nicht geschützt alles was darüber hinausgeht und eine redaktionelle Qualität hat (News,Artikel) ist wiederum vom Urheberrecht betroffen.


    Am besten ist es immer man besitzt das Einverständnis der Seitenbetreiber oder man bekommt die Daten über eine offene Schnittstelle.
    Fussball.de bietet ein Widget für Webseiten an, kann sein das Sie auch eine Schnittstelle bzw. Webservices für XML,JSON anbieten. (weiss ich aber nicht)


    http://www.openligadb.de/ ist eine Communityergebnis dienst und der bietet so etwas. (Für diverse Euro/WM Tippspiele, habe ich mir dort schon die Fussballbegegnungen geholt)



    Zitat

    Gibt es mehrere Wege, oder werden dazu Standards angeboten?


    Siehe Antwort1: wenn du die Ergebnisse direkt von der Fussball.de Seite holen willst musst du die Webseiten parsen.


    -> HTTP Verbindung -> Seite als String runter laden -> Parsen


    Für das Parsen gibt es schöne Hilfsmittel wie den HTML-Cleaner bzw. JSoup.
    Dann suchst du Dir die markanten Stellen in der Webseite und überführst Sie in eine für Dich logische Datenstruktur.


    Wenn wie in Antwort 1 ein Webservice angeboten wird hast du ganz leichtes Spiel.


    -> Verbindung aufbauen -> Daten holen -> Verarbeiten (XML Parser, JSON-Parser) - fertig



    Zitat

    Welche Klassen und Methoden sollte ich in diesem Zusammenhang nutzen?


    Zum aufbauen einer HTPP Verbindung findest du jede Menge Tutorials im Netz, zu beachten ist hierbei, das seit Android 3.0, alle Vorgänge die das Netzwerk betreffen nicht mehr im UI Thread laufen dürfen und in einen eigenen Thread ausgelagert werden müssen um nicht das Programm zu blockieren.
    Stichwort wäre hier bei AsyncTask - das ist eine schhöne komfortable Methode so etwas zu realisieren.


    Wie oben geschrieben die HTML Seite parsen kannst du mit HTML Cleaner, JSoup und und sonstigen Stringmethoden von Android.
    Falls du XML oder JSON bekommen solltest, dann gibt es auch dazu sehr gute Tutorials


    http://www.androidhive.info/20…oid-xml-parsing-tutorial/


    http://www.androidhive.info/20…id-json-parsing-tutorial/


    Die Darstellung erfolgt dann am besten in einem Listview.

  • Hallo

    killphil75
    ,


    danke für die ausführliche Antwort.
    http://www.openligadb.de ist keine wirkliche Lösung, denn Sie verwerten als Drittanbieter die Daten von fussball.de. Außerdem geht es bei mir um untere Klassen, die dort gar nicht angeboten werden.
    Das parsen der Webseite mag zwar eine Möglichkeit sein, hört sich aber eher so an wie eine OCR Erkennung.
    Das Ergebnis scheint mir über diese Möglichkeit nicht zu 100% sicher zu sein.
    Oder liege ich da falsch?
    Wir haben vom Verein einen Schlüsselzugang zu fussball.de.
    Ich muss mich da mal schlau machen, wie ich über den Weg an die Daten komme.
    Aber das scheint mir der einzig sicher Weg zu sein.

  • Also Webservice sprich Zugang per XML/JSOn ist immer der beste Weg, der Anbieter stellt Dir dann ein Protokoll Datenformat zur Verfügung und alles ist gut.


    Parsen ist schon ein sicherer Weg, du nimmts die HTML Struktur auseinander und da bestimmte HTML Elemente durch ID ect gekennzeichnet sind kann man das schon ganz gut auslesen, das Problem: sobald sich die Seitenstruktur verändert, musst du halt nachziehen und umbauen -> das ist der unsichere Teil.


    Also frag am besten mal bei Fussball.de, was Sie Dir bieten können.
    Falls du da eine antwort bekommst, kannst du sie hier ja auch posten, da weiss man gleich für die Zukunft ob dort ein Weg existiert.

  • fussball.de biete ein Widget an.
    Zur Nutzung muss man einen Schlüssel generieren. Bei dieser Generierung muss zwingend eine Internetseite angegeben werden.
    Wie kann ich es dann nutzen?


    Da fehlt mir der Schulterschluss zu meiner Android-Anwendung.
    Ich möchte die Daten doch unabhängig von einer Webseite auf dem Smartphone anzeigen.
    Ich verstehe das so, das ich dann nicht das Widget nutzen kann, sondern bei fussball.de nach einer Datenschnittstelle fragen muss, über die ich die Daten einlesen und dann aufbereiten kann.
    Verbal kurz beschrieben: Seite aufrufen, Wunsch über Parameter mitteilen, Daten erhalten und verarbeiten.

  • Zitat


    fussball.de biete ein Widget an.
    Zur Nutzung muss man einen Schlüssel generieren. Bei dieser Generierung muss zwingend eine Internetseite angegeben werden.
    Wie kann ich es dann nutzen?
    Da fehlt mir der Schulterschluss zu meiner Android-Anwendung.
    Ich möchte die Daten doch unabhängig von einer Webseite auf dem Smartphone anzeigen.


    so habe ich das auch verstanden.... Das Problem auf der Fussball.de Seite bieten Sie nur das Widget an. Da wird man um eine Anfrage nicht drum herum kommen.



    Zitat

    Ich verstehe das so, das ich dann nicht das Widget nutzen kann, sondern bei fussball.de nach einer Datenschnittstelle fragen muss, über die ich die Daten einlesen und dann aufbereiten kann.


    genau.


    Zitat

    Verbal kurz beschrieben: Seite aufrufen, Wunsch über Parameter mitteilen, Daten erhalten und verarbeiten.


    Normalerweise arbeiteten so grosse Seiten mit jeder Menge 3 Anbietern zusammen, d.h. Sie müssten da so etwas wie einen WebService haben.
    Die Frage ist halt ob man Dich da ran lässt und ob es kostenlos ist.
    Deswegen sagte ich ja, falls du eine Rückmeldung von Fussball.de bekommst wäre das Ergebnis sicher auch interessant für andere Nutzer.

  • Eine sehr dunkelgraue Variante wäre:


    1.) Eigene Webseite erstellen
    2.) Widget registrieren und einbinden


    3.) App bauen die Deine eigene Seite "auseinandernimmt"
    4.) Ergebnisse filtern
    5.) In App anzeigen lassen...


    Wenn Du Deine App nicht im Internet (Playstore,AndroidPIT etc.)veröffentlichst, wird es schwer Dir diesen Weg nachzuweisen ;)


    Der Aufwand wäre für Dich wäre sehr groß immer die APK an Deine Kollegen zu verteilen.


    Ist nur meine Meinung über die Machbarkeit Deines Wunsches, keine Aufforderung zum Contentdiebstahl!

  • Die "Dokumentation" für das Widget ist ja schon recht kurz gehalten, aber interessant.
    Von Wegen 'keine API'... Was glauben die, wie deren Widget angesteuert wird? +augen roll+


    Also entweder jemand hat gelogen oder hatte keine Ahnung.
    Richtig wäre 'Wir geben die API nicht außerhalb des Widgets frei.'.


    Wenn du die API Seite direkt aufrufst, bekommst du immerhin einen gekürzten HTML-Wust.

    Code
    http://ergebnisdienst.fussball.de/api/fbed/fussballdeAPI.php?Saison=1213&WettbewerbID=014201


    Schwierig wird nur das Herausfinden der WettbewerbsID. Jedenfalls gibt der Krams auch nur das komplett fertige Widget als HTML aus, allerdings ohne Abfrage der Website.


    Das ist zwar weniger dunkelgrau als vielmehr Anthrazit, weshalb ich lieber die Website 'meines' Vereins direkt fragen würde als über einen Zusatzanbieter wie Fussball.de zu gehen.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!