İnternetten Veri Alma

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
287
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
Merhaba

Şirketlere ait mali tablolar, fiyatları ve hedef fiyatları @Haluk Bey' in yönlendirmesiyle Json yöntemiyle çekiyorum
Aşağıdaki alanları da aynı yöntemle alınabiliyor mu diye epeyce baktım ama sitenin arka planında bunların tutulduğu yeri göremedim, sadece dış veri al yöntemiyle aldırıyor
Bu alanları tablo haricinde alma yöntemi var mıdır


252364

252365
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,387
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Size 100 $ değerinde bilgi;

- Aşağıdaki kodda belirtilen URL ile sözkonusu veriler JSON formatında alınabilir,

- Burada önemli olan URL'in kendisi ve bu URL'e yine kodda belirtilen JSON formatındaki "PayLoad" verisini "POST" metoduyla sunucuya "JSON Formatında" bir istek gönderileceği hususunu da belirterek gönderip, geri dönen cevabı (koddaki strJSON değişkeninin içeriği) ayıklayarak, sayfaya istediğiniz gibi yazdırmaktır.

Aşağıdaki kod, verileri "MsgBox" fonksiyonuyla göstermektedir, ayıklayıp sayfaya yazdırma kısmını da siz yaparsınız artık....

C#:
Sub Test()
'   Haluk - 30/06/2024
'
    Dim objHTTP As Object, strURL As String, PayLoad As String, strJSON As String
  
    Set objHTTP = CreateObject("MSXML2.XMLHTTP.6.0")
  
    strURL = "https://www.isyatirim.com.tr/_layouts/15/IsYatirim.Website/StockInfo/CompanyInfoAjax.aspx/GetSermayeArttirimlari"
  
  
    PayLoad = "{""hisseKodu"": ""ADEL"", ""hisseTanimKodu"": """", ""yil"":2024, ""zaman"":""HEPSI"", ""endeksKodu"":""09"",""sektorKodu"":""""}"
  
    objHTTP.Open "POST", strURL, False
    objHTTP.SetRequestHeader "content-type", "application/json"
    objHTTP.send PayLoad
  
    strJSON = objHTTP.responseText
  
    MsgBox strJSON
  
    Set objHTTP = Nothing
End Sub
.
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
287
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
@Haluk Bey

Teşekkür ederim
Ancak sizin paylaştığınız sermaye artırımı sayfası için, "Temettü Gerçekleşen/Planlanan " ve "Yabancı Oranları" sayfalarındaki veriler lazım

Yabacı oranlar için bu link var istenen veri gelmiyor

/_layouts/15/IsYatirim.Website/StockInfo/CompanyInfoAjax.aspx/GetYabanciOranlarXHR
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,387
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer yine yanlış anlamadıysam, aradığınız veriler bu kodla alınabiliyor......

C#:
Sub Test3()
'   Haluk - 30/06/2024
    
    Dim xmlHTTPReq As Object
    Dim HTMLdoc As Object
    Dim strURL As String
    Dim noRows As Integer, i As Integer, j As Integer
    
    Set xmlHTTPReq = CreateObject("MSXML2.XMLHTTP.6.0")
    Set HTMLdoc = CreateObject("HTMLFILE")

    strURL = "https://www.isyatirim.com.tr/tr-tr/analiz/hisse/Sayfalar/sirket-karti.aspx?hisse=ADEL"
    xmlHTTPReq.Open "GET", strURL, False
    xmlHTTPReq.send
   
    If xmlHTTPReq.Status = 200 Then
        Range("A1:H" & Rows.Count) = ""
        HTMLdoc.body.innerHTML = xmlHTTPReq.responseText
        HTMLdoc.Close
        
        Set Tables = HTMLdoc.getElementsByTagName("tbody")
        Set myTable = Tables(12)

        noRows = myTable.Rows.Length
        
        For j = 0 To myTable.Rows(0).Cells.Length - 1
            If j >= 2 And j < 7 Then
                Cells(1, j + 1) = Tables(11).Rows(i).Cells(j).innerText + 0
            Else
                Cells(1, j + 1) = Tables(11).Rows(i).Cells(j).innerText
            End If
        Next
        
        For i = 0 To noRows - 1
            For j = 0 To myTable.Rows(i).Cells.Length - 1
                If j >= 2 And j < 7 Then
                    Cells(i + 2, j + 1) = myTable.Rows(i).Cells(j).innerText + 0
                Else
                    Cells(i + 2, j + 1) = myTable.Rows(i).Cells(j).innerText
                End If
            Next
        Next
    End If
    
    Set Tables = Nothing
    Set myTable = Nothing
    Set HTMLdoc = Nothing
    Set xmlHTTPReq = Nothing
End Sub
.
 
Son düzenleme:

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
287
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
çok teşekkür ederim, evet istediğim buydu
Allah razı olsun
 

mekist

Altın Üye
Katılım
13 Ağustos 2008
Mesajlar
287
Excel Vers. ve Dili
Office 365 ProPlus-Türkçe
Altın Üyelik Bitiş Tarihi
03-10-2026
12 tabloyu son verdiğinizden aldım
17 tablo için önceden verdiğiniz koddan aldım, son verdiğinizde değiştirdim ama beceremedim

Belirttiğiniz linkteki konu bana ait değil
 

Ekli dosyalar

Üst