Delphi Can

Orjinalini görmek için tıklayınız: Kur Almak
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
Aşağıdaki linkin Kur bilgilerini almam gerekiyor ama genel yollar ile alamıyorum. Post metodu göndererek verdiğim tarihe göre alınabilir mi?

https://www.rbi.org.in/scripts/Reference...chive.aspx
Yapılabilir gibi duruyor ama indy ile imkansız https sitelerine post -back yapılamıyor.
CIS komponenti lazım sana.

Akm9pB.png
(16-06-2017, Saat: 14:59)yhackup Adlı Kullanıcıdan Alıntı: [ -> ]Yapılabilir gibi duruyor ama indy ile imkansız https sitelerine post -back yapılamıyor.
CIS komponenti lazım sana.

Akm9pB.png

Get olarak alabilsem daha kolay olacaktı belli tarihlerde ama arka planda çalıştığı için uğraştıracak gibi beni
TWebBrowser ile yapabilirsiniz:

Mesela form'un OnCreate'inde yada bir butona basılınca:
WebBrowser1.Navigate('https://www.rbi.org.in/scripts/ReferenceRateArchive.aspx');

Daha sonra WebBrowser'ın OnDocumentComplete olayında
var
 forms : IHTMLElementCollection;
 form : IHTMLFormElement;
 field : IHTMLElement;
begin
 forms := (WebBrowser1.Document AS IHTMLDocument2).Forms as IHTMLElementCollection;
 form := forms.item(0,0) as IHTMLFormElement;

 field := form.Item('txtFromDate','') as IHTMLElement;
 (field as IHTMLInputElement).value := '16/06/2017';

 field := form.Item('txtToDate','') as IHTMLElement;
 (field as IHTMLInputElement).value := '16/06/2017';

 field := form.Item('chkAll','') as IHTMLElement;
 (field as IHTMLInputElement).checked  := True;

 field := form.Item('btnSubmit','') as IHTMLElement;
 field.click;
end;

Artık bir sonraki OnDocumentComplete tetiklendiğinde HTML parse yapacaksınız. (Parse yaparken class'ı tablebg olan ikinci table'ı kullanmanız yeterli)

Not: Yukarıdaki örnekte OnDocumentComplete'de yazılan kodların sürekli bir döngüye sebebiyet vereceği malumunuzdur umarım. Basit bir önlemle sadece birinci ve ikinci tetiklenmesini dikkate almalısınız.
OnDocumentComplete doğru çalışamıyor maalesef.
bir site açıyorsun 10 defa çalışıyor. bazen 8 bazen 9 kafasına göre Smile
Kafasına göre değil; sayfadaki Frame'ler, Ajax ile yapılan çağrımlar vs. ile alakalı. Sayfanın içeriği değişmediği sürece sorun olmaz.
Ayrıca verdiğim sadece örnek, OnDocumentComplete'i kullanmak zorunda değilsiniz. Yeter ki sayfanın yüklendiğine emin olacak kadar bekleyip verdiğim kodu çalıştırın.
Sayfaya navigate ettikten sonra, beklediğin bir elementin gelip gelmediğini bekleyip sonra çalıştırıyorum ben kodumu.