Python

Python 웹사이트 자동화를 위한 셀레니움_기본설정(네이버 홈페이지 로그인)

김띵똥 2022. 8. 1. 17:35
from pickle import LONG_BINPUT
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# 크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager


import time
import pyautogui
import pyperclip

# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach",True)

Service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=Service , options=chrome_options)

# 웹페이지 해당 주소 이동
driver.implicitly_wait(10)
driver.maximize_window()

# 아이디 입력창
id = driver.find_element(By.CSS_SELECTOR,"#id")
id.click()
pyperclip.copy("아이디 입력")
pyautogui.hotkey("ctrl","v")
time.sleep(1)

# 비밀번호
id = driver.find_element(By.CSS_SELECTOR,"#pw")
id.click()
pyperclip.copy("비밀번호 입력")
pyautogui.hotkey("ctrl","v")
time.sleep(1)
# 로그인 버튼
LONG_BINPUT =driver.find_element(By.CSS_SELECTOR, "#log\.login")
LONG_BINPUT.click()
 

id click() , pw click() 밑에

id .send_keys("아이디 입력") ,pw .send_keys("비밀번호 입력") 이 들어가도 되는데,

send_keys 함수를 쓰게 되면 너무 빠르게 입력되면서

네이버 측에서 매크로로 인식하여 자동 입력 방지 문자 항목이 뜨게 된다.

이러한 항목을 방지하고자 time sleep 함수와, copy함수인 pyperclip.copy , pyautogui.hotkey를 사용한다.