코딩 발걸음 - 한발두발개발

파이썬 셀레니움 크롬 옵션 - python selenium chrome options(Feat. headless, window size, user-agent etc..) 본문

개발/python

파이썬 셀레니움 크롬 옵션 - python selenium chrome options(Feat. headless, window size, user-agent etc..)

한발두발개발 2021. 6. 14. 15:36
728x90

안녕하세요 :D

오늘은 셀레니움으로 크롬 브라우저를 적용하는 옵션들에 대해서 알아보겠습니다.

 

풀 코드 및 간단한 설명 먼저 올리겠습니다. 바쁘신 여러분들은 풀 코드만 보시는 걸 좋아하니까요ㅎㅎ

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()

#지정한 user-agent로 설정합니다.
user_agent = "Mozilla/5.0 (Linux; Android 9; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.83 Mobile Safari/537.36"
options.add_argument('user-agent=' + user_agent)

options.add_argument('headless') #headless모드 브라우저가 뜨지 않고 실행됩니다.
options.add_argument('--window-size= x, y') #실행되는 브라우저 크기를 지정할 수 있습니다.
options.add_argument('--start-maximized') #브라우저가 최대화된 상태로 실행됩니다.
options.add_argument('--start-fullscreen') #브라우저가 풀스크린 모드(F11)로 실행됩니다.
options.add_argument('--blink-settings=imagesEnabled=false') #브라우저에서 이미지 로딩을 하지 않습니다.
options.add_argument('--mute-audio') #브라우저에 음소거 옵션을 적용합니다.
options.add_argument('incognito') #시크릿 모드의 브라우저가 실행됩니다.

 

먼저 웹 드라이버와 크롬 옵션을 가져오고 선언해 줍니다.

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()

 

그럼 지금부터 옵션을 적용해보겠습니다.

 

1. User-Agent 설정 : add_argument('user-agent =' + str)

브라우저를 사용자 임의의 유저에이전트로 설정해 줍니다.

#지정한 user-agent로 설정합니다.
user_agent = "Mozilla/5.0 (Linux; Android 9; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.83 Mobile Safari/537.36"
options.add_argument('user-agent=' + user_agent)

위처럼 유저에이전트를 설정하고 드라이버를 실행 후 스크립트를 사용하여 유저에이전트 확인해 봅시다.

user-agent 설정

설정된 user-agent값이 나옵니다.

 

driver.execute_script('return navigator.userAgent')
# 결과 = 'Mozilla/5.0 (Linux; Android 9; SM-G975F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.83 Mobile Safari/537.36'

파이썬 환경 내에서는 자바스크립트 코드를 이용해서 유저에이전트를 확인할 수 있습니다.

 

2. headless 모드 : add_argument('headless')

headless는 셀레니움에서 띄우는 브라우저를 보이지 않게 해줍니다. 

options.add_argument('headless')

위처럼 옵션을 추가해 줄 수 있습니다.
크롬 드라이버가 백그라운드에서 실행돼서 브라우저가 안 보이고, 다른 작업을 하더라도 방해가 되지 않는다는 장점이 있지만 간혹 headless를 하고 브라우저 접근 시 access denied나 원하는 요소를 클릭할 때 제대로 못 찾을 수 있습니다.

 

3. 브라우저 화면크기

- 크기 지정 : add_argument('--window-size= x, y')

- 최대화 : add_argument('--start-maximized')

- 풀스크린 (F11) : add_argument('--start-fullscreen')

 

--window-size= x, y는 브라우저의 사이즈를 지정해 줍니다.

options.add_argument('--window-size=360,640')

1. add_argument('--window-size=360,640') 적용 후 브라우저

 

 

--start-maximized는 최대화된 크기로 지정합니다.

options.add_argument('--start-maximized')

2. options.add_argument('--start-maximized') 적용 후 브라우저

 

 

--start-fullscreen는 풀스크린(F11) 크기로 지정합니다.

options.add_argument('--start-fullscreen')

3. add_argument('--start-fullscreen') 적용 후 브라우저

 

많은 사이트들이 반응형으로 만들어진 만큼 브라우저 크기에 따라 나타나는 요소들이 다르게 나타날 수 있으니

브라우저 크기를 적절히 지정하여 사용하면 되겠습니다.

 

 

4. 이미지 사용 안함 : add_argument('--blink-settings=imagesEnabled=false')

--blink-settings=imagesEnabled=false는 이미지 로딩을 하지 않습니다.

options.add_argument('--blink-settings=imagesEnabled=false')

 

 

add_argument('--blink-settings=imagesEnabled=false') 적용한 네이버의 모습

이미지 로딩을 하지 않게 되면 네트워크 사용량이 줄고

페이지 로딩 속도가 빨라지지만 이미지 클릭 시 문제가 발생할 수도 있으니 주의하셔야 합니다.

 

5. 음소거 : add_argument('--mute-audio')

options.add_argument('--mute-audio')

음소거입니다. 해당 옵션을 적용하고 유튜브같이 사운드가 나오는 사이트를 들어가면 소리는 켜져 있더라도 사운드가 나오지 않는 것을 확인할 수 있습니다.

 

6. 시크릿 모드 : add_argument('incognito')

 

마지막으로 시크릿모드입니다.

add_argument('incognito')

add_argument('incognito')를 적용한 브라우저

 

오늘은 위처럼 크롬의 user-agent, headless, 브라우저 사이즈, 이미지 사용 안 함, 음소거, 시크릿 모드 옵션에 대해 알아봤습니다.

 

많은 도움 되셨길 바라며 읽어주셔서 감사합니다! :D