• 17-12-2016, 16:57:07
    #1
    c# ile karşı siteye login olup daha sonra içerik çekiyorum.

    Bu işlem için webbrowser kullanıyorum, webbrowser kullanmamdaki amaç hem login i basit oluyor hemde DDOS kontrolü olunca atlatabiliyorum.

    Fakat yüklenme tam bitmeden içerik çekiliyor buna bir çare bulamadım çok araştırdım

    şunu kullandım ReadyState.complete olmadığı durumlar oluyor.

    if (browser.ReadyState != WebBrowserReadyState.Complete)
    return;

    bunun dışında complete eventini kullanıyorum oda kullanım açısından çok zorluyor, sayfa sayfa gezmem gerekiyor

    yardımcı olabilirseniz çok sevinirim
  • 17-12-2016, 21:01:33
    #2
    kendi compete eventini yaz hocam. eger sadece bu site icin ise, login tamamen oldugunda sayfada var olan elementi kontrol ettir (sitenin kaynak kodunda).

    bir timer ile her saniyede kodda atiyorum bir buton var mi yok mu bak. Eger var ise login olmus demektir ve timer i kapat devam et..

    sitenin complete olmamasinin sebebi ajax fonksiyonlarinin bitmemis olmasidir. site yuklenmis olabilir ama ajax fonksiyonlari devam ediyorsa browser anlayamaz.

    benim soyledigim mantikta adamin biri ornek kod yazmis

    http://stackoverflow.com/a/15303078
    bu tarz bi sey yapmalisin sen de.


    Ikinci olarak da yaptigin yola ek olarak url karsilastirmasi yapabilirsin. Belki bu daha efektif bir cozum olabilir. Site yuklenirken url de degisiyor onlari karsilastirabilirsin son url ile target url

    burada bir ornek var

    http://stackoverflow.com/a/2778696
  • 17-12-2016, 22:00:00
    #3
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    kendi compete eventini yaz hocam. eger sadece bu site icin ise, login tamamen oldugunda sayfada var olan elementi kontrol ettir (sitenin kaynak kodunda).

    bir timer ile her saniyede kodda atiyorum bir buton var mi yok mu bak. Eger var ise login olmus demektir ve timer i kapat devam et..

    sitenin complete olmamasinin sebebi ajax fonksiyonlarinin bitmemis olmasidir. site yuklenmis olabilir ama ajax fonksiyonlari devam ediyorsa browser anlayamaz.

    benim soyledigim mantikta adamin biri ornek kod yazmis

    http://stackoverflow.com/a/15303078
    bu tarz bi sey yapmalisin sen de.


    Ikinci olarak da yaptigin yola ek olarak url karsilastirmasi yapabilirsin. Belki bu daha efektif bir cozum olabilir. Site yuklenirken url de degisiyor onlari karsilastirabilirsin son url ile target url

    burada bir ornek var

    http://stackoverflow.com/a/2778696
    Başta cevap için teşekkürler

    şuanda 1. yolu kullanıyorum bir değişken belirleyip diğer sayfaya geçtiğini kontrol ettiriyorum bazen yarım yüklendiğinde de bu değişken alınmış olabiliyor .

    2. yöntem daha güzel fakat orada da event e hemen gitmiyor süslü parantezler arasındaki kısım tamamıyla dolunca event e gidiyor örn:

    webbrowser1.navigate("link");
    //şu aralıkta event e gidip daha sonra aşağıya inmesini sağlayabilirmiyiz?
    var degisken = webbrowser1.document;
  • 17-12-2016, 23:56:19
    #4
    oncelikle olusturdugun completed eventini sil properties den
    sonra elle kendin ver

    webbrowser1.navigate("link");
    webBrowser1.DocumentComplete += webBrowser1_DocumentCompleted;
    var degisken = webbrowser1.document;

    ....
    }

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
    --- kodlar...

    }



    lakin cok bi sey degisecegini sanmiyorum