파이썬으로 네이버 자동 로그인을 하는 코드를 작성한 적은 있는데, 막상 VBA로는 한적이 없어서 남긴다.
실제 사용시에는 본인의 아이디와 패스워드를 입력하여 사용하길 바란다.
아직 익숙하지 않아서 그런지 Selenium.Keys 로는 원할하게 구현하지 못해
Shell을 통해서 구현하였다.
Dim shell: Set shell = CreateObject("WScript.Shell")
네이버는 SendKeys를 통한 키 전달 방식의 로그인은 봇으로 감지하여 캡챠를 발생하기 때문에 다른 방법으로 로그인을 하여야 한다.
바로 복사 붙혀넣기 인데 파이썬으로 할때는 Selenium.Keys 로 특수키를 전달하여 키보드를 입력과 같은 방식으로 우회할 수 있는데 VBA에서는 그게 되지 않는다.
몇번 다른 사이트에서 한번 테스트해봐야겠다..
그래서 그대안으로 사용한것이 Shell이다.
Shell은 윈도우를 조작할 때 사용하기도 하는데, 오늘 여기에서 키보는 입력을 하는 대안으로 사용하였다.
shell.SendKeys "^v"
일단 아직까진 본인한테는 크게 와 닿지 않은 코드이지만 누군가에겐 도움이 될 듯 하여 올린다.
더보기
Option Explicit
Dim Sel As New Selenium.ChromeDriver
Sub Haja_Guid()
Dim guid
Dim Str
guid = Array("{0277FC34-FD1B-4616-BB19-A9AABCAF2A70}", _
"{3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}", _
"{662901FC-6951-4854-9EB2-D9A2570F2B2E}", _
"{F5078F18-C551-11D3-89B9-0000F81FE221}")
On Error Resume Next
For Each Str In guid
ThisWorkbook.VBProject.References.AddFromGuid Str, 0, 0 '= 가장 최신버전
Next Str
Call naver_login
End Sub
Sub naver_login()
Dim strUrl$
Dim shell: Set shell = CreateObject("WScript.Shell") '= 셀 선언
strUrl = "https://www.naver.com"
' Sel.AddArgument "--headless" '= 헤드리스모드
Sel.Start "chrome" '= 크롬으로 진행
Sel.Get strUrl '= Url 이동
Sel.Window.Maximize '= 창 크기 최대화
Sel.FindElementByCss("a[data-clk='log_off.login']").Click '= 로그인 버튼 클릭
Application.Wait (Now + TimeValue("00:00:01")) '= 1초 지연
[e1].Copy '= ID 복사
Application.Wait (Now + TimeValue("00:00:01"))
shell.SendKeys "^v" '= ID 붙혀넣기
Application.Wait (Now + TimeValue("00:00:01"))
shell.SendKeys "{TAB}" '= 패스워드로 이동
[e2].Copy '= 패스워드 복사
Application.Wait (Now + TimeValue("00:00:01"))
shell.SendKeys "^v" '= 패스워드 붙혀넣기
Application.Wait (Now + TimeValue("00:00:01"))
Sel.FindElementByCss(".btn_login").Submit '= 로그인 버튼 클릭
Sel.ExecuteScript "alert('네이버 로그인을 완료했습니다.')"
End Sub
'VBA > 엑사남_심화방' 카테고리의 다른 글
[심화방] VBA_심화_100제 #15 [ 4대보험계산기] (0) | 2023.04.01 |
---|---|
[심화방] VBA_심화_100제 #14 [ 셀레니움 네이버항공 조회] (0) | 2023.04.01 |
[심화방] VBA_심화_100제 #12 [ 셀레니움 자동화테스트] (0) | 2023.03.16 |
[심화방] VBA_심화_100제 #11 [ 셀레니움 Astable] (0) | 2023.03.13 |
[심화방] VBA_심화_100제 #10 [ 네이버부동산] (2) | 2023.02.06 |
댓글