안녕하세요 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() #로그인 버튼 클릭
감사합니다.
'Coding > Project' 카테고리의 다른 글
3.[Python 자동 로그인] 파이썬을 이용한 네이버 자동 로그인 우회 접속 하는 법 3편 (코딩 따라하기)(feat. 자동 접속 감지 우회 방법) (0) | 2022.08.20 |
---|---|
1.[Python 자동 로그인] 파이썬을 이용한 자동 로그인 1편 (코딩 따라하기)크롬 드라이버 다운로드 방법. (0) | 2022.08.12 |
댓글