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
c# webbrowser durma kontrolü
3
●568
- 17-12-2016, 21:01:33kendi 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:00Başta cevap için teşekkürlerertan2002 adlı üyeden alıntı: mesajı görüntüle
ş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:19oncelikle 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