본문 바로가기
Coding/Project

2.[Python 자동 로그인] 파이썬을 이용한 자동 로그인 2편 (코딩 따라하기)

by kgoing 2022. 8. 12.

썸네일화면


 

 

 

 

 

 

안녕하세요 kgoing입니다. 오늘은 지난 시간에 이어 크롬 드라이버를 이용하여 네이버 자동 로그인 코드를 작성해 보는 시간을 갖겠습니다.

 

부분 코드로 설명드리고 최종 코드도 공유드릴 테니 천천히 따라 하시면 될 거 같습니다.

 

1. 일단 사용할 모듈을 import 해 줍니다.

selenium이라는 모듈을 사용할 것이고 사용 전에 컴퓨터에 모듈이 설치되어있어야 합니다.

만약 설치가 되어 있지 않다면 명령 프롬프트 창을 실행하시고 pip install selenium이라고 작성하시어 설치를 해 줍니다.

 

설치가 완료되었으면 일단 네이버 로그인 창까지 열어 보겠습니다.

코드는 다음과 같습니다.

from selenium import webdriver  # 모듈 불러오기

url = "https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com" # 네이버 로그인 URL

driver = webdriver.Chrome("c:/chromedriver.exe") #드라이버라는 변수에 저장, 크롬 드라이버 위치 확인

driver.get(url) #네이버 URL 입력

 

지난 시간에 저는 다운로드한 크롬 드라이버를 C드라이브에 저장하였습니다.  3행의 ("c:/chromedriver.exe") 은 저장 위치를 알려주는 코드입니다.

 

여기까지 하시고 실행을 시키면 네이버 로그인 창이 열립니다.

네이버로그인화면
실행화면

위에 보시면 Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다.라는 문구가 있습니다. 이는 파이썬으로 핸들링되고 있다는 뜻으로 이해하시면 될 거 같습니다.

 

2. 아이디 입력 코드 작성 1

아이디 입력 코드를 작성하기 위해 네이버 로그인 창에서 f12를 눌러 개발자 도구를 열어 줍니다. 

다음 순을 따라 해 봅니다.

1). 1번을 클릭

2). 아이디 창 클릭

3). input이라는 태그가 선택

4). 마우스 오른쪽 버튼 copy ->  copy xpath

 

개발자도구화면
개발자도구화면

아무 데나 붙여 넣기를 하면 다음과 같은 코드가 복사된 걸 확인할 수 있습니다.(//*[@id="id"])

해당 코드가 복사되셨다면 잘 따라오신 겁니다.

 

3. 아이디 입력 코드 작성 2

1행은 아이디 창을 id라는 변수로 바꿔줬습니다. 복사한 아이디 창 태그는 1행 () 안 , 뒤에 적습니다.

2행은 아이디 창을 클릭해 주는 코드입니다.

3행은 아이디 창에 본인 아이디를 적는 코드입니다. 저는 ffff라고 임의로 적었습니다.

#아이디 입력 코드

id = driver.find_element("xpath",'//*[@id="id"]') # 아이디 변수 만들기

id.click() # 아이디 창 클릭
id.send_keys("ffff") # 아이디 입력키 보내기 ("본인 아이디")

실행화면창
실행화면

 

 

3. 비밀번호 입력코드 작성

 

비밀번호 입력 코드도 아이디 입력 코드 작성 방법과 동일합니다.

마찬가지로 마우스 오른쪽 버튼 copy ->  copy xpath 

를 하시고 아무 곳이나 붙여 넣기를 하면 다음과 같은 코드가 복사된 걸 확인할 수 있습니다.(//*[@id="pw"])

해당 코드가 복사되셨다면 잘 따라오신 겁니다.

 

코드는 다음과 같습니다.

 

#비밀번호 입력 코드

pw = driver.find_element("xpath",'//*[@id="pw"]') #비밀번호 태그를 pw 라는 변수 만들기

pw.click() # 비밀번호 창 클릭
pw.send_keys("ffffff") # 비밀번호 입력키 보내기 ("본인 비번")

 

4. 로그인 버튼 클릭

 

아이디와 비밀번호 넣기까지 완료하시면 마지막으로 로그인 버튼을 클릭해 주는 코드를 만들어야 합니다.

개발자 도구를 열어 로그인 태그를 확인하고 copy xpath를 해 줍니다.

 

개발자화면
로그인 태그 확인

코드는 다음과 같습니다.

 

# 로그인 코드 입력

button = driver.find_element("xpath",'//*[@id="log.login"]') #로그인 버튼을 button 함수로 변경

button.click() #로그인 버튼 클릭

 

 

여기까지 잘 따라오셨다면 로그인이 정상적으로 되고 다음과 같은 화면이 나타납니다.

로그인성공화면
로그인 성공화면

해당화면은 네이버 url에서 자동 접속을 감지하여 생성된 화면입니다. 

우리는 다음 시간에 자동 접속 감지를 우회하여 정상적으로 로그인할 수 있는 방법에 대해 알아보겠습니다.

 

결국 로그인이 안됐다고 실망해하지 마시고 오늘 배운 내용은 앞으로도 많이 사용될 내용이라 기초 학습을 하셨다고 생각해 주시면 감사하겠습니다.

 

 

 

 

5. 전체 코드



from selenium import webdriver  # 모듈 사용

url = "https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com" # 네이버 로그인 URL

driver = webdriver.Chrome("c:/chromedriver.exe") #크로 드라이버 경로 , 드라이버라는 변수에 저장

driver.get(url) #네이버 URL 입력 

#아이디 입력 코드

id = driver.find_element("xpath",'//*[@id="id"]') # 아이디 변수 만들기

id.click() # 아이디 창 클릭
id.send_keys("ffff") # 아이디 입력키 보내기 ("본인 아이디")

#비밀번호 입력 코드

pw = driver.find_element("xpath",'//*[@id="pw"]')

pw.click() # 비밀번호 창 클릭
pw.send_keys("ffffff") # 비밀번호 입력키 보내기 ("본인 비번")

# 로그인 코드 입력

button = driver.find_element("xpath",'//*[@id="log.login"]') # 로그인 버튼을 button 함수로 변경

button.click() #로그인 버튼 클릭

 

감사합니다.

 

댓글