개발자/파이썬

파이썬 셀레니움 (Selenium) headless

june__kim 2021. 1. 3. 16:57

파이썬 셀레니움 (Selenium) headless

 

2021/01/02 - [개발자/파이썬] - 파이썬 Selenium (셀레니움) 스크롤(Scroll)

2021/01/01 - [개발자/파이썬] - 파이썬 (Selenium) 로딩까지 기다림 (feat. WebDriverWait)

2020/12/31 - [개발자/파이썬] - 파이썬 (Python) Selenium (기본, 네이버 로그인)

2020/12/30 - [개발자/파이썬] - 파이썬 웹스크래핑(web scraping)_2

2020/12/30 - [개발자/파이썬] - 파이썬 웹스크래핑(web scraping)

 

저번 글에서부터 웹 스크래핑을 할 때, 매번 브라우저를 띄우고 웹 스크래핑을 진행했는데

사실 이런 경우, 메모리도 더 잡아먹고, 속도도 좀 더 느리고 여러모로 성능 측면에서 저하가 일어날 수 있다.

 

 

이때 사용할 수 있는게 headless이다.

아래의 코드에서처럼, headless를 위한 옵션을 설정하고,

이 options을 webdriver.Chrome()의 인자에 추가해주면 된다. 

import requests
from bs4 import BeautifulSoup
from selenium import webdriver

options = webdriver.ChromeOptions() # headless를 위한 옵션 설정
options.headless = True
options.add_argument("window-size=1440x900")

browser = webdriver.Chrome("각자의 chromedriver 경로", options=options)
browser.maximize_window()

 

 

근데 그냥 이렇게 headless를 쓰게 되면, 우리의 User-Agent 속성에 Headless속성이 들어간다.

요로케 Headless

 

 

이렇게 될 경우, 서버측에서 접근을 차단하는 경우가 생길 수 있기 때문에 options.add_argument를 통해 UserAgent값을 설정해야한다.

from selenium import webdriver

options = webdriver.ChromeOptions() # headless를 위한 옵션 설정
options.headless = True
options.add_argument("window-size=1440x900")
options.add_argument("user-agent= 각자의 UserAgent 값")
# 이 옵션을 추가해야 Useragent에 Headless 속성이 없어진다. (Headerless속성이 존재하는 경우에 서버에서 차단하는 경우가 생길 수 있다.)

browser = webdriver.Chrome("각자의 chromedriver 경로", options=options)
browser.maximize_window()

 

이렇게 하면 headless를 쉽게 이용 할 수 있다.

 

 

 

이번 글까지 해서 일단 내가 배운 것들까진 다 정리를 했다.

어느정도 웹 스크래핑에 대한 것들을 정리했지만, 아직 많은 것들이 남았다.

 

일단 배운 것들을 응용해보면서 부족한 부분들은 차근차근 채워나가야겠다.

 

 

당분간 웹 스크래핑은 byebye~~