C# ile Web Sayfalarını Kontrol Etmek Google'da Ara Büyüt Küçült

Genişlet
12 Mart 2010 – 10:30

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://www.csharptr.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");
}

Ö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.

Yazan : Mertcan Kurtaran

Etiketler Etiketler: ”,

Benzer Yazılar

  1. 2 yorum yapılmış

  2. user avatar Sami

    Çok teşekkür ediyorum. Böyle bilgileri hep öğrenip unutuyorum sonra lazım oluyor bulamıyorum. Gerçekten işime yaradı.

    21 Ekim 2010 - 12:34

  3. user avatar Usluer

    Çok teşekkürler. Fakat sormak istediğim bişey var. Mesela googlede “ali” adında bir arama yaptık ve biz 3. sıradaki siteye girmesini istiyoruz. Bunu nasıl yapacağız?

    4 Nisan 2011 - 10:39

Yorum Yap

Isim : (gerekli)
E-mail : (gerekli)
Yorumunuz: