Google sheets veya Selenium üzerinden siteden veri çekme

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
Herkese merhaba "https://www.aydemperakende.com.tr/borc-sorgula" bu siteden borçlarını çekmek istiyorum. İster online ister masaüstü excel hiç farketmez bu konuda bilgisi olan hocalarım yardımcı olursa çok memnun olurum.

Örnek abone numarası ; 800005547821 elimde 40'dan fazla abone numarası var hepsini tek tuşla sorgulatıp borçlarını yan yana sütunlarda yazmasını istiyorum.
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025

ibere

Altın Üye
Katılım
31 Mart 2018
Mesajlar
129
Excel Vers. ve Dili
Office 365
Altın Üyelik Bitiş Tarihi
21-04-2027
239093

Kod:
Sub test()
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A1").End(xlDown).Row
For i = 2 To rw
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.FindElementByName("contract").Clear
x.FindElementByName("contract").SendKeys Range("A" & i)
x.FindElementByXPath("//*[@id='button1']").Click
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
Next
End Sub
Selenium ile kullanabilirsin.
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
Ekli dosyayı görüntüle 239093

Kod:
Sub test()
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A1").End(xlDown).Row
For i = 2 To rw
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.FindElementByName("contract").Clear
x.FindElementByName("contract").SendKeys Range("A" & i)
x.FindElementByXPath("//*[@id='button1']").Click
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
Next
End Sub
Selenium ile kullanabilirsin.
Hocam merhaba anca bakıp dönüş yapabildim kusura bakmayın kontrol ettiğimde maalesef ilk abone numarasını yapıp daha sonra program kapanıyor.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Döngüde araya gecikme koymalısınız diye düşünüyorum.
 
Katılım
20 Ekim 2005
Mesajlar
475
s.a.

Aşağıdaki şekilde dener misiniz.
Kod:
Sub test()
On Error Resume Next
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A2").End(xlDown).Row
For i = 2 To rw
If IsEmpty(rw) = True Then
    Exit Sub
Else
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.Wait 1000
x.FindElementByName("contract").Clear
x.Wait 1000
x.FindElementByName("contract").SendKeys Range("A" & i)
x.Wait 1000
x.FindElementByXPath("//*[@id='button1']").Click
x.Wait 1000
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
x.Wait 1000
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
x.Wait 1000
End If
Next
End Sub
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
s.a.

Aşağıdaki şekilde dener misiniz.
Kod:
Sub test()
On Error Resume Next
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A2").End(xlDown).Row
For i = 2 To rw
If IsEmpty(rw) = True Then
    Exit Sub
Else
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.Wait 1000
x.FindElementByName("contract").Clear
x.Wait 1000
x.FindElementByName("contract").SendKeys Range("A" & i)
x.Wait 1000
x.FindElementByXPath("//*[@id='button1']").Click
x.Wait 1000
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
x.Wait 1000
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
x.Wait 1000
End If
Next
End Sub
Tekrardan Merhaba evet bu sefer çalışıyor ama bazı aboneliklerin (örn:800001195615) 2 adet borcu var ama program tek borcu yazıyor buraya. Sadece 1.hücrede abone numarası olmasına rağmen diğer hücrelerde de abone numarası varmış gibi görüp sorgulama yapmaya çalışıyor. Son ödeme tarihine gerek yok yazmasada olur.

Eğer olabiliyorsa A2 Sütununa apartman adı B2 Sütununa 1.borç C2 sütununa 2. borç yazdırabilirsek mükemmel olur. Gerçi ben istiyorumda olur mu olabiletesi var mı bilemedim şimdiden emeğiniz için her şey için çok teşekkürler
 

erd5334

Altın Üye
Katılım
26 Nisan 2012
Mesajlar
123
Excel Vers. ve Dili
excel 365
Altın Üyelik Bitiş Tarihi
01-12-2026
C# ile daha basit yapılır. yalnız bana birden fazla borcu olan abone numarası yollayın onun bilgileri üzerinden bakayım.
 
Katılım
20 Ekim 2005
Mesajlar
475
s.a.

bu şekilde dener misiniz. İki borç alt atta değil de yan yana oluyor.
Kod:
Sub test()
On Error Resume Next
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A2").End(xlDown).Row
wr = Range("B2").End(xlUp).Row
wra = Range("B2").End(xlUp).Row
wra = Empty
For i = 2 To rw
x.Wait 1000
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.Wait 500
x.FindElementByName("contract").Clear
x.Wait 500
x.FindElementByName("contract").SendKeys Range("A" & i)
x.Wait 500
x.FindElementByXPath("//*[@id='button1']").Click
x.Wait 500
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
x.Wait 500
Range("d" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[3]/td[3]").Text
x.Wait 500
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
x.Wait 500
Range("e" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[3]/td[4]").Text
Next
End Sub
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
s.a.

bu şekilde dener misiniz. İki borç alt atta değil de yan yana oluyor.
Kod:
Sub test()
On Error Resume Next
Dim x As New Selenium.WebDriver
x.Start "Chrome"
rw = Range("A2").End(xlDown).Row
wr = Range("B2").End(xlUp).Row
wra = Range("B2").End(xlUp).Row
wra = Empty
For i = 2 To rw
x.Wait 1000
x.Get "https://www.aydemperakende.com.tr/borc-sorgula"
x.Wait 500
x.FindElementByName("contract").Clear
x.Wait 500
x.FindElementByName("contract").SendKeys Range("A" & i)
x.Wait 500
x.FindElementByXPath("//*[@id='button1']").Click
x.Wait 500
Range("b" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[3]").Text
x.Wait 500
Range("d" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[3]/td[3]").Text
x.Wait 500
Range("c" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[2]/td[4]").Text
x.Wait 500
Range("e" & i) = x.FindElementByXPath("/html/body/main/div[2]/div[1]/div[3]/div/div/table/tbody/tr[3]/td[4]").Text
Next
End Sub
Hocam Merhaba ellerinize sağlık kod çalışıyor fakat 2 adet revize yapmamız mümkün mü acaba ?

1-A2 Hücresine apartman adlarını yazmak istiyorum B2 hücresinde abone numaları yazmak istiyorum.
2-Son ödeme tarihlerini iptal etmemiz mümkün mü ? A2'de apartman adı B2'de Abone numaraları C2'de 1.Borç yazsın D2'de 2.borç yazsın istiyorum.
 

onder_09

Altın Üye
Katılım
17 Mart 2017
Mesajlar
202
Excel Vers. ve Dili
2016 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2025
C# ile daha basit yapılır. yalnız bana birden fazla borcu olan abone numarası yollayın onun bilgileri üzerinden bakayım.
Bütün abone numaraları burada hocam en baştaki abone numarasında 2 adet borç var. En fazla 2 adet borç oluyor 2'den fazla borç olmuyor.
 

Ekli dosyalar

erd5334

Altın Üye
Katılım
26 Nisan 2012
Mesajlar
123
Excel Vers. ve Dili
excel 365
Altın Üyelik Bitiş Tarihi
01-12-2026
Bütün abone numaraları burada hocam en baştaki abone numarasında 2 adet borç var. En fazla 2 adet borç oluyor 2'den fazla borç olmuyor.
Hocam program bir üst mesajda. excel aç dediğinizde açılan excel dosyasındaki başlık isimlerini değiştirmeyin. yeni sütün ekleyip yeni başlık ekleyebilirsiniz. ancak benim verdiğim başlık isimlerini bozmayın. birde programdaki tabloya sağ tıkladığınızda verileri excele aktarma modülü de ekledim.
 
Üst