https://news.hada.io/topic?id=15782
웹드라이버없이
from seleniumwire import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep
import sys
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
driver = webdriver.Chrome(options=chrome_options)
페이지 기다리기
def findNexonSignupWindow():
for window in driver.window_handles:
driver.switch_to.window(window)
currentURL = driver.current_url
if "signin.nexon.com/simple-signup" in currentURL : return True
return False
while(True):
if time.time() - start > timeout : return False
if findNexonSignupWindow() : break
sleep(0.3)
# 회원가입 페이지 나올때까지 대기
웹드라이버 자동업데이트
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_experimental_option('detach', True) # 브라우저 바로 닫힘 방지
options.add_experimental_option('excludeSwitches', ['enable-logging']) # 불필요한 메시지 제거
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
driver.get('<https://naver.com>')
service = Service(ChromeDriverManager().install()) 이 부분을 ChromeDriverManager(path="원하는 경로") 이렇게 사용하면 원하는 곳에 크롬드라이버를 다운로드하게 됩니다.
웹드라이버 옵션
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.5195.102 Safari/537.36"
user_data = "내가 원하는 경로"
options.add_argument(f"user-agent={user_agent}")
options.add_argument(f"user-data-dir={user_data}")
options.add_experimental_option("detach", True) # 화면이 꺼지지 않고 유지
options.add_argument("--start-maximized") # 최대 크기로 시작
options.add_argument("--start-fullscreen") # 전체 화면(F11)으로 시작
options.add_argument("window-size=500,500") # 화면 크기 지정
options.add_argument("--headless") # 헤드리스 모드
options.add_argument("--disable-gpu")
options.add_argument("--mute-audio") # 음소거
options.add_argument("incognito") # 시크릿 모드
options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 불필요한 메세지 제거
options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 자동화 메세지 제거
service = Service(ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=options)
driver.get("<https://naver.com>")
print(driver.page_source[:1000])
driver.quit()
[출처] 파이썬 셀레니움(selenium) 웹 드라이버 주요 옵션 마스터|작성자 김플
요소 선택자