C# ile bir web sitesinden, HTML dosyasından nasıl veri çekilir?

luciferbnw (1) 7 yıl önce sordu

Aşağıdaki gibi bir HTML kodum var.

Burdaki 0.00.00 kısmını Labelime yazdırmak istiyorum nasıl yapabilirim. C# ile bir web sitesinden, HTML dosyasından nasıl veri çekilir?

<p id="contract"><b>Geliştime masrafları </b> seviye 3:<br><img class="r1" src="assets/x.gif" alt="Odun" title="Odun">225 |<img class="r2" src="assets/x.gif" alt="Tuğla" title="Tuğla">110 |<img class="r3" src="assets/x.gif" alt="Demir" title="Demir">225 |<img class="r4" src="assets/x.gif" alt="Tahıl&shy;" title="Tahıl&shy;">140 |<img class="r5" src="assets/x.gif" alt="Tahıl Tüketimi" title="Tahıl Tüketimi">1 |<img class="clock" src="assets/x.gif" alt="Dönem" title="Dönem">0:00:00<br><a class="build" href="village1.php?id=5&amp;k=48bdc">seviye atlat 3</a></p>

 

Toplam 1 cevap


alattin (16999) 7 yıl önce cevapladı

Herhangi bir web sitesinden ya da HTML belgesinden veri çekmek istiyorsan HTML parse işlemi yapmalısın. 

Bunun içinse  Html Agility Pack eklentisi çok işine yarayacaktır. Nuget üzerinden Html Agility Pack kütüphanesini projene dahil et.

Internette bolca kullanımına dair örnekler bulabilirsin. Html Agility Pack ile etiketler arasında gezinebilir böylelikle istediğin veriyi ayrıştırabilirsin.

Örnek Html Agility Pack kodu:

var html = new HtmlDocument();
html.LoadHtml(new WebClient().DownloadString("http://uzmanim.net/alattin")); 
var root = html.DocumentNode;
var p = root.Descendants()
    .Where(n => n.GetAttributeValue("class", "").Equals("guvenilirlik"))
    .Single()
    .Descendants("p")
    .Single();
var icerik = p.InnerText;

Örneğin yukarıdaki kod http://uzmanim.net/alattin  adresindeki guvenilrlik class'ı uygulanmış etiketin altındaki p etiketi içindeki değeri alır.