RPA/Python

[selenium] Headless로 처리하기

꼰대 2021. 5. 5. 16:00

RPA 처리 시 실제 브라우저를 실행하지 않고 가상 브라우저로 처리하는 방법이 있다.

드라이버 생성 시 Headless 옵션을 주면 가능하다.

일부 사이트는 Headless를 통한 크롤링 접근을 차단하는 곳이 이에 대한 추가 옵션이 필요하다.

 

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

 

# 브라우저 실행하지 않고 처리하기 옵션 (Headless로 실행하기)

# 참고 및 인용 : https://beomi.github.io/gb-crawling/posts/2017-09-28-HowToMakeWebCrawler-Headless-Chrome.html

op = Options()

# Headless 설정

op.add_argument('headless')

# 창 크기 설정

op.add_argument('window-size=1920x1080')

# GPU를 사용하지 않겠다는 설정

op.add_argument('disable-gpu')

# 브라우저의 User Agent 설정 (Headless는 User Agent에 HeadlessChrome이 표시된다)

# 나의 User Agent 확인 : m.avalon.co.kr/check.html

op.add_argument('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36')

# 브라우저 언어 설정

op.add_argument("lang=ko_KR")

 

# 드라이버 생성 시 옵션 설정

driver = webdriver.Chrome(options=op)

driver.get('https://www.naver.com')

 

 

 

 

# 다른 방법

# op = webdriver.ChromeOptions()

# op.headless = True

# op.add_argument('window-size=1920x1080')

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

 

# 드라이버 생성 시 옵션 설정 (options attribute도 되는 듯)

# driver = webdriver.Chrome(chrome_options=op)

# driver.get('https://www.naver.com')

 

 

 

 

반응형