C# ile HtmlAgilityPack kullanımı

Kruvazör

Yazılım Ekibi Lideri
28 Mar 2020
1,722
2,537
Wrong Side Of Heaven


Merhaba arkadaşlar
bugün sizlerle c# üzerinden HtmlAgilityPack'in genel kullanımını öğreneceğiz ve bir ufak örnek yapacağız.


HtmlAgilityPack:
çeşitli sitelerden anlık olarak veri çekmemizi sağlar.
Selenium kullanarak yapabileceğiniz çoğu şeyi performans açısından daha iyi bir biçimde HtmlAgilityPack kullanarak yapabilirsiniz.


KULLANIM:
Öncelikle form projesini açalım ve;

2z6w9pg.jpg

a1g9ipk.jpg

şeklinde HtmlAgilityPack'i indirip, kodlarımızı yazmaya başlayabiliriz.



FORM TASARIMI
3kvzlf0.jpg

1 BUTTON
4 TEXTBOX
4 LABEL
2 GROUPBOX


KODLAR:
C#:
private void button1_Click(object sender, EventArgs e)
        {
            WebClient client = new WebClient();

//dolar çektirme
            string site1 = client.DownloadString("https://bigpara.hurriyet.com.tr/doviz/dolar/");
            //Veri çekeceğim siteyi ekliyorum
            HtmlAgilityPack.HtmlDocument dolaralısdeger = new HtmlAgilityPack.HtmlDocument(); dolaralısdeger.LoadHtml(site1);
            
            string dolaral = dolaralısdeger.DocumentNode.SelectNodes("//*[@id=\"content\"]/div[2]/div/div[2]/div[2]/span[2]")[0].InnerText;
// adresin nasıl alındığını aşağıda anlattım
            //eklediğim siteden aradığım veriyi çekiyorum



            HtmlAgilityPack.HtmlDocument dolarsatısdeger = new HtmlAgilityPack.HtmlDocument(); dolarsatısdeger.LoadHtml(site1);
            string dolarsat = dolarsatısdeger.DocumentNode.SelectNodes("//*[@id=\"content\"]/div[2]/div/div[2]/div[3]/span[2]")[0].InnerText;








//euro çektirme
            string site2 = client.DownloadString("https://bigpara.hurriyet.com.tr/doviz/euro/");
            //Veri çekeceğim siteyi ekliyorum
            HtmlAgilityPack.HtmlDocument euroalısdeger = new HtmlAgilityPack.HtmlDocument(); euroalısdeger.LoadHtml(site2);
            string euroal = euroalısdeger.DocumentNode.SelectNodes("//*[@id=\"content\"]/div[2]/div/div[2]/div[2]/span[2]")[0].InnerText;
            //eklediğim siteden aradığım veriyi çekiyorum


            HtmlAgilityPack.HtmlDocument eurosatısdeger = new HtmlAgilityPack.HtmlDocument(); eurosatısdeger.LoadHtml(site2);
            string eurosat = eurosatısdeger.DocumentNode.SelectNodes("//*[@id=\"content\"]/div[2]/div/div[2]/div[3]/span[2]")[0].InnerText;
            //eklediğim siteden aradığım veriyi çekiyorum





            textBox1.Text = dolaral;
            textBox2.Text = dolarsat;
            textBox4.Text = eurosat;
            textBox3.Text = euroal;

            //textboxlara yazdırma
        }

peki bu veri yolları nereden geliyor?
yani nasıl veri çekebilirim?

verilerin xpathını alarak bunu yapabilirsiniz.
emou8w5.jpg


(veri yoluna sağ tık atınız)
akm63hz.jpg


Bu şekilde çeşitli sitelerden işinize yarayan verileri çekebilirsiniz.



okuduğunuz için teşekkürler.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.