![]() |
|
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.
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. 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
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. |