Webden Veri Çekme

Katılım
26 Aralık 2022
Mesajlar
4
Excel Vers. ve Dili
excel
Merhabalar ;

Anlık Borsa Takip uygulaması yapmaya çalışmaktayım fakat geçikmeli olarak veri çekiyor yani 15 dk geçikmeli.Bunu üzerine mynet borsadan anlık veri paketi satın aldım fakat bu anlık veri oluşumunu malesef excel e işleyemiyorum hala 15 dk geçikmeli olarak gösteriyor.bunu nasıl anlık olarak dönüştürebilirim yardım edebilirseniz çok sevinirim.
 
Katılım
26 Aralık 2022
Mesajlar
4
Excel Vers. ve Dili
excel
Merhabalar ;

yazımın üstüne birşeyler eklemek istedim kendi çabalarım ile birşeyler yazmaya çalıştım selenium üzerinde fakat bir yerde takıldım yardım edebilirseniz çok sevinirim.yazdığım kodu aşağıda bulabilirsiniz.

1.Soru
Sayfayı açtığımda gelen reklamları kod üzerinden kapamalarını yapamıyorum. Nasıl bir yol izleyebilirim ?
2.Soru
Kod üzerinde sürekli anlık veri çekeceğim için sayfadaki verileri (debug) yöntemi üzerinden Excel e nasıl aktarım yapabilirim ?
3.Soru
Bu döngüyü nasıl sağlayabilirim. Süreklilik olarak ?

Sub deneme()

Dim x As New Selenium.WebDriver

x.Start "Chrome"


x.Get "https://finans.mynet.com/borsa/"


x.FindElementByXPath("/html/body/header/nav/div[1]/div[1]/form/a[2]").Click

x.FindElementById("loginuser").SendKeys "*****"

x.FindElementById("loginpassword").SendKeys "*****"

x.FindElementById("rememberstate").Click

x.FindElementById("loginbutton").Click

x.FindElementByXPath("/html/body/div[12]/div/div[1]/div/ul/li[5]/a").Click

x.Wait 1000


Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[1]").Text

Debug.Print x.FindElementByXPath("//html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[2]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[3]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[4]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[5]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[6]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[7]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[8]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[9]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[10]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[11]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[12]").Text

Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[13]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[14]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[15]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[16]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[17]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[18]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[19]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[20]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[21]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[22]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[23]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[24]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[25]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[26]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[27]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[28]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[29]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[30]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[31]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[32]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[33]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[34]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[35]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[36]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[37]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[38]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[39]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[40]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[41]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[42]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[43]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[44]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[45]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[46]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[47]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[48]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[49]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[50]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[51]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[52]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[53]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[54]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[55]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[56]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[57]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[58]").Text
Debug.Print x.FindElementByXPath("/html/body/section/div[1]/div[1]/div[3]/div/div/div[2]/div/table/tbody/tr[59]").Text



End Sub
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Merhaba;

https://finans.mynet.com/borsa/canliborsa/ sitesine baktığımda da borsa için "15 dakikalık gecikmelidir" diye yazıyor. Üye girişiyle belki anlıktır, bilemiyorum..

Asıl meseleye gelirsek burada veriler WebSocket ile geliyor. Sizin asıl bakmanız gereken kısım budur.

wss://widget-mediator.zopim.com/s/W/ws/H+VBNTTHonFPsVCI/c/1672293412328 yukarıdaki adresin ws adresi...

Excel ile WS(websocket) verileri nasıl alınır bilmiyorum. Kolay olduğunu da sanmıyorum. Arkaya .Net, Python vs. gibi eklentilerle de olabilir. Buna odaklanmanız lazım. Bu şekilde veriler alınırsa gerçek anlamda anlık olarak veriler gelir.

WS ile değil de yukarıdaki gibi almaya kalkarsanız. Sanırım Timer eşliğinde alırsınız. Her "N" sürede kontrol ettirmek gibi.. Pek performanslı olacağını da sanmıyorum.

Excel Websocket diye araştırın. Buradaki Excel uzmanı arkadaşlar için de güzel bir konu aslında.. Belki de zaten işlenmiş bir konudur ona da bakmadım..
 
Katılım
26 Aralık 2022
Mesajlar
4
Excel Vers. ve Dili
excel
Merhaba;

https://finans.mynet.com/borsa/canliborsa/ sitesine baktığımda da borsa için "15 dakikalık gecikmelidir" diye yazıyor. Üye girişiyle belki anlıktır, bilemiyorum..

Asıl meseleye gelirsek burada veriler WebSocket ile geliyor. Sizin asıl bakmanız gereken kısım budur.

wss://widget-mediator.zopim.com/s/W/ws/H+VBNTTHonFPsVCI/c/1672293412328 yukarıdaki adresin ws adresi...

Excel ile WS(websocket) verileri nasıl alınır bilmiyorum. Kolay olduğunu da sanmıyorum. Arkaya .Net, Python vs. gibi eklentilerle de olabilir. Buna odaklanmanız lazım. Bu şekilde veriler alınırsa gerçek anlamda anlık olarak veriler gelir.

WS ile değil de yukarıdaki gibi almaya kalkarsanız. Sanırım Timer eşliğinde alırsınız. Her "N" sürede kontrol ettirmek gibi.. Pek performanslı olacağını da sanmıyorum.

Excel Websocket diye araştırın. Buradaki Excel uzmanı arkadaşlar için de güzel bir konu aslında.. Belki de zaten işlenmiş bir konudur ona da bakmadım..
üye girişimiz var kodda üye girişi yaptırıyorum o konuda herhangi bir sorun yok.Fakat kodda olduğu gibi bu sürekli yenileyerek excel e yazdırmam gerekli.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Ben de onu diyorum WS ile çekerseniz zaten yenilenecek. Timer ya da manuel yenilemeye gerek kalmaz. Tabii sorun bunu Excel ile almak :)
Yukarıdaki gibi kodla çok büyük performans sorunu yaşarsınız. İlla yukarıdaki gibi yapacağım derseniz de aynı xpath'i defalarca almak yerine base kısmını bir kere alıp döngüyle text verilerini çekin.
 
Katılım
26 Aralık 2022
Mesajlar
4
Excel Vers. ve Dili
excel
Ben de onu diyorum WS ile çekerseniz zaten yenilenecek. Timer ya da manuel yenilemeye gerek kalmaz. Tabii sorun bunu Excel ile almak :)
Yukarıdaki gibi kodla çok büyük performans sorunu yaşarsınız. İlla yukarıdaki gibi yapacağım derseniz de aynı xpath'i defalarca almak yerine base kısmını bir kere alıp döngüyle text verilerini çekin.
ben ilk defa böyle bir kod yazıyorum.youtube üzerinden öğrenerek fakat bu döngüyü sonlardırmamak adına nasıl bir işlem gerçekleştirebilirim.o kod dizinini bilmiyorum malesef :)
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Timer olaylarına yazmak gerekir. (tavsiye etmiyorum)
 
Üst