C# Html Agility Pack Kullanımı - Bot Yazma - Emre Akkaya

C# Html Agility Pack Kullanımı – Bot Yazma

Arkadaşlar herkese merhaba,

Bu yazımızda sizlerle birlikte C# ile Visual Studio da Web sayfalarından istediğimiz tabloları, resimleri, yani kısacası web sayfalarının tüm içeriğini nasıl parse edebiliriz bunun üzerine konuşucağız.

Öncelikle arkadaşlar temel yöntem ve kodları göstermeye çalışıcağım istediğiniz içeriği bu yöntemle deneyerek araştırarak kendinizi geliştirerek çekebilirsiniz unutmayın. Kullanacağımız kütüphane Html Agility Pack kütüphanesidir. Bu kütüphane ile istediğiniz içeriği kolayca çekebilirsiniz.Bir tane örnek proje yapalım ve kütüphanenin nimetlerinden faydalanalım.Hadi Başlayalım.

  • Öncelikle Visual Studio da yeni bir windows form projesi oluşturalım.
  • Ardından aşağıdaki gibi basit bir form tasarımı yapabiliriz.

  • Nuget dan html agility pack kütüphanesini projemize ekleyelim.

  • Artık kodlarımızı yazmaya başlayabiliriz.
  • Butona çift tıklayalım ve butonun click özelliğine aşağıdaki kodları yazalım.
  • Yanlarına yorum satırı olarak açıklamalarını yazdım tabi önce using kısmına Html agility pack ve System.Net Kütüphanemizi eklememiz gerekiyor.
  • Burdaki temel mantık arakadaşlar url e göre belirttiğimiz adresin tüm html içeriğini indiriyoruz.
  • Arkadaşlar veriyi kendi sitemizin anasayfasında bulunan kategori bölümünün sadece kategori adlarını çekeceğiz ve text box a yazdıracağız.

  • Kategori divimiz burda içinde bakıyoruz ve ul li etiketleriniz görüyoruz burda text in bulunduğu kısım ise li altındaki a elemnetinin altındaki birinci span etiketi olduğunu görüyoruz.Çünkü ikinci span etiketinin içindeki text blog yazılarının adetini gösteriyor biz sadece kategori adını alacağız. Peki biz sadece istediğimiz alanın içeriğini nasıl çekeceğiz derseniz de burda xPath adresini bulmamız lazım.

  • Ul html ini çekip tüm li etiketlerinin içinde dönücez ve içindeki span etiketinin classı “category-text” olanı alacağız.Çünkü iki spanı birbirinden ayıran tek fark bu. XPath adresi dediğimiz şey ise Html içinde o alanın o etiketin konumu demek yani bize adresini veriyor arkadaşlar.

 

  • Burda özellikle değinmek istediğim şey SelectNodes ve Attributes kısmı;
  • SelectNodes kısmında biz xPath adresimizi giriyoruz. Burada önce genel ul kısmının xPath adresinde döndük. Ardından o xPath deki li elementlerinde döndük ve Attributes class ı category-text olanın innertext ile sadece text ini stringbuilder a ekledik.
  • En sonda ise textbox ımıza yazdırdık.

Evet arkadaşlar Html Agility Pack ile veri çekmek ve bunları istediğiniz şekilde dizayn etmek tamamen sizin hayal güzücünüze kalmış, küçük formlar hazırlayarak bu kütüphaneyi kullanma becerinizi geliştirebilirsiniz. Sağlıcakla kalın…

Facebook Yorumları

/* ]]> */