웹드라이버를 이용하면 웹브라우저를 내가 좋아하는 프로그래밍 언어로 테스트해볼 수 있다. 마치 매크로처럼 프로그래밍해놓은 코드를 따라 클릭, 입력, 스크롤, 값 가져오기 등을 할 수 있다. 파이썬 모듈 중 셀레니움은 이 웹드라이버와 통신하여 파이썬 코드로 브라우저를 제어하는 기능을 제공해준다.
우선 Selenium과 통신할 수 있는 웹드라이버를 다운로드하여보자. 적절한 웹 드라이버를 다운로드하기 위해서는 나의 브라우저 정보를 알아야 한다.
구글에 Selenium 라고 검색 한 뒤 첫 번째에 나오는 사이트로 들어가자
좌측에 있는 Selenium Webdriver에 있는 다운로드 버튼을 클릭한다.
Python에 해당하는 프로그램을 다운로드하자
이후 내 브라우저 버전에 매칭 되는 드라이버를 찾은 뒤 다운로드해준다. 윈도우의 경우 64비트이더라도 32비트 버전 다운로드하면 된다.
다운로드가 다 되었으면 압축을 풀고 chromedriver.exe 파일을 내 소스코드 루트 폴더에 넣어주면 된다.
이제 pip를 통해 selenium 라이브러리를 설치하자.
지금까지는 python의 기본 라이브러리인 requests를 통해 웹에 있는 데이터를 가져왔다. requests의 가장 큰 단점은 웹서버에서 봇을 탐지해 요청을 막을 경우 원하는 데이터를 가져올 수 없다는 것이다. 네이버의 경우 진짜 잘 막아놓아서 크롤링하기가 쉽지 않다.
셀레니움을 사용하는 방법은 매우 간단하다.
driver = Chrome()
wait = WebDriverWait(driver, 10)
크롬드라이버 객체를 만들고 웹 페이지가 정상적으로 열렸는지 확인해주는 wait객체를 만들자.