1차
https://1stminokingdom.tistory.com/68
2차
https://1stminokingdom.tistory.com/72
3차
1차 2차 3차 를 거쳐 드디어 본인맘에 드는 최적화를 이룬거 같다.
가장 어려웠던건 아무래도 날씨 아이콘을 가져오는 부분이었던거 같다. 이것 역시 해결해 준건 쭌빠님이었다.
나이스 쭌빠쓰~~~
준빠님이 올려놓은 코드를 보면
sImgURL = Sel.FindElementBycss(sSelecor).CssValue("background-image")
이코드가 상단에 보일것이다. 이 코드는
class name "weather_main" 의 자식태그의 wt-icon ico-wt1 의 background-image 의 Value값을 가져오는 것이다.
이걸 console 창에서 자바스크립트로 확인을 하면
document.defaultView.getComputedStyle(document.querySelector(".weather_main>i")).getPropertyValue('background-image');
Icon = Sel.FindElementByCss(".weather_main>i").CssValue("background-image")
Icon = Split(Split(Icon, "(""")(1), """)")(0) '= 아이콘 주소
Set Nodes = Sel.FindElementByCss(".weather_info") '= weather_info 태그를 Nodes로 선언
Vtemp = Split(Nodes.Text, Chr(10)) '= 줄바꿈으로 Vtemp에 넣어라
부모태그인 Set Nodes = Sel.FindElementByCss(".weather_info") 에서 이걸은 CHR(10) -> 줄바꿈으로 잘라내서
Vtemp에 담으면 된다.
더보기
Option Explicit
Sub Haja_날씨()
Dim Sel As New Selenium.WebDriver
Dim StrUrl$, Icon$
Dim rngX As Range: Set rngX = [a2:a4]
Dim Nodes As Object
Dim Pic, Vtemp
Dim i&
For Each Pic In ActiveSheet.Shapes '= 초기화
If Pic.Name <> "Button 3" Then Pic.Delete
Next Pic
Application.ScreenUpdating = False
StrUrl = "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=%EB%82%A0%EC%94%A8"
Sel.AddArgument "--headless"
Sel.Start "Chrome"
Sel.Get StrUrl
Icon = Sel.FindElementByCss(".weather_main>i").CssValue("background-image")
Icon = Split(Split(Icon, "(""")(1), """)")(0) '= 아이콘 주소
Set Nodes = Sel.FindElementByCss(".weather_info") '= weather_info 태그를 Nodes로 선언
Vtemp = Split(Nodes.Text, Chr(10)) '= 줄바꿈으로 Vtemp에 넣어라
[b2] = Vtemp(0) & " : " & Vtemp(1)
[b3] = Vtemp(2) & " : " & Vtemp(3)
[b4] = Vtemp(4) & " " & Vtemp(5)
[a6] = Vtemp(7)
ActiveSheet.Shapes.AddPicture Icon, False, True, rngX.Left, rngX.Top, rngX.Width, rngX.Height + 2
'= 날씨 아이콘 삽입
Application.ScreenUpdating = True
MsgBox "Have a Nice Day!!"
End Sub
셀레니움 숙제 #1,2,3번 모두 방식이 부모태그에서 텍스트를 가져와서 chr(10)으로 잘라서 Vtemp에 담아서 셀에 뿌리는 방식을 사용하였다.
같은 루틴이니까 눈에 빨리 익도록 반복반복 하길 바란다.
'VBA' 카테고리의 다른 글
[VBA] Beep음으로 피아노 연주하기 (0) | 2023.03.22 |
---|---|
[VBA] 네이버 영어사전 LV4.(댓글 요청) (5) | 2022.12.31 |
[VBA] For Each & Areas 를 이용한 셀 조작하기 (0) | 2022.12.25 |
[VBA] 사용자정렬(ArrayList)_feat(평택_호텔관리_딱총) (1) | 2022.12.25 |
[VBA] 사용자 지정 정렬을 해보자 (0) | 2022.12.22 |
댓글