VBA Macro/VBA Excel

[엑셀] DOM 방식의 웹페이지 정보 가져오기 (사이트 추천)

루아흐뉴마 2017. 12. 22. 02:07
반응형
# http://automatetheweb.net/ 사이트 추천(클릭하면 링크로 이동)
# DOM(Document Object Model) 방식의 웹페이지 크롤링에 관한 내용을 다루고 있다.
# 군더더기를 다 빼고 오로지 웹페이지 크롤링만을 다룬다. (매우 깔끔하게 정리되어 있다.)
 
# 엑셀을 활용해서 웹페이지를 크롤링 하는 방법은 크게 두 가지로 나눌 수 있는데,
# 1. 웹페이지를 관리하는 서버에 필요한 데이터를 직접 요청하는 방식
   (Set WHTTP = CreateObject("WinHTTP.WinHTTPrequest.5")와 같은 형식으로 서버에 수신 요청을 보내는 방식)
# 2. 위 사이트에서 제시하는 DOM 방식
   (정확히는 DOM 방식이 아니라 DOM을 지향하는 웹페이지의 개체(Object)를 건드리는 방식)
   (마치 사용자가 직접 웹페이지를 서핑하듯이 <- 이게 요점이다.)
   (그렇기 때문에 위 사이트에서 제공하는 코드를 실행하면 인터넷 익스플로러가 실행된다.)
   (방법 1에 비해 방법 2가 비교적 쉽다. 대신, 느리다.)

※ DOM(Document Object Model)? - 네이버에 접속해서 Ctrl+U(또는 마우스 오른쪽 클릭 - 페이지 소스 보기)
   여기서 보이는 페이지가 DOM 그 자체다. 본인이 이해하는 한 그렇다.
   웹페이지의 모든 요소를 <    >로 처리해서 일종의 구획이 만들어져 있다. 이 하나의 구획(또는 구획의 집합)이 곧 개체(Object)다.
   위 사이트에서 웹페이지 정보를 가져오는 방식은 필요한 데이터가 있는 페이지의 문서(HTML)를 뒤져서
   그 데이터가 어떤 요소(Element), 즉 <   >로 묶여 있는지를 확인하고, 필요한 데이터만 빼오는 방식이다.
   여기서 우리가 정해야 하는 것은 딱 한 가지. Id, ClassName, TagName 중 어떤 요소를 통해 접근해야 할까?
   답 : 찾기 쉬운거.


반응형