• 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ü e-ticaret sitesinden veri çekme

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.

takvalat

Yeni Üye
Katılım
4 Ağu 2023
Mesajlar
4
Aldığı beğeni
0
Excel V
Office 2007 TR
Merhaba, vba internette bulunan eğitim videolarından öğrenmeye çalışıyorum. Komutları yazmayı bilmiyorum ancak mantığını anlamaya çalışıyorum. Konuyla ilgi doğru dürüst bilgim yok ama videolarda öğrendiklerimi farklı siteler üzerinde uyguluyorum.

Fiyat ve başlığa ulaşmaya çalışıyorum nasıl bir kod ile ulaşabilirim bana yardımcı olabilir misiniz ?



Ekran Alıntısı.JPG



Link


C#:
Option Explicit
Sub haha()
Dim i, sonsat As Integer
Dim url As String
Dim XMLreq As New MSXML2.XMLHTTP60
Dim HTMLdoc As New MSHTML.HTMLDocument
sonsat = Sheets("Veri").Range("A10000").End(xlUp).Row
For i = 3 To sonsat
On Error Resume Next
url = Sheets("Veri").Range("A" & i)
XMLreq.Open "Get", url, False
XMLreq.send
If XMLreq.Status <> 200 Then
   MsgBox "Sayfaya Ulaşılamadı"
   Exit Sub
End If
HTMLdoc.body.innerHTML = XMLreq.responseText
Sheets("Veri").Range("C" & i) = HTMLdoc.getElementsByClassName("price")(0).innerText
 
Çözüm
Aşağıdaki şekilde deneyin.
Kod:
Sub test()
Dim baglan As New Selenium.WebDriver
baglan.Start "Chrome"

sonsat = Sheets("Veri").Range("A10000").End(xlUp).Row
For i = 3 To sonsat
    url = Sheets("Veri").Range("A" & i)
    
    baglan.Get url
    baglan.Wait 3000
    
    Sheets("Veri").Range("C" & i) = baglan.FindElementsByClass("price")(2).FindElementsByTag("span")(1).Text
    
Next i
baglan.Quit
End Sub
GetElementsByClassName("price") kısmı çalışmıyor. Sebebi nedir bilmiyorum. Üzerinde denemeler yapıyorum. Bir sonuca ulaşırsam paylaşacağım.
 
Çok uğraştım olmadı. Selenium denedim o direkt versiyon hatası veriyor bende. Selenium siz de çalışıyorsa onunla dener misiniz? O çok daha kullanışlı ayrıca.
 
İlginize çok teşekkür ederim Sonuçlandırsanız çok sevinirim
Bende herhangi bir şekilde etiketleri değişkene almıyor. Selenium indireyim kurayım dedim onda da sürüm ile ilgili arıza çıkardı.
Şunu farkettim ki internetten herhangi bir şekilde veri çekebileceğim bir kod yazabilecek durumda değilmişim. Farklı yöntemler var mı onları araştırayım bari, bulabilirsem hem ben bir şey öğrenmiş olurum hem de sizin işinize yaramış olur.
 
Bende herhangi bir şekilde etiketleri değişkene almıyor. Selenium indireyim kurayım dedim onda da sürüm ile ilgili arıza çıkardı.
Şunu farkettim ki internetten herhangi bir şekilde veri çekebileceğim bir kod yazabilecek durumda değilmişim. Farklı yöntemler var mı onları araştırayım bari, bulabilirsem hem ben bir şey öğrenmiş olurum hem de sizin işinize yaramış olur.
İlginize çok teşekkür ederim
 
Merhaba, selenium kurdum hazırladım kodlar konusunda da yardımcı olur musunuz ?
Kod:
Dim ch as Seneium.ChromeDriver
ch.Get "websitesi adresi"

Dim Element as Selenium.WebElement
Dim Elements As Selenium.WebElements

Set Elements = ch.FindElementsByClass("price")

For Each Element In Elements
    Debug.Print(Element.innerHTML)
Next Element

Seleniumda kabaca şöyle bir mantık vardı diye hatırlıyorum. Yine de yanılıyor olabilirim.
 
Merhabalar,
Ekli örneği inceleyin
 

Ekli dosyalar

Aşağıdaki şekilde deneyin.
Kod:
Sub test()
Dim baglan As New Selenium.WebDriver
baglan.Start "Chrome"

sonsat = Sheets("Veri").Range("A10000").End(xlUp).Row
For i = 3 To sonsat
    url = Sheets("Veri").Range("A" & i)
    
    baglan.Get url
    baglan.Wait 3000
    
    Sheets("Veri").Range("C" & i) = baglan.FindElementsByClass("price")(2).FindElementsByTag("span")(1).Text
    
Next i
baglan.Quit
End Sub
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst