티스토리 뷰

반응형

파이썬 중,고수들에겐 매우 매우 쉬운 코드이고 굳이 알아볼 것도 없지만
나처럼 혼자 파이썬을 독학하는 파이썬 입문자에겐 네이버 자동로그인 코드가 매우 도움이 된다고 생각함.

이미 구글과 네이버에 많은 자동로그인 코드가 있지만 대부분이 구버전 셀레니움 코드..
최신 버전으로 selenium을 구동하면 많은 고수들이 적어놓은 자동로그인 코드가 실행되지 않음..
오류가 발생하지요.. 좌절감을 느끼실 거임..
그래서 '22. 10. 14.(금) 기준 최신 버전의 네이버 자동로그인 selenium 코드 공유드림.

이전 셀레니움 표기법이

driver.find_element_by_xpath('//*[@0=00"id"]').click()

위와 같은 방식이라면 최신 셀레니움에서는 아래와 같은 표기법 사용. 어려운건 1도 없고 표기만 달라짐. 이전보다 보기 더 편한듯?

driver.find_element(by=By.CLASS_NAME, value="000")
driver.find_element(by=By.TAG_NAME, value="000")
driver.find_element(by=By.ID, value="000")

우선 xpath는 불안정?하기 때문에 사용하지 않고 변동되지 않는 값을 사이트 분석을 통해 더 안전하게 이용하도록 하겠음

먼저, 모듈을 다운 받고, 아래 코드를 입력! 코드는 그대로 복사해가면 됨
#아래를 복사하시면 됨!

#셀레니움기능사용위한셋팅값

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pyperclip

from과 import를 입력해주어야 셀레니움 웹드라이버와 by, key 사용이 가능
우리는 크롬 브라우저를 사용할 것임!

#네이버자동로그인
driver = webdriver.Chrome()
url = "http://www.naver.com"
driver.get(url)
time.sleep(1)

드라이버를 크롬으로 정의하고 url은 네이버 주소를 입력해 주면 됨.
driver.get(url)시 해당 브라우저 창이 켜짐!

#네이버 ID 비밀번호
user_id = '아이디적으세요'
user_pw = '비밀번호적으세요'

user_id, pw 변수에 사용할 실제 사용 아이디와 비밀번호를 정의하면 됨
자신의 아이디와 비밀번호!
ex) user_id = 'line_jjin'
user_pw = '1234'

#네이버 로그인창으로 접속
elem = driver.find_element(by=By.CLASS_NAME, value="link_login")
elem.click()

네이버 로그인창의 클레스 네임이 link_login 일텐데
elem이라는 변수에 정의해서 클릭하면 해당 페이지로 이동하게 됨

 

#네이버 아이디 입력
log_ID = driver.find_element(by=By.ID, value="id")
log_ID.click()
pyperclip.copy(user_id)
log_ID.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

로그인 시 id 입력할 창(칸)을 클릭 하게 만듬
그리고 pyperclip 모듈을 사용해 id 값을 복사후
log_ID.send_keys(Keys.CONTROL, 'v') 붙여넣기!
그러면 칸에 값이 입력됨. 직접 적으로 입력하지 않고 복붙해서 하는 이유는 맨 아래 알려드리겠음!

 

#네이버 비밀번호 입력
log_PID = driver.find_element(by=By.ID, value="pw")
log_PID.click()
pyperclip.copy(user_pw)
log_PID.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

같은 방법으로 비밀번호도 복붙하게 만듬 정의한 pw칸에 비밀번호를 입력시킴!

#로그인 클릭
log_ENT = driver.find_element(by=By.ID, value="log.login")
log_ENT.click()

그리고 로그인 element 클릭하게 해주면
네이버 자동 로그인 끝!~
다른 코드에 잘 섞어서 이용하길 바람

.
.
.

네이버는 자동입력 방지를 위해 자동입력 방지문자란게 있음
로그인 연속으로 수차례 잘못했을 때 뜨는 그거!
영문 숫자 같은거 입력하거나 철자 입력 혹은 영수증 사진을 가지고 계산하게 하는 것인데
이걸 우회?하기 위해서는 복붙으로 입력시키면 우회 가능함!
그래서 pyperclip와 send_keys를 사용하는 것!

네이버는 너무 빠른 속도로 계속 접속하면 일정시간 ip 벤 먹을 수도 있음 그렇기 때문에 time.sleep을 이용했음. 

why 코드 몰라도 사용 가능 입문자를 위해 작성했음
그대로 따라서 복사만 하면 됨~~
어렵지 않으니 잘 사용할 것~

 

종합

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pyperclip

#네이버자동로그인
driver = webdriver.Chrome()
url = "http://www.naver.com"
driver.get(url)
time.sleep(1)

#네이버 ID 비밀번호
user_id = '아이디적으세요'
user_pw = '비밀번호적으세요'

#네이버 로그인창으로 접속
elem = driver.find_element(by=By.CLASS_NAME, value="link_login")
elem.click()

#네이버 아이디 입력
log_ID = driver.find_element(by=By.ID, value="id")
log_ID.click()
pyperclip.copy(user_id)
log_ID.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

#네이버 비밀번호 입력
log_PID = driver.find_element(by=By.ID, value="pw")
log_PID.click()
pyperclip.copy(user_pw)
log_PID.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

#로그인 클릭
log_ENT = driver.find_element(by=By.ID, value="log.login")
log_ENT.click()
반응형