셀레니움을 이용한
네이버 로그인 자동화 구현 입니다.
예제는 스타트 코딩, 이것이 진짜 크롤링이다 기본편 강의를 들으면서 공부한 내용입니다.
구현 화면
자동입력 방지 문자 알림 해결
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()
반응형
'개발 > Python' 카테고리의 다른 글
[py] 파이썬 마우스 조작, 키보드 조작 (ft. pyautogui) (0) | 2022.09.29 |
---|---|
[py] 파이썬 반복문 예제 (ft. for문, while문) (0) | 2022.09.27 |
[py] 셀레니움 기본 설정 (0) | 2022.09.25 |
[py] 네이버 상품 목록 크롤링 해오기 (ft. 셀레니움, csv로 옮기기) (0) | 2022.09.25 |
[py] ModuleNotFoundError: No module named 'selenium' (0) | 2022.09.22 |
댓글