반응형
셀레니움을 이용하여 아이디창에 바로 입력해도 되지만,
네이버에서는 비정상적인 로그인 활동으로 감지하여 매크로 확인과 함께 다시 로그인 시키기 때문에,
로그인을 위해서는 직접 입력이 아닌 아이디와 비밀번호를 복사해서 붙여주는 형식으로 로그인이 가능합니다.
#네이버 로그인 방법
from selenium import webdriver # 셀레니움 사용
from selenium.webdriver.common.by import By # By.XPATH 사용
from selenium.webdriver.common.keys import Keys # enter 등 커멘드 창 사용
from selenium.webdriver.chrome.options import Options # option 사용
from selenium.webdriver.common.action_chains import ActionChains # ctrl + v 붙여넣기 사용하기 위한 모듈
import time # 대기 사용
import pyperclip # 복사 붙여넣기 사용
가장 먼저 파이썬에서 사용할 라이브러리를 불러줍니다.
ID = '아이디'
PW = '비밀번호'
options = Options()
options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 자동화 문구 제거
driver = webdriver.Chrome(options=options)
#driver = webdriver.Chrome
driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/')
time.sleep(5)
사용할 아이디와 비밀번호를 적은 뒤, 셀레니움에서 뜨는 자동화 문구를 제거할 코드를 입력합니다.
(불팔요시에는 4줄부터 6줄까지를 지워주시고 그 밑에 주석값을 이용하면 됩니다.)
이후 네이버 로그인 페이지를 킨 뒤 5초간 대기합니다.
#로그인
pyperclip.copy(ID)
driver.find_element(By.XPATH, "//*[@id=\"id\"]").click()
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
driver.find_element(By.XPATH, "//*[@id=\"pw\"]").click()
pyperclip.copy(PW)
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
driver.find_element(By.XPATH, "//*[@id=\"log.login\"]").send_keys(Keys.ENTER)
time.sleep(5)
input()
클립보드에 입력했던 ID값을 복사해주고, 아이디, 비밀번호 입력창을 클릭하여 복사 붙여넣기를 실행시켜 줍니다.
입력이 완료되면 로그인 버튼을 누른 뒤 대기합니다.
정상적으로 로그인이 되는 것을 확인하실 수 있습니다.
전체 코드
#네이버 로그인 방법
from selenium import webdriver
from selenium.webdriver.common.by import By # By.XPATH 사용
from selenium.webdriver.common.keys import Keys # enter 등 커멘드 창 사용
from selenium.webdriver.chrome.options import Options # option 사용
from selenium.webdriver.common.action_chains import ActionChains # ctrl + v 붙여넣기 사용하기 위한 모듈
import time # 대기 사용
import pyperclip # 로그인 우회를 위한 복사 붙여넣기 모듈
ID = '아이디'
PW = '비밀번호'
options = Options()
options.add_experimental_option("excludeSwitches", ["enable-automation"]) # 자동화 문구 제거
driver = webdriver.Chrome(options=options)
#driver = webdriver.Chrome
driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/')
time.sleep(5)
#로그인
pyperclip.copy(ID)
driver.find_element(By.XPATH, "//*[@id=\"id\"]").click()
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
driver.find_element(By.XPATH, "//*[@id=\"pw\"]").click()
pyperclip.copy(PW)
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
driver.find_element(By.XPATH, "//*[@id=\"log.login\"]").send_keys(Keys.ENTER)
time.sleep(5)
input()
반응형
'공부를 함시다 > Python' 카테고리의 다른 글
[Python] 파이썬 코드를 exe로 만들기(pyinstaller) (0) | 2024.03.22 |
---|---|
[Python] 파일을 찾을 수 없다는 오류 (0) | 2024.03.14 |
[Python] 컴퓨터 화면 보호기 상태 확인 (0) | 2024.03.04 |
[Python] 가상환경 설정하기 (0) | 2024.01.09 |
[Python] 텔레그램 봇 사용해보기 (0) | 2024.01.02 |