본문 바로가기
Kirrgong_코드 정보

ChatGPT 답변 검토(네이버 자동 로그인)

by 키르공 2023. 3. 14.
반응형

지난 포스팅에서 ChatGPT를 이용하여 네이버 자동 로그인하기 위한 코드를 질문하여 답변으로 받았습니다. 이번 포스팅에서는 이 답변을 실제로 파이썬에서 구동해보고, ChatGPT로 코드를 제작했을 때의 한계점을 한번 짚어보았습니다. 

 

ChatGPT 제작 코드 구동 및 문제점 도출

지난 포스팅에서 파이썬 크롤링을 위한 간단한 네이버 자동 로그인할 수 있는 코드를 chatGPT에게 질문하였고, 답변은 아래와 같습니다. 

from selenium import webdriver
#네이버 로그인 정보
id = '실제 ID 입력'
pw = '실제 PW 입력'

#크롬 드라이버 사용
driver = webdriver.Chrome('C:\chromedriver.exe')

#로그인 페이지 접속
driver.get('https://nid.naver.com/nidlogin.login')

#아이디 입력 박스
driver.find_element_by_id('id').send_keys(id)

#비밀번호 입력박스
driver.find_element_by_id('pw').send_keys(pw)
#로그인 버튼 클릭
driver.find_element_by_id('log.login').click()

 

위의 사례에 대하여 chatGPT로 제작한 파이썬 코드를 구동했을 때 총 2가지 오류가 있었습니다. 

chatGPT-이용-파이썬-코드-오류
파이썬 코드 구동 오류

우선 첫 번째는 파이썬에서 "셀레니움" 모듈을 이용할 때 "chromedriver.exe" 가 필요한데, chatGPT에서는 이부분에 대한 언급이 전혀 없었습니다. 일반적으로 "chromedriver.exe"는 현재의 크롬 버전과 동일한 버전의 크롬드라이버를 다운로드해야 합니다. 

 

크롬 드라이버 다운로드 링크

 

다운로드가 완료되었다면, C드라이브에 해당 실행파일을 옮겨주고 다시 코드를 실행해보겠습니다.  

이번에는 아래 이미지와 같이 크롬창이 새롭게 열리고 ID, PW를 자동으로 입력되었습니다. 하지만 2번 그림과 같이 정상적으로 로그인이 이루어지지 않은 것을 확인할 수 있습니다.

ChatGPT-제작-코드-1차-보완-결과
ChatGPT 제작 코드 1차 보완 결과

반응형

ChatGPT 제작 코드 보완

네이버의 경우 자동 봇의 움직임을 탐지하고 있기 때문에 일반적인 셀레니움 코드를 이용하여 ID와 PW를 입력할 경우 로그인이 어렵습니다. 이를 해결하기 위해서는 "pyperclip" 모듈과 함께 이용해야 하며, 이를 보완한 코드는 아래와 같습니다. 

import pyperclip
from selenium.webdriver.common.keys import Keys
from selenium import webdriver

#네이버 로그인 정보
id = '실제 ID 입력'
pw = '실제 PW 입력'

#크롬 드라이버 사용
driver = webdriver.Chrome('C:\chromedriver.exe')

#로그인 페이지 접속
driver.get('https://nid.naver.com/nidlogin.login')

#아이디 입력 박스
pyperclip.copy(id)
driver.find_element_by_id('id').send_keys(Keys.CONTROL, 'v')

#비밀번호 입력박스
pyperclip.copy(pw)
driver.find_element_by_id('pw').send_keys(Keys.CONTROL, 'v')

#로그인 버튼 클릭
driver.find_element_by_id('log.login').click()

위의 보완된 코드로 구동했을 때 아래와 같이 정상적으로 로그인이 완료된 모습을 확인할 수 있습니다. 

정상-로그인-결과
정상 로그인 결과

추가로 챗GPT에게 우리가 사용할 모듈을 전부 알려주고 같은 방식으로 질문을 하더라도 오히려 더 정확하지 않은 답변을 받을 수 있었습니다. 이처럼 우리가 정확한 정답을 알고 있다고 가정했을 때, 챗GPT는 아직까지 주어진 상황을 올바르게 인지하고 최적의 정답을 알려주지는 못하고 있는 것으로 확인됩니다. 

 

(느낀점)

즉, 챗GPT를 이용하여 코드를 제작한다면 기초적인 단계에서 전체적인 틀 정도의 힌트는 얻을 수 있지만 실제로 해당 코드 만으로는 구동이 힘들다고 생각됩니다. 따라서 코드를 처음 배우는 단계에서 전반적인 틀을 구성할 때의 용도로 이용하기에는 무리가 없을 것으로 판단됩니다. 현재 챗GPT는 유료버전도 상용화하고 있으며, 지속적으로 발전하고 있기 때문에 추후에는 상황 인지 능력이 보다 개선될 것으로 보여집니다. 

반응형

댓글