Makale Özeti

imdb den nasıl film bilgisi çeker ve bunu nasıl işleyerek formumuza yansıtırız onu anlatmaya çalıştım.

Makale

Merhaba arkadaşlar bugün size IMDB film veri tabanından film bilgisi nasıl bilgi çekebileceğimizi göstereceğim.

İlk önce veriyi nerden nasıl çekeceğimizi anlatayım. Kullancağımız sistem üçüncü parti bir web servisi bu web servisinin adresi http://www.imdbapi.com

 

Burada dikkat etmemiz gereken noktalar var bunlardan birinci sorgulama yapısı sorgulamayı

http://imdbapi.com/?t=”Film Adını gönderiyoruz”&y=”Filmin yılını”&r=xml

şimdi bu url yi parçalayalım

t= bu arada filmin adını  ve ya imdb id sini veriyoruz
y= Filmin yılı
r= geri dönüş yapısı iki seçeneğimiz var birincisi xml diğeri json ben xml yapısı üzerinde çalıştığım için xml şeklinde geri döndürüyorum eğer geri dönüşü tanımlamaz isek default olarak json tipinde geri döner bize
plot= film açıklamasıdır bunun da iki değer birisi short ur yani kısa özeti bir full vardır filmin tam özetini getirir. Bunda da default olan shortur.

Şimdi uygulamamız Windows form arayüzünü tasarlayaylım.

Yeni ir proje oluştuyoruz bu projemizin ismini IMDBMovie yapalım

Visual studio projeyi hazırlarken bizde örnek bir sorgu gönderim bize neler verdiğine bakalım

Sorgulama sonucu bize geri verdikleri

Dönenen xml verisi veri:

<root response="True">
<movie title="Iron Man" year="2008" rated="PG-13" released="02 May 2008" runtime="2 h 6 min" genre="Action, Adventure, Sci-Fi" director="Jon Favreau" writer="Mark Fergus, Hawk Ostby" actors="Robert Downey Jr., Gwyneth Paltrow, Terrence Howard, Jeff Bridges" plot="Tony Stark is the complete playboy who also happens to be an engineering genius. While in Afghanistan demonstrating a new missile, he's captured and wounded. His captors want him to assemble a missile for them but instead he creates an armored suit and a means to prevent his death from the shrapnel left in his chest by the attack. He uses the armored suit to escape. Back in the U.S. he announces his company will cease making weapons and he begins work on an updated armored suit only to find that Obadiah Stane, his second in command at Stark industries has been selling Stark weapons to the insurgents. He uses his new suit to return to Afghanistan to destroy the arms and then to stop Stane from misusing his research." poster="http://ia.media-imdb.com/images/M/MV5BMTczNTI2ODUwOF5BMl5BanBnXkFtZTcwMTU0NTIzMw@@._V1_SX640.jpg" imdbRating="7.9" imdbVotes="275,104" imdbID="tt0371746"/>
</root>

Title = Filmimizin İsmi
Released = yayınlanış tarihi
Run time = film süresi
Genre= filmin hangi türlerede olduğu
Director= yönetmen
Writer = senaristler
Actors= oyuncular
Plot= filmin konusu
Poster = filmin resmi
IMDB rating = imdb den aldığı puan
İmdb title = imdb id si
Year = filmimizin yılı

Bunlar bize yetecektir zaten fazlasını istesekte şimdilik desteklememektedir.

Biz formumuza geri dönelim ve formumuzu resimdeki gibi tasarlayalım

Son olarak formumuzu bu hale getiriyoruz textbox imi sadece readonly yapıyorum Picturebox mizin size modunu da strechimage yapıyoruz şimdi sıra en güzel kısım olan kodlamada J

Ara butonumuza çift tıklayarak onun click olayına gidiyoruz.

System.Xml sınfımımızı tanıtıyoruz.

Kodlarımız;

  Kodumuz: 

XmlDocument xml = new XmlDocument();
            //xml dokumanımızı tanımladık
            xml.Load("http://www.imdbapi.com/?t="+toolStripTextBox1.Text+"&y="+toolStripTextBox2.Text+"&plot=full&r=xml");
            //xml bilgimizin nereden geleceğini söyledik tabi söylerken sorgumuzuda hazırlamış olduk 
            foreach (XmlElement icerik in xml.SelectNodes(@"root/movie"))//icerik dosyamızın içerini nerden dolduracağını bildirdik
            {
               pictureBox1.ImageLocation= icerik.GetAttribute("poster");//picturebox un image location ile resmimizin url sini veriyoruz böyleyece resimimizi internet üzerinden çekebiliriz :) 
               label1.Text = icerik.GetAttribute("title"); //filmi ismimizin aldık
               label2.Text = icerik.GetAttribute("released");//filmimizin yaynlanış yılını aldık
               label3.Text = icerik.GetAttribute("actors");//oyuncuları listesini aldık
               label4.Text = icerik.GetAttribute("genre");//tür listesini aldık
               textBox1.Text = icerik.GetAttribute("plot");// filmimizin konusunusu aldık
            }

Ekran görüntümüz;

 Evet arkadaşlar umarım yararlı olmuştur. Ben ufak bir örnek yaptım geliştirmek sizin elinizde iyi günler dilerim

 

Nadir Akdağ

Venga soft
Stajer Developer

iletişim:

http://facebook.com/nadirakdag
http://twitter.com/akdagnadir
nadir_akdag@hotmail.com