Kapat
Reklam Alanı
Programlama 3.584 9

C# Web Sitesinden Veri Çekme İşlemi

PHP ile bir çok siteden basit bir şekilde veri çekip, sitelerimiz de kullanıyoruz. WordPress kullanırken bile veritabanımızdan veri çekmek için kod parçacıklarında veri çekmenin yararını görebiliyoruz. Bir çok haber sitesi de ajanslardan haber detaylarını çekerek yayın hayatlarını sürdürüyorlar. Böyle olunca bilgisayar programlarında da böyle bir sistemin olması hiçte fena olmaz diyerekten naçizane bildiklerimi bu yazımda paylaşacağım.

Kendi yaptığım uygulama olan MCK Film Arşivi programında da kullanmış olduğum yöntemde örnek kullanım olarak film bilgi sitelerinden form içerisinde yer alan metin kutularına veri çekip, veritabanına kayıt ettim. Yazı sonunda kodların kaynaklarını paylaşacağım. MCK Film Arşivi programında da göreceğiniz üzere Sinemalar.com ve Beyazperde’den verileri çekip metin kutularına ekledik.

İlk önce projemizi açıyoruz ve görsel düzenleme kısmına gelip aşağıdaki görselde yer alan yolu izlemeniz gerekiyor.

MCKTools1

MCKTools2

Yukarıdaki gibi görselde ki beyaz çerçeve içerisinde yer alan kutucuğa HTML yazınca en üstte çıkan HtmlAgilltyPack’ı seçip Install diyip projemiz içerisine ekliyoruz. Ekledikten sonra formumuzun görsel kısmına geçip bir kaç ekleme yapıyoruz. Örneğin butona tıkladığımızda bir siteden veri çeksin ve çektiği bu veriyi metin kutusuna(TextBox) aktarıyoruz. Eklememiz gereken bir kaç kütüphanemiz var bunları da namespace kısmına ekliyoruz.

try
 {
 string al = textBox1.Text;
 Uri url = new Uri("http://www.diyanet.gov.tr/");
 WebClient client = new WebClient();
 client.Encoding = Encoding.UTF8;
 string html = client.DownloadString(url);
 HtmlAgilityPack.HtmlDocument dokuman = new HtmlAgilityPack.HtmlDocument();
 dokuman.LoadHtml(html);
 HtmlNodeCollection basliklar = dokuman.DocumentNode.SelectNodes("//span[@id='spAksam']|//div [@class='load-mores']");
 foreach (HtmlNode baslik in basliklar)
 {
 //ListBox ekle
 string veri = baslik.InnerText;
 veri = veri.Replace("'", " ");
 textBox1.Text = veri;

 }
 }
 catch (Exception hata)
 {

 MessageBox.Show(hata.ToString());
 }

 

Şimdi yukarıdaki kodları açıklayalım. Gerekli tanımlamalarımızı yaptıktan sonra new Uri kısmına veri çekeceğimiz siteyi yazıyoruz. Ben test etmek için diyanetin sitesinden akşam vakti namaz saatini çektim.

diyanet1

Çekmek istediğimiz verinin üzerine sağ tıklayıp Öğeyi İncele diyoruz ve aşağıda ki kod panelinden çıkan satırları Select.Nodes kısmına yazıyoruz.

Eğer sizin veri çekeceğiniz sitede div class=”icerik” kısmı yer alıyorsa kod içerisinde yer alan span yerine div, id yazan id, etiket kısmına da artık o sitede ne yazıyorsa onu yazıyoruz. Butona tıkladığımızda veriyi metin kutusuna aktarıyor. Sürekli güncellenecek bu yazımızda çeşitli popüler sitelerden veri çekme işlemlerini halledeceğiz.

{Mert Can}

Bildiği her şeyi paylaşmak üzere naçizane güzel bir site kuran koca yürekli insan.

“C# Web Sitesinden Veri Çekme İşlemi” üzerine 9 yorum

  1. Mustafa dedi ki:

    Doğru düzgün makaleler yayımlayın!

    1. Mert Can dedi ki:

      Ne gibi bir rahatsızlık gördünüz hemen ilgileneyim.

      1. Mustafa dedi ki:

        Verilen komutlar hata verdi kendi bünyemde çözdüm.
        Kütüphane eklemeyi unutmamalarını da söylersen gelecek olan arkadaşlara yarar sağlar. Bu arada ön yargıyla yazılmış bir yorum değildi, yanlış anlama.

        1. Mert Can dedi ki:

          Dalgınlık sonucu bazı eksiklikler olabiliyor. Daha dikkatli olacağım, bildiriniz için teşekkür ederim.

        2. abdullah dedi ki:

          oğlum sen muhabbet tellalı mısın?

          bu konuyla ilgili tek bir harf dahi bilmezken aciz aciz google’a sorup öğrenmeye çalışırken bu adam bunu öğrenip buraya bizlere paylaşmış sen kütüphanelerin hatasından bahsediyorsun bi kütüphane hatasını bile çözemiyorsan sil o kullandığın tüm programları.

        3. Ömer Faruk dedi ki:

          Eline sağlık kardeşim. Güzel ve açıklayıcı anlatım. Adama bak Türkçe kaynak buluyor kütüphaneyi soruyor. Nasıl adamlar var arkadaş.

  2. Erhan dedi ki:

    Merhaba. Yazmış olduğunuz makale gayet öğretici fakat metin çekmenin yanı sıra görsel ve video yani tüm media öğelerinide çekmek istemekteyim bu konu ile ilgi yardımcı olursanız sevinirim. Kolay gelsin.

    1. Mert Can dedi ki:

      Tabi ki seve seve yardımcı olurum. Bu konu hakkında öncelikle biraz araştırma yapmam gerekiyor en stabil yöntemi uygulamak için. En stabil yöntem ile en kolay, en az kodlu şekilde yazımızdan güncelleme yapacağım.

  3. MUSTAFA AKSOY dedi ki:

    Mercan kardeşim eline sağlık ben masaüstü ezan vakti ezan okuyan otomasyon yapıyorum
    gösterdiğin gibi namaz saaatlerini çekebiliyorum ama ankaranın geliyor istanbulun saatleri için ne yapmalıyız

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir