C#

C# Web Sitesinin Kaynak Kodlarını İndirme

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde bir web sitesinin HTML kodlarını indirmeyi anlatacağım. Hadi başlayalım !

Ben konsol projesi üzerinden anlatacağım fakat istediğiniz platformda yapabilirsiniz. Öncelikle Visual Studio aracılığıyla bi tane proje oluşturuyoruz. Web sitesinin HTML kodlarını indirebilmek için System.Net kütüphanesi altında bulunan WebClient sınıfını kullanacağız. Öncelikle System.Net kütüphanesini projeye eklememiz gerek. Bunun için sayfanın en başına;

using System.Net;

kod satırını ekleyelim.

Şimdi de WebClient sınıfından bir nesne türetelim.

WebClient client = new WebClient();

WebClient sınıfı karakter kodlamasını otomatik olarak tanıyor fakat el ile tanımlamak için ise

client.Encoding = System.Text.Encoding.UTF8;

kod satırını WebClient nesnesi türettikten hemen sonra eklememiz gerek.

Evet nesne üretme işlemi tamamlandı, artık asıl yapmak istediğimiz işleme geçelim. Web sitesinin HTML kodlarını indirebilmek için senkron ve asenkron olmak üzere 2 yolumuz var. Senkron indirme yapabilmek için türettiğimiz client nesnesi içerisinde bulunan DownloadString() sınıfını kullanabiliriz. Bu fonksiyon string tipte HTML kodları indirilecek web sitesinin linkini parametre olarak alıyor ve geriye HTML kodlarını barındıran string ifade geri döndürüyor.

Örneğin google.com web sitesinin HTML kodlarını indirelim;

string html = client.DownloadString("https://google.com");

html değişkenini ekrana yazdığımızda Google’ın kaynak kodlarının yazıldığını göreceksiniz. Evet senkron olarak indirme yaptık şimdi de asenkron olarak indirme yapalım. Bunun için yine client nesnesi içerisinde bulunan DownloadStringAsync() fonksiyonunu kullanacağız fakat bu fonksiyon Uri tipte bir tane parametre alıyor ve void tipte, yani geriye herhangi birşey döndürmüyor. E geriye birşey döndürmüyorsa indirdiği HTML kodlarını nasıl alacağız derseniz, client nesnesinin içerisinde bulunan DownloadStringCompleted eventini kullanacağız. Bu event indirme işlemi tamamlandığında tetikleniyor ve içerisinde bulunan Result propertisi ile indirmiş olduğu kodlara erişebiliyoruz. Kullanımı ise şöyle olacak;

client.DownloadStringAsync(new Uri("https://google.com"));
client.DownloadStringCompleted += (a, b) => Console.WriteLine(b.Result);

Konsol ekranına yazdırmış olduğumuz b.Result propertisini dilerseniz global bir değişkene atayarak sonradan kullanabilirsiniz. Bu dersimizde bu kadardı, yazdığımız kodları daha toplu olması için aşağıya bırakıyorum;

WebClient client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
string html = client.DownloadString("https://google.com");      // Senkron indirme için
client.DownloadStringAsync(new Uri("https://google.com"));  // Asenkron indirme için
client.DownloadStringCompleted += (a, b) => Console.WriteLine(b.Result);

Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

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

Başa dön tuşu