0. Selenium 이란?
웹 크롤링을 하는 과정에서 로그인이 필요한 경우, 또는 해당 웹사이트가 프로그램을 통한 접근을 막은 경우, 동적으로 생성된 정보를 가져와야하는 경우 등 requests, beautifulsoup로는 페이지를 수집하는 것에 한계가 있다. 셀레니움(Selenium)은 이럴 때 브라우저를 조작할 수 있게 도와주는 라이브러리이다.
원래 Selenium은 웹 애플리케이션을 테스트하기 위한 목적으로 만들어진 포터블 프레임워크지만 웹 크롤링을 할 때 직접 브라우저를 자동 제어하는 것에 큰 도움이 되었기 때문에 웹 크롤링에 많이 쓰이게 되었다.
1. 셀레니움 라이브러리 설치
먼저 터미널을 이용해 셀레니움 라이브러리를 설치해주자.
pip install selenium
주피터 노트북에서 앞에 느낌표만 붙여주면 설치가 가능하다.
2. 크롬드라이버 설치
셀레니움을 사용하려면 chromedriver를 따로 설치해줘야 한다.
- 주소링크: 크롬브라우저 다운로드
- 주소링크: 크롬드라이버 다운로드
일단 크롬브라우저를 다운받아야 한다. 이제 점3개로 그려져있는 chrome 맞춤설정 및 제어버튼을 클릭해 현재 사용하고 있는 크롬브라우저의 정보를 확인해야한다.
현재 사용하고 있는 버전이 102.x.xxxx 버전이므로 크롬드라이버 또한 102.x.xxxx 버전으로 설치해줘야한다.
(현시점 기준 크롬드라이버의 최신 버전은 103.x.xxx 버전)
만약 윈도우를 사용한다면 64비트 운영체제를 사용하더라도 win32를 다운로드 받으면 된다. 리눅스나 맥은 각자 해당하는 zip파일을 다운로드 받으면 된다.
이제 zip파일을 압축해제를 한다. chromedriver.exe 파일 하나만 있을 것이다. 해당 프로젝트에 크롬드라이버를 넣어서 사용해도 되고 아니면 적절한 경로를 만들어 크롬 드라이버를 저장해놔도 좋다.
3. 테스트
원하는 위치에 크롬 드라이버를 옮겼다면 아래와 같이 테스트해보자
from selenium import webdriver
browser = webdriver.Chrome("D:/driver/chromedriver.exe")
url = "https://www.google.com/"
browser.get(url) # 접속
print(browser.page_source) # 페이지 정보
테스트가 성공했다면 개발환경에서 페이지의 소스를 출력하고 아래와 같이 브라우저가 열릴 것이다.