programming/Python

파이썬 selenium 라이브러리 ChromeOptions 총정리

Jofresh 2023. 9. 1. 09:55
728x90
반응형

ChromeOptions는 Selenium을 사용하여 Chrome 브라우저를 제어할 때 설정할 수 있는 옵션들의 컨테이너입니다. 이러한 옵션을 사용하여 Chrome 브라우저의 동작을 제어하고 사용자 지정할 수 있습니다. 아래는 일반적으로 사용되는 몇 가지 ChromeOptions 항목입니다:

 

ChromeOptions 항목

  1. --headless: 이 옵션을 사용하면 Chrome을 화면에 표시하지 않고 백그라운드에서 실행할 수 있습니다. 이것은 브라우저를 시각적으로 표시하지 않고 웹 스크래핑 또는 테스트 작업을 수행하는 데 유용합니다.
  2. --disable-gpu: GPU 가속을 비활성화합니다. 일부 시스템에서 GPU 가속이 문제를 일으킬 수 있으므로 이를 비활성화하여 문제를 해결하는 데 도움이 됩니다.
  3. --disable-extensions: Chrome 확장 기능을 비활성화합니다. 이것은 브라우저 확장 기능이 작업에 영향을 주는 경우에 사용될 수 있습니다.
  4. --disable-notifications: 브라우저에서 웹 사이트의 알림을 비활성화합니다.
  5. --window-size: 브라우저 창의 크기를 설정합니다. 예를 들어 --window-size=1920,1080으로 설정하면 브라우저 창의 너비가 1920 픽셀이고 높이가 1080 픽셀로 설정됩니다.
  6. --user-agent: 사용자 에이전트 문자열을 설정합니다. 이를 사용하여 브라우저가 웹 서버에게 사용자 에이전트로 표시될 문자열을 사용자 정의할 수 있습니다.
  7. --proxy-server: 프록시 서버를 설정하여 브라우저의 트래픽을 라우팅할 수 있습니다.
  8. --incognito: 시크릿 모드(익명 모드)로 브라우저를 시작합니다.

예를 들어, --headless 옵션을 사용하면 Chrome 브라우저를 화면에 표시하지 않고 백그라운드에서 실행할 수 있으며, 이를 웹 스크래핑 작업에 사용할 수 있습니다. 각 옵션은 필요에 따라 조합하여 사용할 수 있으며, Selenium을 사용하여 Chrome 브라우저를 더 효과적으로 제어하고 사용자 지정할 수 있도록 해줍니다.

 

저는 주로 아래 3가지를 사용합니다.

--disable-gpu: gpu가속을 비활성화해서 속도를 조금 더 빠르게 하기 위함

--headless: 몇 시간 동안 진행해야 하는 크롤링 작업에서는 아니지만, 간단한 크롤링에서는 해당 옵션을 켜고 합니다. 오랜 시간 작업하는 경우 이 옵션을 켰을 때 오류 발생하는 케이스를 많이 겪어서 사용하지 않습니다.

--user-agent: 다이닝코드, 네이버지도 등 특정 웹사이트의 경우 크롤링을 할 경우 ip 차단 당하는 경우가 있었습니다. 그럴 경우 이 옵션을 활성화해서 크롤링 작업을 하면 일반 유저로 인식해서 차단 당하는 경우가 없었습니다. 

아래에 해당 옵션 이용하는 예시코드도 업로드 해두었습니다.

 

 

반응형

ChromeOptions 예시 코드

ChromeOptions을 사용하여 Chrome 브라우저를 설정하고 실행하는 간단한 예시 코드를 제공합니다. 이 예시에서는 --headless와 --disable-gpu 옵션을 사용하여 브라우저를 백그라운드에서 실행하고 GPU 가속을 비활성화합니다.

 

from selenium import webdriver

# 원하는 User-Agent 문자열 설정
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"

# ChromeOptions 설정
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")  # 브라우저를 화면에 표시하지 않음
chrome_options.add_argument("--disable-gpu")  # GPU 가속 비활성화
chrome_options.add_argument(f"user-agent={user_agent}")

# Chrome 드라이버 생성
chromedriver_path = "/path/to/chromedriver"  # 본인 시스템에 맞는 chromedriver 경로로 수정
driver = webdriver.Chrome(executable_path=chromedriver_path, options=chrome_options)

# 웹페이지 열기 예시
driver.get("https://www.example.com")

# 페이지 소스 코드 가져오기
page_source = driver.page_source
print(page_source)

# 브라우저 종료
driver.quit()

 

위의 코드에서 "--headless"와 "--disable-gpu"를 chrome_options에 추가하여 Chrome을 백그라운드에서 실행하고 GPU 가속을 비활성화합니다. 필요한 경우 다른 옵션을 추가하거나 수정하여 Chrome 브라우저의 동작을 사용자 정의할 수 있습니다.

 

728x90
반응형