본문 바로가기
VBA

[VBA] 오늘의 날씨(네이버 오늘의 날씨)

by 일등미노왕국 2022. 1. 30.

웹 크롤링 연습을 위해 엑사남님 강의 중 [오늘의 날씨]를 가져오는 강의를 이용하여 크롤링을 작업하였다.

https://www.youtube.com/watch?v=5U5zPQUAL7E 

아참... 새해 복 많이 받으시길.....

우선 본인이 웹 크롤링을 하는 방식은 이렇다.

1. 소스에서 추출하려는 값의 첫 ClassName태그부터 내가 원하는 마지막 TagName이 아닌 새롭게 시작하는 ClassName까지 정규식으로 모든 값들을 추출 

정규식 패턴 : <div class="status_wrap">(.+?)<div class="report_card_wrap">

 

 추출된 값 : <div class="status_wrap"> <h3 class="blind">오늘의 날 </h3> <div class="weather_graphic"> <div class="weather_main"> <i class="wt_icon ico_wt1"> .... <div class="report_card_wrap">

2. 추출한 값을 태그의 시작인 ' < ' 로 Split하여 배열에 모두 담는다.

 3. 각 배열들을 순환하면서  첫 값의 공백을 제거하고 태그의 끝표시인 '>'로 배열을 분리한 후 그 두번째 값을 Result값에 담게 된다. 단, 구분된 Result의 값이 없다면 무시하게 됨으로 의미있는 값들만 Result 배열에 담아지게 된다.

 Result(R, 1) = LTrim(Split(V, ">")(1))

 

4. 마지막으로 이렇게 추출된 값들을 원하는 형식으로 도출하게 된다.

우선 이렇게 작업을 하였을 경우 일일이 파싱을 하는 것보다는 크게 시작과 끝만 추출한 후 거기서 다시 의미있는 단어들로 재 조합하면 됨으로 정규식의 패턴을 조합하는 것에 큰 어려움없이 원하는 값을 추출할 수 있으리라 본다...

본인처럼 크롤링에 어려움이 있던 분들께 조금이라도 도움이 되길 바란다.

오늘의 날씨(22.01.29).xlsm
0.03MB

댓글