위 게임 사이트의 각 캐릭터의 능력치, 장비 등의 자료를 엑셀로 가져오는 예시입니다.


아래 그림의 파란색 네모 부분을 가져오는 것입니다.



엑셀화면은 아래와 같습니다.





웹사이트 자료 가져오는 연습 삼아 만들어 보았습니다.


위 사이트는 간단한 프로필 즉, 레벨이나 등급 등은 일반 html로 받아오고

공격, 방어율, 자세한 장비 보유 유무 등은 JSON 형태로 실시간으로 받아와서 html로 뿌려주고 있네요.


일반html은 winhttp, xmlhttp 를 이용해서 html을 받아오면 되고

JSon 데이터는 간단한 문자열 구조인데 문자열을 나눌(파싱할) 때 VBA-JSON이라는 라이브러리를 이용하여 파싱할 수 있습니다.





캐릭터이름을 새로 추가 입력하고 나서 우측 상단 새로고침 아이콘을 누르면 

테스트 목적으로만 사용할 것인지 확인하고 나면 세번의 접속을 시도합니다.


1.일반 프로필(HTML방식)

http://bns.plaync.com/bs/character/profile/홍길동

2.능력치(JSON방식)

https://api-bns.plaync.com/bnsapi/character/abilities/홍길동

3.장비(JSON방식)

https://api-bns.plaync.com/bnsapi/character/equipments/홍길동


HTML방식은 HTML Object Library 를 이용해서

class이름으로 데이터를 가져옵니다.

HTML객체.getElementsByClassName("info") 이런식입니다.


Json 데이터는 VBAJSON을 이용해서

Json("records")("total_ability")("max_hp")나  Json("records")(1)("item")("name") 이런식으로 문자열 데이터를 가져옵니다.


아래는 주요 매크로 내용입니다.



나머지는 첨부파일을 참고하세요.


매크로 허용하여 파일을 열어야 하고

Alt-F11 누르고 [도구-참조]에서  'Microsoft Html Object Library' 와 

'Microsoft Scripting Engine'에 반드시 체크가 되어 있어야 작동합니다.

XML관련은  체크하지 않아도 되지만 시스템에 xml60.dll 같은 DLL이 설치는 되어 있어야 합니다.


 * * 주 의 * * Wanring * *

웹사이트의 데이터를 과도하게 가져올 경우 해당 사이트에 무리가 갈 수 있음을 유의하세요.

새로고침을 반복적으로 누른다거나 너무 많은 캐릭터를 조회하지 마세요.

위 매크로는 웹사이트의 데이터를 가져오는 예시를 보여주기 위해서 시연 또는 학습목적으로만 작성되었습니다. 

문제가 될 경우 삭제, 수정될 수 있으며 개인적인 용도로만 사용하기 바랍니다.

원 데이터의 저작권은 해당 사이트와 해당 회사에 있습니다. 

Don't abuse this macro. Excessive use of this macro may harm the maintenace of the website.

This macro is for personal use only. The parsed data are all property of the related company. 


매크로 파일입니다.

BnS_Profile.xlsm



본 자료는 지식인 질문에 답변을 작성하다가 만들어졌습니다.

( https://kin.naver.com/qna/detail.nhn?d1id=1&dirId=102020101&docId=318691565#answer1 )