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;

/Uploads/Media/doc/2000-2015/WebResponseIleBasitBotYapimi/31134256.png

/Uploads/Media/doc/2000-2015/WebResponseIleBasitBotYapimi/31134256.png

/Uploads/Media/doc/2000-2015/WebResponseIleBasitBotYapimi/31134256.png

Kaynak belirtmeden lütfen paylaşmayınız.Sorularınızı lütfen konu altından sorunuz.

Herkese İyi Çalışmalar

Tarih:
Hit: 3454
Yazar: SharpShooter



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.