Allen's 데이터 맛집
Headless 크롬 본문
서버 같은 곳에서 작업을 하면 매번 브라우저를 띄워서 결과를 확인하게 되어 불필요한 메모리를 사용하게 됩니다.
그럴 때 사용하면 좋은 것이 Headless크롬, 말 그대로 크롬이 없는 크롬을 사용하시면 됩니다.
크롬을 띄우지 않고 백그라운드에서 크롬을 실행시켜서 좀 더 빠르고 메모리를 적게 들여서 실행이 가능합니다.
아래 코드를 작성하여 headless를 True로 해주면 크롬 창을 띄우지 않고 실행하게 됩니다
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument('window-size=1920x1080')
주의할 점!
무분별한 웹 크롤링/웹스크래핑은 대상 서버에 부하를 줘서 계정/ ip 차단될 수 있어요!
데이터 사용 주의 : 이미지, 텍스트 등 데이터 무단 활용 시 저작권 등 침해 요소, 범적 제재를 받을 수 있습니다.
robots.txt : 법적 효력 X, 대상 사이트의 권고
headless chrome을 사용 할 경우 웹에서 headless chrome 을 인식해서 막히는 경우가 있을 수 있으므로 때로는 아래 코드처럼 user-agent를 통해 바꿔 주는 것이 필요합니다
from selenium import webdriver
import time
import requests
from bs4 import BeautifulSoup
options = webdriver.ChromeOptions()
options.headless = True
options.add_argument('window-size=1920x1080')
options.add_argument(
'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.114 Safari/537.36')
browser = webdriver.Chrome(
'C:\\Users\Vector\Desktop\PythonWorkSpace\.vscode\webscraping_basic\chromedriver.exe', options=options)
browser.maximize_window()
url = 'https://www.whatismybrowser.com/detect/what-is-my-user-agent'
browser.get(url)
detected_value = browser.find_element_by_id('detected_value')
print(detected_value.text)
browser.quit()