• 쇼핑몰
  • 커뮤니티
  • 북마크

vb6.0/vba




[vb6.0/vba] [vb6.0/vba] json형식의 네이버 금융정보 긁어오기

하나를하더라도최선을
2020.05.16 19:13 494 0
  • - 첨부파일 : 2020-05-16dirId102020101docId354968306.xlsm (78.1K) - 다운로드

본문



네이버 금융의 재무분석의 재무상태료를 가져올려고 하니 json 형식의 에이터 입니다.


0d2ba714df0d94984ceb002dbfd4a618_1589623703_6039.png
 


우선 JsonConverter 모듈을 https://github.com/VBA-tools/VBA-JSON 에서 다운받아서 추가해줍니다.


그리고 아래 프로시져를 삽입하고 실행합니다.
 
Sub program1472_com()
    Dim URL As String, T As String, Cookie As String
    URL = URL & "frq=0&"
    URL = URL & "rpt=0&"
    URL = URL & "finGubun=MAIN&"
    URL = URL & "frqTyp=0&"
    URL = URL & "cn=&"
    URL = URL & "encparam=UlFqRk5keDB6QnlhTW1KcXJDaDRDdz09&"
    
    With CreateObject("WinHttp.WinHttpRequest.5.1")
        .Open "GET", URL
        .SetRequestHeader "Host""navercomp.wisereport.co.kr"
        .SetRequestHeader "User-Agent""Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
        .SetRequestHeader "Accept""application/json, text/javascript, */*; q=0.01"
        .SetRequestHeader "Accept-Language""ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3"
        .SetRequestHeader "X-Requested-With""XMLHttpRequest"
        .SetRequestHeader "Connection""keep-alive"
        If Len(Cookie) Then .SetRequestHeader "Cookie", Cookie
        .Send
        .WaitForResponse: DoEvents
        T = .ResponseText
    End With
    Debug.Print T
    Dim Parsed
    Set Parsed = JsonConverter.ParseJson(T)
    
    Dim Values As Variant
    ReDim Values(Parsed("DATA").Count, 27)
    
    Dim Value As Dictionary
    Dim i As Long, n As Long
 
    For Each Value In Parsed("DATA")
        n = 0
        Values(i, n) = Value("ACKIND"): n = n + 1
        Values(i, n) = Value("ACCODE"): n = n + 1
        Values(i, n) = Value("ACC_NM"): n = n + 1
        Values(i, n) = Value("LVL"): n = n + 1
        Values(i, n) = Value("GRP_TYP"): n = n + 1
        Values(i, n) = Value("UNT_TYP"): n = n + 1
        Values(i, n) = Value("P_ACCODE"): n = n + 1
        Values(i, n) = Value("DATA1"): n = n + 1
        Values(i, n) = Value("DATA2"): n = n + 1
        Values(i, n) = Value("DATA3"): n = n + 1
        Values(i, n) = Value("DATA4"): n = n + 1
        Values(i, n) = Value("DATA5"): n = n + 1
        Values(i, n) = Value("DATA6"): n = n + 1
        Values(i, n) = Value("YYOY"): n = n + 1
        Values(i, n) = Value("YEYOY"): n = n + 1
        Values(i, n) = Value("DATAQ1"): n = n + 1
        Values(i, n) = Value("DATAQ4"): n = n + 1
        Values(i, n) = Value("DATAQ5"): n = n + 1
        Values(i, n) = Value("DATAQ2"): n = n + 1
        Values(i, n) = Value("DATAQ6"): n = n + 1
        Values(i, n) = Value("QOQ"): n = n + 1
        Values(i, n) = Value("YOY"): n = n + 1
        Values(i, n) = Value("QOQ_COMMENT"): n = n + 1
        Values(i, n) = Value("YOY_COMMENT"): n = n + 1
        Values(i, n) = Value("QOQ_E"): n = n + 1
        Values(i, n) = Value("YOY_E"): n = n + 1
        Values(i, n) = Value("QOQ_E_COMMENT"): n = n + 1
        Values(i, n) = Value("YOY_E_COMMENT"): n = n + 1
      i = i + 1
    Next Value
    
    Sheets("Sheet1").Cells.Clear
    Sheets("Sheet1").Range(Cells(11), Cells(Parsed("DATA").Count, 27)) = Values
End Sub
 


아래처럼 관련 데이터를 모두 파싱해 왔습니다.

0d2ba714df0d94984ceb002dbfd4a618_1589623970_9092.png
 




댓글목록 0

등록된 댓글이 없습니다.