WebBrowser Kullanarak Bir Web Sayfasindaki Linkleri Bulma ve Otomatik Olarak Tiklama

Bir Web Sayfasindaki Linkleri Bulma ve Otomatik Olarak Tiklama

Merhaba çogumuz bir Windows uygulamasinda web sayfalarini açip, sayfa içerisindeki linkleri otomatik olarak tiklama ile ilgilenmisizdir. Otomatik tiklama islemini; reklam tiklama basina para veren (bux.to,bux3.com v.b) sitelerde hile yapmak için J veya yazmis oldugunuz bir web uygulamasi içerisinde otomatik olarak gezerek gerekli testleri yapacak bir uygulama gelistirmek için kullanabilirsiniz, burasi size kalmis. Bir web sitesi içinde gezinerek sayfa içerisindeki HTMl kontrolleri bulmak ve bu kontroller üzerinde islemler yapmak aslinda çok kolay bir istir. Bunu bu kadar kolay hale getiren ise .NET ile gelen WebBrowser kontrolüdür.

.

Projeyi buradan indirebilirsiniz.

Bu makalemizde google ana sayfasini açan ve bizim istedigimiz anahtar kelimeyi google da arayan küçük bir uygulama yapacagiz. Bu uygulama bir web sitesindeki kontolleri otomatik olarak nasil yönetecegimiz gösterecek.

Ilk olarak bir Windows Application projesi açalim ve formumuzu asagidaki gibi düzenleyelim.


.

Googlen AnaSayfaya Git butonu ve Google’da Ara butonlarinin Click eventi için asagidaki kodlari yazin.

private void Form1_Load(object sender, EventArgs e)

{

    webBrowser1.Navigate("http://www.google.com");

}

 

private void GitButon_Click(object sender, EventArgs e)

{

    webBrowser1.Navigate("http://www.google.com");

}

 

private void AraButon_Click(object sender, EventArgs e)

{

    foreach (HtmlElement el in webBrowser1.Document.All)

    {

        if (el.Name == "q")

        {

            el.InnerText = anahtarKelimeTextBox.Text;

        }

    }

    foreach (HtmlElement el in webBrowser1.Document.All)

    {

        if (el.Name == "btnG")

        {

            el.InvokeMember("click");

        }

    }

}

                Projemizi çalistirdigimizda otomatik olarak google açilir. TextBox a anahtar bir kelime yazip Google’da Ara butonuna basarsak sonucu görebiliriz.

38 thoughts on “WebBrowser Kullanarak Bir Web Sayfasindaki Linkleri Bulma ve Otomatik Olarak Tiklama

  1. Merhaba Ferhat,

    Aslinda site üyeligimiz var, ama bir süreligine pasif hale getirdik. sen simdilik foruma üye olabilirsin. zaten yakin bir zamanda site ve forum üyelikleri ortak olacak. sitedeki tüm üyelikler foruma aktarilmis durumda.

  2.  Merhaba

    webbrowser eventlarinda NewWindow diye bir event var. yeni bir pencerede açmak istedigin zaman bu tetiklenir. bunun içine e.Cancel = true; yazarsan yeni browser açilmayi iptal etmis olursun. iptal ettikten sonra kendin nasil davranmasini istiyorsan kodunu yazabilirsin. Örnegin projene baska bir form daha koy içinede browser koy. newwindow içinde bu formu açip urlsini ayarla. veya dinamik olarak browser olustur. gerisi sana kalmis yani

  3.  Sabri Bey, webBrowserin newwindow ozelligi hakkinda bir bilginiz varmi…Web sitesinde click isleminden sonra YENI bir browser açiliyor. Bunu nasil kontrol edebilirim..

  4.  merhaba bu kodlar ile google arama yaptikdan sonra çikan kaynak kodlari alamiyorum. DomDocument demissinz ama o da geriye object döndüren bir nesne. Bu konuya biraz deginebilirmisiniz acaba ?

  5. Merhabalar, bende bu tarz bi webbrowser uygulamasi yaptim, fakat ben ASP.NET de yaptim . Yine sitemizi windows forma yükletip açiyoruz. Fakat bu uygulamayi serverda veya IIS de çalistirmak istedigimde Windows formunu açmiyor. Neden olabilir bu? Yardimci olursaniz sevinirim.

  6. Ön Yargilar!

    Önce ingilizcesinin bulup linkini koyman gerekmiyormu. Hem ing turkceye cevrilmis olsa bile ne tür bir sorun teskil eder sence ? maksat paylasmak degilmi. 

    Ama emin ol bu makale çeviri degildir

  7.  bu makelenin çeviri oldugunda dair bir izlenim edindim…

     yaniliyor olabilirim

     veyahut yeniden islenmis kaynak

  8. ustalar cok guzel bir çalisma ellerinize saglik ben çevirmeyi denedim ama pek beceremedim gerci benim gibi bir acemi yeni baslayan için cok olmasa gerek benim yapmaya çalistigim izsunun sitesinde abone nosunu yazip aratdirmak ama ne yazikki beceremedim malesef bana yardimci olursaniz sevinirim küçük bir proje aciklamali olursa bende becerebilirim bilmiyorum imeyil adresi koymak yasakmi ama oleyse ozurdilerim  adresim bu serkanertas1977@gmail.com  girmek istediyim sitede bu https://www.izsu.gov.tr/pay.aspx tesekkürler iyi çalismalar bu arada axWebBrowser kullaniyorum yani Microsoft Web Browser bunda bu tur sitelerde satir ve sutun hatasi vermiyor tekrar tesekkürler

  9. elinize saglik farkli ve çok hos bir makale olmus ayrica ben webbrowser kontrolünü sadece windows programina reklam almak için içe yarar diyordum demek ki html okuma da da ciddi kolayliklari varmis. tesekkur ederim bunun gibi harika makalelerinizin devamini bekliyorum.

  10. Evet bu ne sayin msk? tetikci c# ariyordu çika çika ilk sayfada siz çiktiniz. Bence de c# kus türü degil mi niye yazilim çikiyo 😀 Sayin tetikçi arama yaparken gelismis aramaya girip c# ve keklik kelimelerini birlikte yazip ararsaniz aradiginiz sonuca ulasirsiniz 😀

  11. Sorununuzu anlamadim?. Yukaridaki makalede C# da yazilmis degilmi?. Yani C# çok genel bir ifade olmus. Sorunu tam yazarsaniz, ziyaretçilerimizin ayni sorunla karsilasmamasi için tedbir alabiliriz.

  12. istediginiz islemlerin temelinde makalede anlatilanlar var. Biz sitedeki linkleri otomatik olarak webBrowser1.Document.All veya webBrowser1.Document.Links gibi yontemlerle alabilirsiniz. her 30 saniyede bir tiklama yapabilmek için(örnegin bux.to) ise ya her tik tan sonra 30 saniye bekleme yapan bir timer koyacaksinizki çok iyi bir yontem degildir. Cunku tiklama yaptiktan sonra sayfanin yuklenmesi kac saniye surecegi belli olmaz. Ama mantiken 30 saniye gectigi zaman sayfada bir ok yazisi cikar. bu yazi cikmadan once ise baska bir url ye sayfa yonlenir,veya ayni urlde farkli bir query string ile yonlenir. Sizin document complete eventi icinde bunu yakalamaniz gerekir. Bunu yakaladiginizda siradaki linki tiklama zamani gelmis demektir. Bir zamanlar bux.to icin bir prorgam yazmistim. bulabilirsem paylasirim.

  13. iyide burada ki örnek ile baslik uyusmamis. Nasil otomatik olarak belli bir sayfayi açip oradaki istenilen bi linke örnegin 30 saniyede bir otomatik tiklatmayi yaptirabiliriz? Mesela bazi yabanci sitelerde anketler oluyor yüzyilin liderini seçin falan gibi. Diyelim ki her adayin linki farkli ve biz otomatik tiklanacak linki biliyoruz. Orada kimisi programla belirli bi adaya otomatik oy atiyorlardi o isi yaptiran kodu yazabilirmisiniz?

  14. Webbrowser kontrolunun Documnet.DOMDocument diye bir özellii var. Burdan alamayi bir dene istersen

  15. firefox’un firebug diye bir eklentisi var .. orada web sayfasi ile ilgili tüm verilere ulasilabiliyor. DOM sekmesinin altinda google’in google ad url seklinde bir linki çikiyor.. bu url google’in client side javascript ile olusturdugu bir url. Bu url daha sonra parse edilebiliyor. Ancak bu url’yi almak için ne yapmak gerekiyor? Firebug nasil aliyor acaba … bilgisi olan varsa yardimci olsun lütfen

  16. almak istediginiz linkle ilgil bir örnek gönderebilirmisiniz. Linkini almak istediginiz sitenin adresi gibi. yardimci olmaya çalisiyim

  17. webbrowser javascript ile render edilen linkleri bulamiyor. ie’de view source derseniz de gözükmüyor sadece javascript görünüyor ancak bu linkleri webbrowser render ediyor. Bunlari nasil aliriz?

  18. GetElementById de kullanilabilir. document.all cok genel bir tanimlama. Makalenin genele hitap etmesi için onu tercih ettim. Facebooka otomatik giris ile ilgili arkadaslardan istek geldi. Bir sonraki makalemde facebook için otomatik giris yapan bir program yazacagim. ama once bir facebook hesabi acmam lazim 🙂

  19. eger tiklama yapacaginiz link birden fazla ise. Örnegin 20 tane reklam linki var ve bunlari sirasi ile tiklamaniz gerekiyor. Bu linkleri sayfadaki diger linklerden ayiran bir özeliigi olmalidir. Genelliklede bu tür linkler Href kisminda farkli bir sayfayi çagirir. Örnegin bux.to sitesinde reklam linkleri href=view.php?ad=72944 seklindedir. yani tüm reklam linkleri view.php sayfasini çagiri. Siz sayfadaki kontrolleri bulduktan sonra bunlarin href taglarina bakarak tiklayip tiklamaniz gerektigine karar verebilirsiniz. webbrowser nesnesinin Document.All yerine Document.Links ozelliginide inceleyin. firsatim olursa bu tur bir sayfadaki linkleri tiklamayla ilgili makale yazarim

  20. ilk olarak otomatik tiklama yapacaginiz sitenin sourcenu kontrol ederek tiklama yaptiracaginiz alanlari bulmaniz gerekir. makalede gecen btnG isimli buton google sayfasi acilip kaynagi goster denildigi zaman ara butonuna ait name ozelligi oldugu gorulur. sizde kullanacaginiz sitedeki linlere ait belirleyici ozellikleri bulmalisiniz. Bu bilgileri makalede atlamisim haklisiniz. Belli bir süre bekledikten sonra diger linki tiklama olayi ise web browserin eventlarinda faydalinarak yapilir. Ornegin bux.to sitesinde 30 saniye bekledikten sonra sradaki link tiklanir.

  21. hocam ben pek bisi anlamadim sadece kod budur program budur demissin. sen diyelimki google aramaya http://www.bilgiseyir.com yazdik. neye göre tikliyor bunu? bir de reklamlara tiklama degil de bazi download sitelerinde belirli bir saniye bekletip ondan sonra verilen download linkine tiklama vardir. onlara nasil böyle bir uygulama hazirlayabiliriz?

  22. sabri bize böyle kötü seyler ögretme lütfen ;)insanin aklina kötü seyler geliyo hemen ;))

Guests için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir