ISBN içeren kitap listesini tamamlama

degirman

Altın Üye
Katılım
21 Temmuz 2006
Mesajlar
55
Altın Üyelik Bitiş Tarihi
12-05-2026
Merhaba,
Bir sütununda ISBN numaraları olan bir excel tablosunun diğer sütunları "Kitabın Adı, Yazarı, Çevirmeni, Yayın Tarihi, Açıklama, Baskı Sayısı, Dil, Sayfa Sayısı, Cilt Tipi, Kağıt Cinsi, Boyut ...vb" dir.
Bu tablonun ISBN numaraları dışındaki hücreleri boştur. Bu verileri WEB üzerindeki herhangi bir veri tabanından otomatik olarak çekerek tabloyu doldurmak mümkün müdür? Ekteki örnek dosyada belirli sayıda ISBN no'su vardır. İhtiyaç duyulan, bu listeye her yeni ISBN no eklendiğinde yanına ilgili bilgileri otomatik yazacak bir tablodur.
İlgilenenler için şimdiden teşekkür ederim.
 

Ekli dosyalar

Katılım
9 Eylül 2010
Mesajlar
855
Excel Vers. ve Dili
2016&2019&2021 TR
Altın Üyelik Bitiş Tarihi
29-09-2023
Hangi veritabanından çekilecek veriler. Verilerin çekileceği siteyi verirseniz farklı çözümler uygulanabilir.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
Dosyanızı inceleyemedim ama yaptığınız yoruma göre dosyanız ve kodlarınız aşağıdadır.
Not: Excel > VBA > References > Tools > MicrosoftHTML Object Library işaretlemeniz gerekmektedir.

Dosyayı Buradan indir (Silinebilir)

C#:
Sub Web_XmlHttp()
Dim f()
Dim htmldoc As HTMLDocument
Set xmlHTTPReq = CreateObject("MSXML2.XMLHTTP")
Set htmldoc = CreateObject("htmlFile")

b = Timer
Application.ScreenUpdating = False
For a = 2 To Cells(Rows.Count, 1).End(xlUp).Row
If Cells(a, 2) = "" Then
isbn = Cells(a, 1)
If Len(isbn) = 10 Then isbn = "978" & isbn
    postURL = "https://www.ilknokta.com/index.php?p=Products&q_field_active=0&ctg_id=&q=" & isbn
    With xmlHTTPReq
        .Open "GET", postURL, False
        .Send
        
        deg1 = Split(.responseText, isbn & " - arama sonuçları")
        If UBound(deg1) > 0 Then
        deg2 = Split(deg1(0), " ")
            If UBound(deg2) > 0 Then
                Cells(a, 2) = "HATALI ISBN Veya Sitede bu kitap bulunmuyor."
                GoTo son
            End If
        End If
    End With

    With htmldoc
        .body.innerHTML = xmlHTTPReq.responseText
    End With
    
sut = 2
Rem d = yazar, başlık,altbaşlık,yayınevi, açıklama
d = Array("writer", "contentHeader prdHeader", "sub_title", "publisher", "wysiwyg prd_description")
For c = LBound(d) To UBound(d)
    On Error Resume Next
        Cells(a, sut) = htmldoc.getElementsByClassName(d(c))(0).innerText
        sut = sut + 1
    On Error GoTo 0
Next
''ÖZELLİKLER
With htmldoc.getElementsByClassName("table-block view-table prd_custom_fields")(0)
    For iSPN = 0 To .getElementsByTagName("div").Length - 1
        With .getElementsByTagName("div")(iSPN)
            Select Case LCase(.className)
                Case "table-cell"
                If .innerText <> ":" Then
                Cells(a, sut) = .innerText
                sut = sut + 1
                End If
                Case Else
                'do nothing
            End Select
        End With
    Next iSPN
End With

If Left(Cells(a, "M"), 4) = "Cilt" Then
Cells(a, "m").Resize(1, 5).Copy Cells(a, "n").Resize(1, 5)
Cells(a, "m") = ""
End If

Application.ScreenUpdating = True
son:
End If
Next a
MsgBox Format(Timer - b, "Fixed") & " Sn.'de İşlem Tamamlandı" _
& vbNewLine & "Veriler www.ilknokta.com sitesinden alınmıştır.", vbInformation, "Metehan8001@gmail.com"
End Sub
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Sayın metehan8001 paylaştığınız kod faydalı oldu. XMLHTTP konusunda kaynak önerme ya da örnek bir kaç site üzerinden veri çekecek şekilde kod yazma imkanınız olur mu? Ya da arşivinizde mevcutsa paylaşabilir misiniz. Öğrenmek amacıyla faydalı olur.
 

metehan8001

Yasaklı
Katılım
8 Nisan 2010
Mesajlar
125
Excel Vers. ve Dili
Office 2007 -2016 TR
XMLHTTP konusunda kendimi geliştirmeye çalışıyorum. Bu sıralar bu konu üzerine çalışmalar yapıyorum. Siz örnek siteleri belirtirseniz yardımcı olurum hem bende biraz biraz geliştirmiş olurum kendimi.
Saygılarımla.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
İlginiz için çok teşekkür ederim. Ben de öğrenmek istiyorum bazı kodlarda normal tag name veya classname vb veri çekiliyor. Bazılarında ise farklı kodlar kullanılıyor.
XMLHTTP kodlar ile butona ya da linke tıklama oluyor mu? Yoksa mevcut sayfadaki verileri almak için mi kullanılıyor. Örneğin https://www.excel.web.tr/ anasayfadaki konular üzerinde bir müddet bekleyince içerik çıkıyor. Bunu alabilir miyiz. Ben html kodları içerisinde göremedim.
Bir de Haluk Beyin belirttiği örneklerin bazılarında xml dosyalar mevcut. Sitenin xml dosyası olup olmadığını nasıl anlarız.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
1. sorunuzla ilgili olarak; XMLHTTP ile web sayfasının "client-son kullanıcı" tarafında görüldüğü şekliyle sayfadaki veriler alınabildiği gibi, sayfa üzerindeki butonlara tıklama, combobox'lardan seçim yapmak gibi olaylar sonucunda sunucuya gönderilen parametreler önceden tespit edilerek, XMLHTTP ile "GET" yerine "POST" metodu kullanılarak sözkonusu butonların vb kontroller ile yapılan seçimler sonucunda oluşan sorguya ait veriler alınabilir.

2. sorunuzla ilgili olarak; söz konusu web sayfasının kaynak kodları incelenerek, sayfanın herhangibir XML'den beslenip beslenmediği anlaşılabilir.

Tüm bu işler için; biraz HTML, biraz JavaScript ve bir miktar VBA'nin yanında epeyce sabır ve ilgi gerekmektedir.

.
 

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Haluk Bey cok tesekkurler. Normal veri cekme yapabiliyorum. Yani az bucuk bilgim var sanirim. XMLHTTP ile buton ya da link tiklama olan bir örnek var midir? Paylasirsaniz sevinirim.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,313
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ücretli olarak verdiğim dosyaların arasında bu tipte örnekler var.

Örneğin, aşağıdaki web sitesinden verilerin alınması ....

http://eislem.izmir.bel.tr/halfiyatlari.aspx

Yukarıda dediğim gibi, uzun yılların bilgi ve birikimiyle bu tür işler yapılabiliyor. Eğer isterseniz, özel mesajla bana ulaşabilirsiniz.

.
 
Üst