파이썬/크롤링

셀레니움 최적화를 위한 chrome_options

코샵 2024. 1. 30. 10:34
반응형

셀레니움은 웹 페이지를 자동화하는 데 사용되는 프레임워크입니다. 셀레니움을 사용하여 웹 페이지를 크롤링하거나 테스트할 때는 성능 최적화가 중요합니다. 성능을 최적화하면 셀레니움 작업을 더 빠르게 수행할 수 있습니다.

 

셀레니움의 성능을 최적화하는 방법 중 하나는 chrome_options를 사용하는 것입니다. chrome_options는 Chrome 브라우저를 특정 방식으로 구성하는 데 사용할 수 있는 옵션입니다.

 

셀레니움에서 자주 사용되는 chrome_options는 다음과 같습니다.

  • --headless: 브라우저를 GUI 없이 실행합니다. 이를 통해 브라우저 창이 표시되지 않아 리소스를 절약할 수 있습니다.
  • --disable-gpu: GPU 가속을 비활성화합니다. 일부 시스템에서 GPU 가속이 문제를 일으킬 수 있으므로 비활성화하는 경우가 있습니다.
  • --disable-extensions: 브라우저 확장 프로그램을 비활성화합니다. 확장 프로그램은 셀레니움의 성능을 저하시킬 수 있습니다.
  • --disable-popup-blocking: 팝업 차단을 비활성화합니다. 팝업 차단은 셀레니움이 웹 페이지를 로드하는 데 걸리는 시간을 늘릴 수 있습니다.
  • --start-maximized: 브라우저를 최대화된 상태로 시작합니다. 이를 통해 셀레니움이 웹 페이지를 더 빠르게 로드할 수 있습니다.
  • --window-size: 브라우저 창 크기를 지정합니다. 브라우저 창 크기를 줄이면 셀레니움의 성능을 향상시킬 수 있습니다.
  • --no-sandbox: 리눅스에서 셀레니움이 적절히 동작하지 않을 때 사용할 수 있는 옵션입니다.
  • --disable-dev-shm-usage: /dev/shm을 사용하지 않도록 설정하여 일부 리눅스 시스템에서 발생하는 문제를 해결할 수 있습니다.
  • --disable-notifications: 브라우저 알림을 비활성화합니다.
  • --disable-infobars: 정보 표시줄을 숨깁니다.

이 외에도 세부적인 설정은 사용하는 상황에 따라 다르며, 필요에 따라서 추가적인 커스터마이징이 가능합니다. 선택한 옵션은 프로젝트의 요구사항에 맞게 조절할 수 있습니다.

 

다음은 --headless 옵션을 사용하여 브라우저를 GUI 없이 실행하는 예제입니다.

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")

driver = webdriver.Chrome(options=chrome_options)

driver.get("https://www.google.com/")

# 원하는 작업 수행...

driver.quit()

이 코드를 실행하면 브라우저 창이 표시되지 않고 https://www.google.com/ 웹페이지가 로드됩니다.