C# -- IE automation #4 -- html 구조 파헤치기
참고 : https://msdn.microsoft.com/ko-kr/library/system.windows.forms.htmldocument(v=vs.110).aspx
--> HtmlDocument 클래스 (mshtml 과는 약간 다르지만, 비슷한 사용법이다.)
https://msdn.microsoft.com/ko-kr/library/aa703928(v=vs.85).aspx -->IHTMLElementCollection interface
https://msdn.microsoft.com/ko-kr/library/aa752279(v=vs.85).aspx --> IHTMLElement interface
https://msdn.microsoft.com/ko-kr/library/aa704078(v=vs.85).aspx --> IHTMLDOMNode interface
https://msdn.microsoft.com/ko-kr/library/hh870185(v=vs.85).aspx --> nodeType
<< 미션 >>
mshtml.IHTMLElement 과 mshtml.IHTMLDOMNode 의 사용법을 알아보자.
** IE (internet explorer) 통하여 읽어들인 HTML 구성 요소들을 분석하기 위해서는 2가지 접근 방법을 고려하자.
1. mshtml.IHTMLElement 사용하여 각각의 요소를 접근 분석한다.
2. mshtml.IHTMLDOMNode 를 사용하여 각각의 node 에 접근 분석한다.
<< 1. mshtml.IHTMLElement 사용하기 >>
mshtml.HTMLDocument doc = IE.Document;
doc.getElementById --> mshtml.IHTMLElement 반환 ==> 바로 사용가능
doc.getElementsByTagName --> mshtml.IHTMLElementCollection 반환 ==> for loop 사용
doc.getElementsByName --> mshtml.IHTMLElementCollection 반환 ==> for loop 사용
<< 2. mshtml.IHTMLDOMNode 사용하기 >>
-- 33번째 줄의 출력 결과 해석
; Console.WriteLine(node.ToString());
; mshtml.IHTMLDOMNode node.ToString() 을 의미함.
mshtml.HTMLHtmlElementClass <html>
mshtml.HTMLHeadElementClass <head>
mshtml.HTMLBodyClass <body>
mshtml.HTMLDivElementClass <div>
mshtml.HTMLHeaderElementClass <h1>, <h2>, ...
mshtml.HTMLBRElementClass <br>
mshtml.HTMLParaElementClass <p>
*** mshtml.IHTMLDOMNode 에서는 nodeType 이 text node 인 경우,
mshtml.IHTMLElement 인 경우에는 인식못하는 공백도 인식한다.
'C# Web Scraping' 카테고리의 다른 글
C# -- IE automation #6 -- 구글 검색창 제어하기 (0) | 2016.02.09 |
---|---|
C# -- IE automation #5 -- Attribute 제어하기 (0) | 2016.02.09 |
C# -- IE automation #3 -- internet explorer 제어하여 html 소스 가져오기 (4) | 2016.02.03 |
C# -- IE automation #2 -- Internet Explorer Architecture (0) | 2016.02.03 |
C# -- IE automation #1 -- 시작하기 (0) | 2016.02.02 |