본문 바로가기
개발/Python

[py] 네이버 로그인 자동화 (ft. 셀레니움)

by 코딩하는 갓디노 2022. 9. 25.

[py] 네이버 로그인 자동화 (ft. 셀레니움)

 

셀레니움을 이용한
네이버 로그인 자동화 구현 입니다. 

 

예제는 스타트 코딩, 이것이 진짜 크롤링이다 기본편 강의를 들으면서 공부한 내용입니다.

 

구현 화면

 

자동입력 방지 문자 알림 해결

id.send_keys('네이버 아이디'),  pw.send_keys('네이버 비밀번호') 코드 사용하면 너무 빨리 입력이 되면서 네이버에서 감지하여 아래와 같은 오류 알림 화면으로 이동됩니다. 

이를 해결하기 위해, 사람이 직접 입력한 것과 같은 코드로 변경해줘야 합니다. 

pyperclip.copy('입력어')
pyautogui.hotkey('ctrl', 'v') //입력어 붙여넣기로 #id.send_keys('입력어')와 같음
time.sleep(2) //2초 딜레이

 

 

네이버 로그인 자동화

#셀레니움 기본설정
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager #크롬 드라이버 자동 업데이트
from selenium.webdriver.common.by import By 

#자동입력 방지 문자 알림창 방지 위해 3가지 import
import time
import pyautogui
import pyperclip

chrome_options = Options() #브라우저 꺼짐 방지
chrome_options.add_experimental_option("detach", True)
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) #불필요한 에러 메세지 삭제

service = Service(executable_path = ChromeDriverManager().install()) #크롬 드라이버 최신 버전 자동 설치 후 서비스 만들기
driver = webdriver.Chrome(service = service, options = chrome_options)

driver.implicitly_wait(5) #사이트 로딩시간 5초 기다림
driver.maximize_window() #화면 최대화(꽉차게)
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com") #웹페이지 해당 주소 이동

id = driver.find_element(By.CSS_SELECTOR, '#id') #아이디 입력창
id.click()
#id.send_keys('네이버 아이디') - 아래 코드로 변경
pyperclip.copy('네이버 아이디')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)

pw = driver.find_element(By.CSS_SELECTOR, '#pw') #아이디 입력창
pw.click()
#pw.send_keys('네이버 비밀번호') - 아래 코드로 변경
pyperclip.copy('네이버 비밀번호')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)

driver.find_element(By.CSS_SELECTOR, '.btn_login').click()

 

 

반응형

댓글