Anasayfa / Yazılım / C# Html Agility Pack Kullanımı – Bot Yazma

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

Html Agility Pack Nedir?

C# Html Agility Pack, HTML belgelerindeki bilgileri çekmek için kullanılan bir kütüphanedir. Bu kütüphane, HTML belgelerindeki etiketleri, öznitelikleri ve içerikleri okumak, düzenlemek ve analiz etmek için kullanılabilir. Bu nedenle, C# Html Agility Pack, web sitelerinde otomatik botlar oluşturmak için oldukça kullanışlıdır.

Html Agility Pack ile Bot Yazma

C# Html Agility Pack kütüphanesi, NuGet paket yöneticisi aracılığıyla yüklenebilir. Visual Studio gibi bir IDE kullanarak, projenize sağ tıklayarak “Manage NuGet Packages” seçeneğini seçin ve ardından “HtmlAgilityPack” aramak için arama kutusunu kullanın. Kütüphaneyi seçin ve projenize yükleyin.

Kütüphaneyi kullanmak için, ilk olarak bir HtmlDocument nesnesi oluşturun ve HTML belgesini yükleyin. Bunun için, HtmlWeb nesnesini kullanabilirsiniz. HtmlWeb, bir URL’yi alır ve web sayfasının içeriğini indirir ve HtmlDocument nesnesine yükler.

HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load(“https://www.example.com”);

Yukarıdaki örnek kodda, bir HtmlWeb nesnesi oluşturuluyor ve daha sonra Load metodu kullanılarak http://www.example.com web sitesi yükleniyor. Daha sonra, HtmlDocument sınıfı kullanarak web sayfasındaki veriye erişebilirsiniz. Örneğin:

HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(“//h1”); foreach (HtmlNode node in nodes) { Console.WriteLine(node.InnerText); }

Yukarıdaki kodda, HtmlDocument nesnesinden seçilen h1 etiketlerinin içerikleri bir HtmlNodeCollection nesnesine atılıyor. Daha sonra, foreach döngüsü kullanılarak her h1 etiketinin içeriği Console’a yazdırılıyor.

Birden Fazla Web Sayfasından Veri Alma

Html Agility Pack kullanarak birden fazla web sayfasından veri toplamak da oldukça kolaydır. Örneğin, bir web sitesindeki tüm bağlantıları toplamak isteyebilirsiniz. Bunu yapmak için, önce tüm bağlantıları içeren bir HtmlNodeCollection nesnesi oluşturmanız gerekir. Ardından, bu nesnedeki her bağlantı için HtmlWeb sınıfını kullanarak yeni bir web sayfası yükleyebilirsiniz. Örneğin:

HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load(“http://www.example.com”); HtmlNodeCollection links = doc.DocumentNode.SelectNodes(“//a[@href]”); foreach (HtmlNode link in links) { string url = link.Attributes[“href”].Value; HtmlDocument linkDoc = web.Load(url); // burada, linkDoc ile ilgili işlemler yapabilirsiniz }

Yukarıdaki kodda, ilk olarak http://www.example.com web sayfası yükleniyor ve tüm bağlantılar bir HtmlNodeCollection nesnesine atılıyor. Daha sonra, bu nesnedeki her bağlantı için HtmlWeb sınıfı kullanılarak yeni bir web sayfası yükleniyor ve linkDoc nesnesine atılıyor. Artık linkDoc nesnesini kullanarak ilgili işlemleri yapabilirsiniz.

Veriyi Kaydetme

Html Agility Pack‘i kullanarak aldığınız verileri farklı formatlarda kaydedebilirsiniz. Örneğin, verileri bir CSV dosyasına veya bir veritabanına kaydedebilirsiniz. Aşağıdaki örnek, bir web sitesinden aldığınız verileri bir CSV dosyasına kaydeder:

HtmlWeb web = new HtmlWeb(); HtmlDocument doc = web.Load(“http://www.example.com”); HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes(“//h1″); using (StreamWriter file = new StreamWriter(@”C:\example.csv”)) { foreach (HtmlNode node in nodes) { file.WriteLine(node.InnerText); } }

Yukarıdaki kodda, bir HtmlWeb nesnesi oluşturuluyor ve http://www.example.com web sitesi yükleniyor. Daha sonra, HtmlDocument nesnesinden seçilen h1 etiketlerinin içerikleri bir StreamWriter nesnesi kullanarak C:\example.csv dosyasına yazdırılıyor.

SEO Kriterlerine Uygun Kodlama

Web scraping yaparken, SEO kriterlerine uygun kodlama yapmak oldukça önemlidir. Bunun nedeni, web scraping işleminin yasal olmaması ve birçok web sitesinin botları engellemek için bazı önlemler almasıdır. Bu nedenle, botlar tarafından kullanılmadığından emin olmak için SEO kriterlerine uygun kodlama yapmak önemlidir.

İşte bazı SEO kriterleri:

  • İçerik: Web scraping yaparken, web sitesinin içeriğine ilişkin olarak izinli olan verileri toplamalısınız. Bu, web sitesinin robotların erişmesine izin verdiği verileri içerir. Robotların erişmesine izin verilmeyen verileri toplamak, web sitesine zarar verebilir ve yasal sorunlara yol açabilir.
  • Hız: Web scraping işleminin hızı önemlidir. Çok hızlı bir web scraping işlemi, web sitesini etkileyebilir ve web sitesinin performansını azaltabilir. Bu nedenle, web scraping işlemini yavaş ve dikkatli bir şekilde yapmalısınız.
  • Kullanıcı Arayüzü: Botların genellikle bir kullanıcı arayüzüne sahip olmadığı için, web sitesi sahipleri botları engellemek için kullanıcı arayüzlerini kontrol edebilirler. Bu nedenle, web scraping işleminde kullanıcı arayüzlerinin kullanılması, botların tespit edilmesini engelleyebilir.
  • Otomatik Olarak Veri Toplama: Otomatik olarak veri toplama işlemi, web sitesinin performansını etkileyebilir ve web sitesine zarar verebilir. Bu nedenle, web scraping işleminin manuel olarak yapılması önerilir.

Yukarıdaki SEO kriterlerine uygun olarak, web scraping işleminde dikkatli ve sorumlu bir şekilde davranmak önemlidir.

Sonuç olarak, Html Agility Pack kullanarak web scraping yapmak oldukça kolaydır ve birçok farklı senaryoda kullanılabilir. Ancak, web scraping işlemi yasal olmayabilir ve botların kullanımı web sitesine zarar verebilir. Bu nedenle, web scraping işlemini yalnızca izin verilen verileri toplamak için kullanın ve SEO kriterlerine uygun kodlama yaparak botların tespit edilmesini engelleyin.

 

 

 

 

Hakkında erkeklernedio

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.