Site Kontrolü


Web sitelerinde gezinmek,veri çekmek veya web formlarını doldurmak gibi işlemleri webBrowser ile yapabiliriz.Csharptr.com yazılımları kısmındaki çoklu page rank sorgulama programıda buna örnek olabilir.
webBrowser kullanırken kullanılan temel kodlarımız şu şekildedir.
1
2
3
webBrowser1.Navigate("http://wasixcs.blogspot.com"); //Sayfa yükleniyor
webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browserim_DocumentCompleted);
//Syafa yüklendiğinde browserim_DocumentCompleted çağırılıyor
Web sayfamız yüklediğinde “browserim_DocumentCompleted” fonksiyonu çağıralıcaktır
1
2
3
4
private void browserim_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
     //Sayfa yüklendiğinde çalıştırılıcak kodlar buraya gelicek
}
Buraya kadar olan kısımlarda sayfanın nasıl yükleniceğini gördük.Şimdi gelelim web sayfaları üzerindeki kontrolleri nasıl kullanıcağımıza web sitelerindeki textarea,button vs. gibi nesnelerin ID’leri vardır.Bu ID’leri kullanarak değer atayabilir veya değerlerini çekebiliriz.Ben örnek olarak facebook’u kullanıcam
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private void browserim_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    webBrowser1.Document.GetElementById("email").InnerText = "kullanıcı adı gelicek";
    //ID'si email olan text kısmına innerText ile değer ataması yapılır
    webBrowser1.Document.GetElementById("pass").InnerText = "sifre gelicek";
    //ID'si pass olan şifre kısmına innerText ile değer ataması yapılır
    webBrowser1.Document.Forms[0].InvokeMember("submit");
    //En sonda submit yani giriş yap butonuna basılır
}

private void button1_Click(object sender, EventArgs e)
{
     webBrowser1.Navigate("http://facebook.com"); //Facebook yüklenir
     webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(browserim_DocumentCompleted);
     //Sayfa yüklendiğinde browserim_DocumentCompleted fonksyionu çağırılır
}
(facebook hesabından çıkış yapılmış olmalıdır)
Yukarıdaki örnekte basit olarak facebook hesabına nasıl giriş yapılıcağını gördük.Bunların dışında web sitelerinden veri çekmek için farklı yöntemlerde vardır.
1
2
3
4
5
foreach (HtmlElement HtmlElement1 in webBrowser1.Document.Body.All)
{
     if (HtmlElement1.GetAttribute("value") == "Sorgula")
            HtmlElement1.InvokeMember("click");
}
1
2
3
GetAttribute("value") // Ekranda görünen ismi
GetAttribute("className") // Arka plandaki class adı
GetAttribute("name") // ismi id'si değil.

1
2
3
InvokeMember("click"// Tıklama işlemi
InvokeMember("sumbit") // Tıklama işlemi (Sumbit olarak tanımlanmışsa)


Örneğin yukarıdaki kod bloğunda web sitesi üzerindeki tüm elementlerin kontrolü yapılarak “value” si “Sorgula” olan button click edilmiştir.Eğer bu yöntemleri kullanmassak tüm verileri kesin olarak çekmenin 1yolu daha vardır oda html kodlarını almak daha sonra belirli html taglarının arasını alarak istediğimiz değerlere ulaşabiliriz.
1
string htmlKodlari = HtmlElement1.OuterHtml.ToString();
Eğer foreach döngüsüne yukarıdaki kodu eklersek sitenin html kodlarını “htmlKodlari” değişkenine atamış oluruz.Bu yollada veri çekme işlemlerimizi yapabiliriz.


_____________________________________________________________________________________________

Sorularınız için


Veya yorum ;

No Response to "Site Kontrolü"

Yorum Gönder