Web Sitesinden Veri Çekme
Herhangi bir web sitesinden istediğiniz bir veriyi nasıl çekebileceğimizi anlatacağım.Bu işlemi yapabilmek için C# İle String işlemleri konusunu biraz incelemeniz gerekiyor.Bu makalede kullanacağım kodlar şunlar;
IndexOf : Bu fonksiyon, web sitesinden çekeceğimiz verinin başlangıç noktasını almamıza yarıyor.
Örnek kullanım :
String.IndexOf("başlangıçkelimesi");
Substring : Bu fonksiyon yazı içindeki başlangıç noktasını ve uzunluğunu belirtmiş olduğumuz aralığı size verir.İkinci parametreyi yazmazsanız başlangıç noktasını belirttiğiniz yerden String i sonuna kadar okur ve geriye tekrar string olarak döndürür.
Örnek Kullanım :
string cumle = "Merhabalar kodarsivi.com'a hoşgeldiniz.";
string cumle1 = cumle.Substring(12);
cumle1'in değeri "kodarsivi.com'a hoşgeldiniz" oldu.
İlk öncelikle sayfamıza iki tane sınıf ekleyeceğiz;
using System.Net;
using System.Text;
Bu iki sınıfı ekledikten sonra kodlarımızı yazmaya başlayabiliriz.
Uri siteUri = new Uri("http://www.siteadi.com");
WebRequest wr = WebRequest.Create(siteUri);
WebResponse wer = wr.GetResponse();
Stream strX = wer.GetResponseStream();
StreamReader strR = new StreamReader(strX, Encoding.GetEncoding("windows-1254"));
string icerik = strR.ReadToEnd();
Bu kodlarla siteadi.com daki bilgileri ( kaynak kodunu ) içerik adındaki Stringe atadık.Diyelimki sayfadaki haber başlığını çekmek istiyoruz.
int baslikbas = icerik.IndexOf("<h1>");
int baslikson = icerik.IndexOf("</h1>");
string basliksonuc = icerik.Substring(baslikbas, baslikson);
Label1.Text = basliksonuc;
Yukarıdakı işlemde baslikbas adında bir integer tanımladık ve bu bizim siteden alacağımız verinin başlangıç noktasını belirtiyor.baslikson ise alacağımız verinin bitiş noktasını belirliyor.En sonundada Label1.Text e sonucu atıyorum ve bu Label1 i web sayfamda istediğim bir yere koyduğumda siteadi.com dan gelen başlığı görüntülemiş oluyorum.Burda size biraz karışık gelmiş olabilir ama siz kendinize bir site belirleyin ve o siteden istediğiniz bir veriyi almaya çalışın.İlk başta direk alamayabilirsiniz yarım yamalak olabilir ama biraz kurcalayarak sonuca varabilirsiniz.Bu yazdığım kodlar sadece bir başlangıç bunu geliştirmek sizin elinizde.
Başka bir makalede görüşmek dileğiyle