Delphi Can
Kur Almak - Baskı Önizleme

+- Delphi Can (https://www.delphican.com)
+-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3)
+--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6)
+--- Konu Başlığı: Kur Almak (/showthread.php?tid=1074)



Kur Almak - Mericx - 16-06-2017

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/ReferenceRateArchive.aspx


Cvp: Kur Almak - yhackup - 16-06-2017

Yapılabilir gibi duruyor ama indy ile imkansız https sitelerine post -back yapılamıyor.
CIS komponenti lazım sana.

Akm9pB.png


Cvp: Kur Almak - Mericx - 16-06-2017

(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


Kur Almak - SimaWB - 16-06-2017

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.


Kur Almak - yhackup - 16-06-2017

OnDocumentComplete doğru çalışamıyor maalesef.
bir site açıyorsun 10 defa çalışıyor. bazen 8 bazen 9 kafasına göre Smile


Kur Almak - SimaWB - 17-06-2017

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.


Kur Almak - yhackup - 17-06-2017

Sayfaya navigate ettikten sonra, beklediğin bir elementin gelip gelmediğini bekleyip sonra çalıştırıyorum ben kodumu.