![[Snippet] OpenLigaDB-API mit Python und suds nutzen](https://city-insider.de/wp-content/uploads/openligadb.png)
[Snippet] OpenLigaDB-API mit Python und suds nutzen
Um die freie Fußball-Datenbank ObenLigaDB zu nutzen benötigt man SOAP. Für SOAP nutzt man sinnvollerweise eine Programmiersprache um den Output auch weiterverarbeiten zu können. Auf der Website finden sich bereits Beispiele für einige Programmiersprachen. Leider nicht für Python. Daher wollte ich das hier mal nachholen.
Für das Beispiel nutze ich das SOAP-Modul suds. Dieses könnt ihr über easy_install (Was ist das?) ganz einfach nachinstallieren:
$ easy_install suds
Das folgende Beispiel ist ein mininmal Beispiel und kann beliebig erweitert werden:
import suds def getMatchData(matchday_list, league, season, proxy={}): result_list = [] oldb = suds.client.Client( 'http://www.openligadb.de/Webservices/Sportsdata.asmx?WSDL', proxy = proxy) for matchday in matchday_list: oldb_client = oldb.service.GetMatchdataByGroupLeagueSaison( matchday, league, season) for el in oldb_client[0]: #print el # Hat das Spiel bereits stattgefunden? if el[17] == -1: continue result_list.append([el[0], # match_id el[5], # spieltag el[6], # Spieltag (lesbar) el[10], # liga el[8], # Liga (lesbar) el[9], # saison unicode(el[11]), # teamName1 unicode(el[12]), # teamName2 el[17], # tore1 el[18], # tore2 el[1], # matchDateTime el[13], # teamId1 el[14], # teamId2 el[21], # matchResults el[22], # goals el[23], # Location (Stadion) el[24], # Zuschauerzahl ]) return result_list if __name__ == '__main__': """ http://www.openligadb.de/Webservices/Sportsdata.asmx bl1 = Bundesliga bl2 = 2. Bundeliga bl3 = 3. Liga 2013 = 2013/2014 [1,2] = 1. und 2. Spieltag """ test = getMatchData([1], 'bl1', 2013, proxy=proxy) print test
Wie funktioniert der Code?
matchday_list ist eine Liste der Spieltage. Ihr könntet zB auch sagen matchday=range(34) um alle Spieltage einer Saison zu lesen.
league ist die Liga (bl1 = 1. Bundesliga)
season ist die Saison (2013 = Saison 2013/2014)
proxy ist der/die Proxy(ies) als Dictonary ({‘http’:’127.0.0.1:3128′})
Mithilfe der API-Dokumentation von OpenLigaDB könnt ihr weitere Daten abrufen. Viel Spaß beim experimentieren.
Sorry das lange Zeilen häufig nicht korrekt angezeigt werden. Ich muss hierfür bei Gelegenheit ein neues WP-Theme suchen.