• Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Web sayfasından tablo almak Selenium

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

Jeeday

Yeni Üye
Katılım
22 Kas 2021
Mesajlar
46
Çözümler
1
Aldığı beğeni
5
Excel V
Office 2016 EN
Selam herkese,

Alttaki linkteki tabloyu almak istiyorum. 2 tane farklı yol denedim;
1.si table mantığı ile aldım
2.si query ile aldım

Her ikisi de bir zaman sonra hatalı sonuçlar vermeye başladı.

Sizlerin de önerisini rica edeceğim.

Teşekkürler
 
Selenium ile aşağıdaki kodlar ile çekebilirsiniz.
Kod:
Sub askm()
Dim cd As Selenium.ChromeDriver
Dim t As Selenium.WebElement
    
Set cd = New Selenium.ChromeDriver
cd.AddArgument "--headless"
    
cd.Start
cd.Get "https://www.cepteteb.com.tr/altin-kurlari"
    
Set t = cd.FindElementsByCss("table")(1)
t.AsTable.ToExcel Sayfa1.Range("A1")
Sayfa1.Columns("A:D").AutoFit
End Sub
 
sayın jeeday intenet explorer ile eski verileri alıyor bende selenium kurulu değil.kolay gelsin
 
Ekdeki dosyada GÜNCELLE butonuna basınca web deki tablo verilerini çekiyor..banka siteleri çok dinamik olduğundan arada tutukluk yapabilir.
 

Ekli dosyalar

selenium u kurun sıkıntıdan kurtulun diyorum
 
Selenium ile aşağıdaki kodlar ile çekebilirsiniz.
Kod:
Sub askm()
Dim cd As Selenium.ChromeDriver
Dim t As Selenium.WebElement
   
Set cd = New Selenium.ChromeDriver
cd.AddArgument "--headless"
   
cd.Start
cd.Get "https://www.cepteteb.com.tr/altin-kurlari"
   
Set t = cd.FindElementsByCss("table")(1)
t.AsTable.ToExcel Sayfa1.Range("A1")
Sayfa1.Columns("A:D").AutoFit
End Sub
Selenium'u kurdum. Referenceslardan seçtim. kodu çalıştırdım.
Set cd = New Selenium.ChromeDriver
bu satırda excel kapanıyor...
 
chrome driver i selenium un kurulduğu yere yüklediniz mi
 
bir de refenceslerden selenium u seçmeniz gerekiyor
 
şirkete selenium vb. uygulamalar kurmak yasak olduğu için farklı yollara ihtiyacım var
Kod:
Sub cepteteb()
Dim XMLReq As New MSXML2.ServerXMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
 

url = "https://www.cepteteb.com.tr/altin-kurlari"
XMLReq.Open "GET", url, False
XMLReq.setRequestHeader "cf-cache-status", "DYNAMIC"
XMLReq.setRequestHeader "content-type", "txt/html"
XMLReq.setRequestHeader "user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
XMLReq.send allbody

If XMLReq.Status <> 200 Then
    
    Sheets("Akakce").Range("C" & i) = "Fiyat Çekilemedi"

End If

HTMLDoc.body.innerHTML = XMLReq.responseText

Sheets("cepteteb").Cells(2, 1) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(1).getElementsByTagName("td")(0).innerText
Sheets("cepteteb").Cells(2, 2) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(1).getElementsByTagName("td")(1).innerText
Sheets("cepteteb").Cells(2, 3) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(1).getElementsByTagName("td")(2).innerText
Sheets("cepteteb").Cells(2, 4) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(1).getElementsByTagName("td")(3).innerText

Sheets("cepteteb").Cells(3, 1) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(2).getElementsByTagName("td")(0).innerText
Sheets("cepteteb").Cells(3, 2) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(2).getElementsByTagName("td")(1).innerText
Sheets("cepteteb").Cells(3, 3) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(2).getElementsByTagName("td")(2).innerText
Sheets("cepteteb").Cells(3, 4) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(2).getElementsByTagName("td")(3).innerText


Sheets("cepteteb").Cells(4, 1) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(3).getElementsByTagName("td")(0).innerText
Sheets("cepteteb").Cells(4, 2) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(3).getElementsByTagName("td")(1).innerText
Sheets("cepteteb").Cells(4, 3) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(3).getElementsByTagName("td")(2).innerText
Sheets("cepteteb").Cells(4, 4) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(3).getElementsByTagName("td")(3).innerText

Sheets("cepteteb").Cells(5, 1) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(4).getElementsByTagName("td")(0).innerText
Sheets("cepteteb").Cells(5, 2) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(4).getElementsByTagName("td")(1).innerText
Sheets("cepteteb").Cells(5, 3) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(4).getElementsByTagName("td")(2).innerText
Sheets("cepteteb").Cells(5, 4) = HTMLDoc.getElementsByClassName("altinTablo")(0).getElementsByTagName("tr")(4).getElementsByTagName("td")(3).innerText

End Sub

ekte örnek ekledim o örneğe göre şekilendirebilirsiniz
 

Ekli dosyalar

Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst