1. VBA 로웹문서접근및웹페이지정보수집하는방법엑셀 VBA 를통해웹페이지또는웹문서에접근하여정보를수정하고데이터를수집하기위해서는아래와같이크게 2 가지방법을사용합니다. 1-A. WinHTTP ( 또는 MSXMLHTTP) 이용 VBA 에서는 WinHTTP 또는 MSXMLHTT

Similar documents
오빠두엑셀 E-Book [VBA 1-7] VBA Method 란무엇인가 >> VBA 개체 Method ( 함수 ) Copyright 2018 by 오빠두 0

Microsoft PowerPoint - e pptx

1. 매크로활성화체크홈페이지에서예제파일을직접다운받으신경우, 예제파일은매크로가포함된파일이므로상단에 [ 매크로활성화버튼 ] 을체크해주세요. 2. 옵션버튼편집하기 각옵션버튼을누를때마다, 선택된포탈사이트의커맨드버튼이나타나도록옵션버튼에 Click 이벤트명령문을입혀줍니다. 네이버

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

<4D F736F F F696E74202D20B5A5C0CCC5CDBAA3C0CCBDBA5F3130C1D6C2F75F32C2F7BDC32E >

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

SBR-100S User Manual

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일


윈도우즈프로그래밍(1)

1

Visual Basic 반복문

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

H3250_Wi-Fi_E.book

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

MVVM 패턴의 이해

Windows Live Hotmail Custom Domains Korea

Index 1. Intro Install Connect Scratch 1.4 (Offline Editor) Scratch 2.0 (Online Editor) Connect f

Microsoft PowerPoint Predicates and Quantifiers.ppt

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Office 365 사용자 가이드

대량문자API연동 (with directsend)

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

PowerPoint Template

PowerPoint Template

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Javascript

View Licenses and Services (customer)

C# Programming Guide - Types

PowerPoint 프레젠테이션

Web Scraper in 30 Minutes 강철

쉽게 풀어쓴 C 프로그래밍

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Frama-C/JESSIS 사용법 소개

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

ISP and CodeVisionAVR C Compiler.hwp

PowerPoint 프레젠테이션

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

Install stm32cubemx and st-link utility

Microsoft PowerPoint - chap01-C언어개요.pptx

11월1일자.hwp

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

게시판 스팸 실시간 차단 시스템

PowerPoint Presentation

DBMS & SQL Server Installation Database Laboratory

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

GBF-1257B 카스블루투스체지방계앱사용매뉴얼

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

ALTIBASE 사용자가이드 Templete

Ver 1.0 마감하루전 Category Partitioning Testing Tool Project Team T1 Date Team Information 김강욱 김진욱 김동권

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Java ...

thesis

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

ArcGIS Desktop 9.2 Install Guide

PowerPoint 프레젠테이션

<B5A5C0CCC5CDBAA3C0CCBDBA5FBFACB5BF5FC0A55FBAEAB6F3BFECC1AE5FBCB3B0E82E687770>

New eBusiness Platform

RVC Robot Vaccum Cleaner

슬라이드 1

gnu-lee-oop-kor-lec06-3-chap7

UI TASK & KEY EVENT

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

서현수

PowerPoint 프레젠테이션

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

Secure Programming Lecture1 : Introduction

Visual Studio online Limited preview 간략하게살펴보기

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

PowerPoint 프레젠테이션

歯엑셀모델링

Adobe Flash 취약점 분석 (CVE )

슬라이드 제목 없음

MasoJava4_Dongbin.PDF

로거 자료실

SBR-100S User Manual

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

IRISCard Anywhere 5

adfasdfasfdasfasfadf

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft Word - ijungbo1_13_02

01장 웹 개요와 실습 환경 구축

< FBFF9B0A320BEC7BCBAC4DAB5E520C0BAB4D0BBE7C0CCC6AE20C5BDC1F620B5BFC7E220BAB8B0EDBCAD283131BFF E302028C8A8C6E4C0CCC1F620BEF7B

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

(SW3704) Gingerbread Source Build & Working Guide

PowerPoint 프레젠테이션

Observational Determinism for Concurrent Program Security

Microsoft Word MetOne237Bmanual

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

슬라이드 1

JUNIT 실습및발표

Transcription:

포탈사이트 로그인프로그램 만들기 #3 Copyright 2018 by 오빠두엑셀 0

1. VBA 로웹문서접근및웹페이지정보수집하는방법엑셀 VBA 를통해웹페이지또는웹문서에접근하여정보를수정하고데이터를수집하기위해서는아래와같이크게 2 가지방법을사용합니다. 1-A. WinHTTP ( 또는 MSXMLHTTP) 이용 VBA 에서는 WinHTTP 또는 MSXMLHTTP 를이용하여웹문서또는웹페이지의데이터를수집하고편집할수있는기능을제공합니다. 엑셀 VBA 자체에서제공하는 XML 라이브러리를통해 Early Binding 하여이용할수도있고, 또는 CreateObject 명령문을통해 MSXML2 의 XMLHTTP 개체를불러서 Late Binding 하여이용할수도있습니다. WinHTTP 또는 XMLHTTP 는주로 VBA 를통해웹파싱 (Web Parsing, 웹페이지에서데이터를추출하는행위 ) 을할때이용하게됩니다. [ 링크 ] Early Binding 과 Late Binding 의차이점자세히알아보기 >> https://support.microsoft.com/en-us/help/245115/using-early-binding-and-late-binding-inautomation Early Binding( 정적바인딩 ) 과 Late Binding( 동적바인딩 ) 의차이점코딩에어려움을겪는분들을위해 Early Binding( 정적바인딩 ) 과 Late Binding( 동적바인딩 ) 의차이점을간략히안내해드리고자합니다. Early Binding 은엑셀 VBA 에서자체적으로제공하는 Reference 를이용하는것을이야기합니다. 즉코드실행전에 (Early) 개체를포함 (Binding) 하여코드를실행하게되고, 따라서우리가 String 이나 Long 과같은데이터타입을사용하듯이 Reference 를추가하여 XMLHTTP 과같은별도의데이터타입을다룰수있도록설정할수있습니다. Late Binding 은 CreateObject 명령문을이용하여코드실행중간 (Late) 에개체를불러오는 (Binding) 방식입니다. Late Binding 의장점은엑셀의버전상관없이어떠한 Object 라도불러서이용할수있으므로좀더유연한코딩을할수있다는점입니다. ( 예를들어 Calendar Reference 의경우버전별로제공되는경우가상이하므로 Late Binding 을통해이용할수있습니다.) 다만 Late Binding 의경우, VBA 에서각개체의속성값을자동으로지정해주지않으므로코드작성에어려움을겪을수있고, Early Binding 보다안정성면에서떨어지는단점이있으므로 VBA 에서제공되는 Reference 안에서는 Early Binding 을이용하는것을권장합니다. 1-B. IE (Internet Explorer) 이용 VBA 에서는 Internet Explorer 를통해사용자가직접브라우저를사용하듯이접근하여거의모든웹문서와웹페이지의정보를편집 / 수정할수있는툴을만들수있습니다. XMLHTTP 의경우추가로그인이필요하거나페이지보안문제로접근이어려운경우 API 키를받아이용해야하므로웹페이지에접근시도조차못하는경우도있습니다. 하지만 IE 를이용하게되면키보드와마우스의위치를시간의흐름대로지정하여코드를작성하므로대부분의웹문서나웹페이지에접근하여데이터를수집할 Copyright 2018 by 오빠두엑셀 1

수있습니다. 다만 IE 를이용하여웹문서나웹페이지에접근할경우, XMLHTTP 에비하여다소많은메모리를소모하고 속도가느리다는단점이있습니다. 2. Wait_Browser (IE 컨트롤을위한보조명령문작성 ) VBA 에서 IE 를통해웹문서나웹페이지를관리할시, 항상주의해야할부분은실행중인인터넷 익스플로러가 사용할준비가완료될때 까지, 즉웹문서의로딩이완료되고이후동작을위한준비가끝날 때까지기다린뒤그다음동작을취하는것입니다. 이러한동작을위해 Wait_Browser 라는보조명령문을아래와같이작성해줍니다. Sub Wait_Browser(Browser As InternetExplorer, Optional t As Integer = 1) While Browser.Busy Or Browser.READYSTATE <> 4 DoEvents Wend Application.Wait DateAdd("s", t, Now) End Sub 2-A. Browser.REDAYSTATE 에대한이해 VBA 에서판단하는인터넷익스플로러의준비상태는아래와같이총 5 단계로구분됩니다. 실제코딩을하면서이용하게되는준비상태는 4 번, 즉모든준비가끝나고모든데이터를사용할수있는상태이며, Browser.Busy ( 로딩중, 또는실행중 ) 상태와조합하여인터넷익스플로러가다음동작을위해준비가완료된상태를판단하게됩니다. READYSTATE_UNINITIALIZED(0) : 브라우저초기화전상태 READYSTATE_LOADING(1) : 브라우저로딩 READYSTATE_LOADED(2) : 브라우저초기화완료 READYSTATE_INTERACTIVE(3) : 브라우저응답가능하지만일부데이터사용불가능 READYSTATE_COMPLETE(4) : 모든데이터사용가능상태 Copyright 2018 by 오빠두엑셀 2

2-B. Application.Wait 속성에대해알아보기 Application ( 엑셀프로그램 ) 에서의 Wait 속성을통해지정된시간까지코드를일시정지하고기다리는 행동을취할수있습니다. 사용법 : Application.Wait [Variant(Time)/ 시간 ] 출력값 : Boolean ( 참 / 거짓 ) 'Application.Wait 속성사용예제 > '## 현재시간에서 5 초가뒤의시간까지기다립니다. ## Application.Wait Now() + TimeValue("0:00:05") [ 링크 ] Application.Wait 속성에대해자세히알아보기 >> https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-wait-method-excel 2-C. DateAdd 함수사용법에대해알아보기 DateAdd 함수는 VBA 에내장된함수입니다. DateAdd 함수는변수로지정한기준시간에서, 입력한단위 / 값만큼의차이가나는결과값을 Variant(Date) 형태로출력합니다. 사용법 : DateAdd ( 단위, 값, 기준시간 ) 출력값 : Variant(Date) 단위의종류 : yyyy 년 d 일 ( 주말포함 ) h 시간 q 분기 w 평일 n 분 m 달 ww 주 s 초 'DateAdd 함수사용예제 > '## 현재시간기준 1 분뒤의값을출력합니다. DateAdd("n",1,Now()) '## 금일기준으로, 3 일뒤의값을출력합니다. DateAdd("d", 3, Date()) [ 링크 ] DateAdd 함수에대해자세히알아보기 >> https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/dateadd-function Copyright 2018 by 오빠두엑셀 3

3. 인터넷익스플로러를 200% 활용하기위한 HTML 활용법엑셀 VBA 를통해인터넷익스플로러를활용할때에 HTML 언어에대해약간의이해만하고있다면이를 200% 더효율적으로이용할수있습니다. HTML 에대한깊이알고있지않더라도, 목표가되는웹페이지에서사용중인 HTML 언어의대략적인흐름또는그구성만이해할수있다면, VBA 를통해서인터넷익스플로러에쉽게접근할수있습니다. 보편적으로사용되는인터넷브라우저 (Internet Explorer( 인터넷익스플로러 ), Chrome( 크롬 ), Firefox( 파이어폭스 )) 모두브라우저를실행한상태에서 F12 키를누르면개발자도구가나오고, 개발자도구를통해서현재보여지는웹페이지의 HTML 언어를쉽게분석할수있는데요그방법을공유해드립니다. 3-A. 브라우저에서개발자도구실행및성분분석도구선택실행중인브라우저에서 F12 키를눌러서개발자도구를실행합니다. 개발자도구가실행되면, 개발자도구좌측상단 ( 크롬의경우 ) 에위치한성분분석도구를선택합니다. 이후마우스커서를 HTML 언어를분석하고자하는위치로이동하게되면, 해당하는컨트롤에대해작성된 HTML 언어가표시되고이를바탕으로 VBA 를통해인터넷익스플로러를통제할수있게됩니다. 3-B. VBA 와인터넷익스플로러연동을위해반드시짚고넘어가야할속성 3 가지앞서말씀드렸듯이, VBA 를통해웹페이지연동 / 통제및데이터수집을할경우, 크게 WinHTTP( 또는 MSXMLHTTP) 를이용하거나또는 IE( 인터넷익스플로러 ) 를이용할수있다고말씀드렸습니다. 그중인터넷익스플로러를 VBA 와연동하는경우는, 보통사용자가웹페이지에서또다른행동을취해야할경우에사용하게되는데요. 그렇기때문에 VBA 와인터넷익스플로러를연동할경우사용할웹페이지의 HTML 언어중에서사용된 ( 또는웹페이지의각성분의통제하기위해사용할 ) 아래의 3 가지속성만체크한다면이후에는아주쉽게연동할수있습니다. 1. ID 속성 : 고유값에해당하는속성입니다. 만약사용할성분이 ID 값을통해구분된다면이후강의에서다루게될,.GetElementByID 함수를통해쉽게처리가가능하게됩니다. Copyright 2018 by 오빠두엑셀 4

2. Class 속성 : 만약통제하고자하는성분이 ID 값으로구분되지않는다면, Class 속성으로 1 차분류를하게됩니다. 마찬가지로이후강의에서다루게될,.GetElementByClassName 함수를통해처리할수있습니다. 3. Type 속성 : Class 속성을통해서 1 차로분류가된하나의그룹이생성되었습니다. 그리고해당그룹에서, Type 속성이특정값인성분을추출하면웹페이지에서원하는성분을통제할수있게됩니다. ( 대부분의웹문서는 Class-Type 을통한분류만하여도원하는속성을추출할수있습니다.) 더욱자세한내용은오빠두엑셀 VBA 2-3 영상강의에서확인해주세요! Copyright 2018 by 오빠두엑셀 5