C# Filmdatenbank
Hallo, liebe GuteFrage Community, Ich schreibe momentan eine Filmdatenbank in C# als Schulprojekt. Jetzt wäre meine frage ist es möglich von z.B. der Seite : http://www.imdb.com/ Die Filmnamen, Beschreibungen und Bewertungen auszulesen und direkt in Variabeln oder ggf. eine liste in meiner Filmdatenbank zu speichern ? und dies dann z.b. jede 7 Tage einmal "Updated" ?
Wäre nett wenn ihr mir ein paar Codeschnipsel oder Hilfen geben könntet.
1 Antwort
Du brauchst eine sogenannte API (Application Programming Interface), welche dir einen Zugriff auf die Filmdatenbank ermöglicht. Anbieter für solche APIs gibt es mehrere, auf die Schnelle hab ich u.a. diesen hier
https://www.themoviedb.org/documentation/api
gefunden. Dort musst du dich registrieren, dir einen Key für die API holen und dann kannst du dir quasi per URL eine Anfrage zusammenbasteln, die dir dann die angefragen Filme in der Regel z.b. im JSON-Format zurück. Wenn du dann JSON hast, dann kannst du dir das wie in dieser Frage
stackoverflow.com/questions/7895105/deserialize-json-with-c-sharp
in C#-Objekte wandeln. Ein bisschen einlesen musst du dich in die Thematik und du musst dich auch ein wenig bei der Filmauswahl beschränken, alle Filme wirst du nämlich weder heruntergeladen noch bei dir auf der Festplatte gespeichert kriegen. Du solltest versuchen, nur z.B. alle Filme der letzten 2 Wochen oder so runterzuladen.
Eine API muss nicht zwingend zur Verfügung gestellt werden. Im Fall von imdb.com wird die Url eines Titels immer nach einem bestimmten musster zusammengestellt (meistens mit einer nummerischen Id). Dadurch kann man sich mit Schleifen die einzelnen Webseiten runterladen und die Dokumente nach den Werten durchsuchen.
Allerdings ist es natürlich komfortabler mit einer API zu arbeiten.
Außerdem kommt in der Designphase noch die Frage auf, ob nur aus einer Quelle gelesen werden soll oder aus mehreren (auch verschiedene Webseiten). Das sollte sich dann in den Schnittstellen wiederspiegeln.