파이썬 셀레니움 (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속성이 들어간다.
이렇게 될 경우, 서버측에서 접근을 차단하는 경우가 생길 수 있기 때문에 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~~
'개발자 > 파이썬' 카테고리의 다른 글
Python/Django TemplateDoesNotExist 에러 처리 방법!! (1) | 2021.05.31 |
---|---|
파이썬 재무제표 스크래핑으로 내가 원하는 주식 찾기(feat. 네이버금융) (3) | 2021.01.04 |
파이썬 Selenium (셀레니움) 스크롤(Scroll) (2) | 2021.01.02 |
파이썬 (Selenium) 로딩까지 기다림 (feat. WebDriverWait) (1) | 2021.01.01 |
파이썬 (Python) Selenium (기본, 네이버 로그인) (4) | 2020.12.31 |