파이썬 웹사이트 크롤링하기 - 5. Selenium headless

저번 시간에 이어서 이번에는 셀레니움의 사용법중 중요한 headless에 대해서 알아보겠습니다.

2022.08.27 - [Programming/Python] - 파이썬 웹사이트 크롤링 하기 - 4. Selenium 사용하기

 

파이썬 웹사이트 크롤링 하기 - 4. Selenium 사용하기

이번 시간에는 이어서 셀레니움을 통해 크롤링 하는 방법을 알아보겠습니다. 셀레니움 준비하기 먼저 셀레니움을 쓰기 위해서는 크롬 드라이버를 다운받아야 합니다. 이 때 크롬 버전 확인이

remake.tistory.com

Headless란?

 Headless 브라우저는 별도의 GUI 창이 뜨지 않고 사이트에 접속해서 페이지를 받는등의 작업을 실행할 수 있습니다.

 

즉 request로 접속하는것과 달리 selenium은 실제 크롬창이 열려서 크롤링하는 형태로 진행되는데요.

 

이때 headless 옵션을 사용하면 크롬창이 뜨지않고 실행되게 됩니다.

 

이는 GUI가 기본인 윈도우 환경보다는 CUI로 동작되는 리눅스에서 더 자주 발생하는데요.

 

curl 등의 프로그램으로 실행하면 JS가 실행되지 않는 문제가 있습니다.

그래서 headless browser가 필요한 것입니다.

 

파이썬에서는 간단하게 selenium을 통해서 headless 구현이 가능한데요.

 

파이썬 headless 설정하기

셀레니움의 옵션에 options.headless를 설정해 주면 됩니다.

 

다만 일부 서비스의 경우 headless 접근을 차단하는 경우가 많기 때문에

 

일반적으로 user-agent 설정까지 같이 해주는 것이 좋습니다.

from selenium import webdriver

options = webdriver.ChromeOptions()
options.headless = True
options.add_argument("window-size=1920x1080")

#user agent
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36")



browser = webdriver.Chrome(options=options)

이외의 부분은 기존의 셀레니움 사용법과 전혀 다르지 않습니다.

 

이 후에 원하는 url을 입력하여 browser.get으로 불러오면 되는데요.

# 페이지 이동 진행
url = "https://www.naver.com"
browser.get(url)

이렇게 어렵지 않게 구현할 수 있습니다.

 

실제로 코딩할때에는 실제 작업을 보기 위해서 일반 모드로 코딩하고

 

최종 완료가 된 다음에는 속도 등을 위하여 headless로 구현하는 경우가 많은데요.

 

적절하게 선택하시어 작업하시면 되겠습니다.