WebResponse Metodu ile C#da Basit Bot Yapımı
Merhaba Arkadaşlar;
Bir çok kişinin aradığı ama türkçe kaynak eksikliğinden dolayı bulamadığı, internet aleminde "başka sitelerden veri çekmek" yani "bot" denilen olayı anlatmaya çalışacağım. Burada amacım size sadece yöntemi anlatmaktır o yüzden çok ufak bir örnekle anlatıcam.
Şimdi öncelikle
Webresponse tipinde bir değişken tanımlıyoruz;
WebResponse cevap;
Ardından bir WebRequest yaratmamız lazım, bu webrequest'den gelen cevabı webresponse ile alacağız.
WebRequest yaratalım;
WebRequest istek = HttpWebRequest.Create("http://www.google.com.tr");
ardından, cevap(webresponse) adlı değişkeninize, istek(webrequest) yaptığımız web sitesinden dönen cevabı veriyoruz. o da şöyle;
cevap = istek.ReadToEnd();
ardından, StreamReader ile cevap'taki html kodlarını okuyabiliriz.
StreamReader donenBilgiler = new StreamReader(cevap.GetResponseStream());
artık elimizde, html kodlar mevcut. yani bize gereken şeyler. onuda bir string değişkene atayıp parse işlemi yapabiliriz;
string gelen = gelenCevap.ReadToEnd();
Ben basit bir örnek yapıcam, google.com.tr sitesinde'ki title'ı okuycam.
Bu işlemi yaparken, string metotlarından olan "indexof" metodundan yararlanıcam, bu metot ne işe yarar derseniz. Sizin vermiş olduğunuz karakterin veya string ifadenin, text içinde kaçınca index'te olduğunu geri döner.
int titleIndexBaslangici = gelen.IndexOf("") + 7;
Şimdi bu satırda, elimizde ki html kodlarında, tagının kaçınca karakterden başladığını aldık, neden 7 ekledik derseniz. Eğer 7 eklemezsek, elimizde ki indexno ile substring yaparsak, elimize tag'ı da gelicek. ama biz
Bu satırda ise, 'ın bittiği yerden itibaren aldık (substring yardımı ile). Ardından tagının bittiği, index'i aldık. burada bir ekleme söz konusu değil, çünkü tag zaten bitti.
label1.Text = gelen.Substring(titleIndexBaslangici, titleIndexBitisi);
En son da label'ın textine Aldığımız veriyi bastık.
Evet çok basit bir örnek'te olsa. sizin olayı kavramanıza yettiğini düşünmekteyim. Html kodlarını aldıktan sonra farklı bir yöntem ile de parse edebilirsiniz. Regular Expression gibi.
Son olarak Programdan bir kaç resim;
Kaynak belirtmeden lütfen paylaşmayınız.Sorularınızı lütfen konu altından sorunuz.
Herkese İyi Çalışmalar
Hit: 3500
Yazar: SharpShooter