본문 바로가기
코딩/엑셀 & VBA

[VBA] Selenium

by 엑셀런트대디 2024. 5. 27.

요즘 엑셀보다는 웹 크롤링(간단하게 인터넷에 표시되어있는 데이터를 엑셀로 불러오는...)에 대한 수요가 많다.

 

엑셀에서 무언가를 실행했는데..

인터넷 창이 뜨고 뭔가 슉슉 클릭하고 창이 왔다 갔다 하면서 인터넷에 있는 데이터가 엑셀 시트에 뿌려지면

뭔가 엑셀스럽지 않아서 더 뽀대?가 난다.

 

인터넷에서 데이터를 가져오는 방법에는 여러가지가 있지만 나는 셀레니움을 많이 활용한다. 그 이유는....

 

셀레니움 = 쉽다...ㅎ

 

Winhttp 방식으로 크롤링하는 방법(속도 훨씬 빠름)도 있지만

로그인해서 쿠키값을 가져온다던지, 해더값을 설정해줘야 된다던지..

웹페이지가 동적으로 랜덤?하게 id나 class 값이 바뀌면 힘들기도 하고.--;; 굳이..라는 생각이 들수도 있다.(일반인 기준.ㅎ)

 

뭔가 크롤링하기 빡실것같다..생각이들면 그냥 셀레니움으로 처리한다.

 

본격적으로 셀레니움을 이용하기 위해서는 아래와 같이 기본설정을 해줘야 한다.

나는 크롬 드라이브를 메인으로 사용하고 있기 때문에 크롬 드라이브를 기준으로 설명하겠다.

                       

1. 크롬드라이브 버전을 확인한다.

   ▶ 크롬창에 chrome://settings/help 입력하면 아래와 같은 화면에서 버전을 확인할 수 있다.

        나의 경우는 크롬 123버전 이다.

 

2. Microsoft .NET Framework 3.5설치

 

3. 셀리니움을 설치

셀레니움 다운로드

 

4. 최신 크롬드라이브 다운로드

  • 셀레니움 버전과 크롬버전은 동일해야.. 실행이 가능하다. 따라서 내 크롬과 셀레니움의 크롬드라이브 버전을 맞춰줘야 한다.
  • 내 크롬드라이브 버전은 123.0.6312.86(64비트) 이며 위 주소로 접속한 뒤 버전을 검색해서 아래를 참고하여 url주소를 복사한뒤 접속하면 크롬드라이브를 다운받을 수 있다.

크롬과 크롬드라이버가 있다.. chromedriver 를 다운받아야 한다.

 

다운로드 받은 압축파일에서 chromedriver.exe 파일을 기존 셀레니움이 설치되어 있는 폴더에 덮어 쓰기를 한다.

 

셀리니움은 아래 경로로 설치되는데, 이 폴더에 다운받은 chromedriver.exe 파일을 덮어 쓰기를 한다.

나의 경우에는 아래 폴더에 셀레니움이 설치되어 있었다.

C:\Users\[사용자명]\AppData\Local\SeleniumBasic

 

 

5. 엑셀에서 라이브러리를 참조한다.

  •   엑셀 개발도구탭 - Visual Basic 실행 - 도구 - 참조에서 아래 Selenium Type Library에 체크

 

 

6. 마지막으로 셀레니움으로 네이버에 접속한다.

  • Alt+F11 을 눌러 VBA를 편집창을 열고 모듈을 하나 생성한 뒤 아래 코드를 입력한다.
Public driver As New Selenium.ChromeDriver

Sub 셀레니움()

    driver.Get "https://www.naver.com"      '네이버 접속
    driver.Window.Maximize                  '창 최대화
       
End Sub

 

아래 사진처럼 네이버에 접속이 되었다면 성공!

 

 

 

축하한다.

 

이제 인터넷에 있는 모든것들을....엑셀(feat.셀레니움)로 수집해보자!

 

 

끝.