• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

자동 로그인시 자동입력방지문자 페이지로 연결

24.01.12 17:51 작성 24.01.12 17:53 수정 조회수 489

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

다른 에러는 안뜨는거보니 코드는 잘 돌아가는거 같고, time.sleep()의 초를 늘려도 계속 자동입력 방지문자 페이지가 뜨면서 로그인이 안됩니다 ㅠ 뭐가 문제일까요.. 네이버 정책이 바뀐걸까요?

 

from selenium import webdriver

from selenium.webdriver.chrome.service import Service

from selenium.webdriver.chrome.options import Options

from selenium.webdriver.common.by import By


# 크롬 드라이버 자동 업데이트

from webdriver_manager.chrome import ChromeDriverManager


import time

import pyautogui

import pyperclip


# 브라우저 꺼짐 방지

chrome_options = Options()

chrome_options.add_experimental_option("detach", True)


# 불필요한 에러메세지 없애기

chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])


service = Service(executable_path=ChromeDriverManager().install())

driver = webdriver.Chrome(service=service, options=chrome_options)


# 웹페이지 해당 주소 이름

driver.implicitly_wait(5)  # 웹페이지가 로딩될 때까지 5초 기다림

driver.maximize_window()  # 화면 최대화

driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/")


# 아이디 입력창

id = driver.find_element(By.CSS_SELECTOR, "#id")

id.click()

pyperclip.copy(" ")

pyautogui.hotkey("ctrl", "v")

time.sleep(5)


# 비밀번호 입력창

pw = driver.find_element(By.CSS_SELECTOR, "#pw")

pw.click()

pyperclip.copy(" ")

pyautogui.hotkey("ctrl", "v")

time.sleep(5)


# 로그인 버튼

login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")

login_btn.click()

 

 

답변 3

·

답변을 작성해보세요.

1

JH님의 프로필

JH

질문자

2024.01.12

선생님께서 강의하시면서 자동문자입력 방지페이지로 넘어가는 이유가 input에 입력 속도가 너무 빠를경우 서버에서 봇으로 인식하기 때문에 time으로 컨트롤이 가능하다고 하셨습니다. 그래서 time.sleep()에서 괄호 안의 숫자를 늘려도 똑같이 자동문자입력 방지페이지가 나옵니다.

 

AI가 추천해준 다른 질문의 내용들과는 다르게 아이디와 비밀번호 자동 입력은 잘 되고, 로그인 클릭도 잘 됩니다.

0

JH님의 프로필

JH

질문자

2024.01.13

오늘 다시 해보니 되네요..ㅎ...머쓱

아마 여러번 자동 로그인 시도 후, 네이버 쪽에서 비정상적인 접근으로 판단해서
일정 시간동안 제약을 걸었을 수 있습니다 🙂

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.12

안녕하세요, 인프런 AI 인턴입니다. JH님의 자동 로그인시 자동입력방지문자 페이지 연결 문제에 대해 답변 드리겠습니다.

나열된 답변 예시 중, JH님의 상황과 가장 비슷한 문제를 다루고 있는 네이버 자동로그인 글을 참고하시면 도움이 될 것 같습니다.

위 예시에서, 질문자는 네이버 자동 로그인을 구현하기 위한 스크립트를 실행한 후 로그인 창만 나타나고, 아이디와 비밀번호가 자동으로 입력되지 않는 문제를 겪고 있었습니다. 지식공유자는 코드 내에 괄호의 사용이 필요한 부분(click() 메서드)에 괄호를 제대로 사용하지 않았음을 지적했습니다.

JH님의 경우도 유사한 상황일 수 있습니다. 불필요한 정보를 마스킹한 상태에서도 실제 아이디와 비밀번호를 pyperclip.copy() 함수를 이용하여 복사하고 pyautogui.hotkey()로 입력하는 부분이 올바르게 작동하는지 확인해야 합니다. 또한 자동입력 방지문자가 나타나는 것은 네이버 측에서 비정상적인 로그인 시도로 간주될 수 있는 행위에 대응하는 보안 메커니즘이 작동하기 때문일 수 있습니다.

이외에, 다음 글들도 자동 로그인 문제와 관련하여 참고하실 수 있습니다:
- 네이버 로그인시 id 칸에 아이디 패스워드 이런식으로 나옵니다
- 기본편에서도 질문을 햇는데 로그인이 제대로 되지 않아요.ㅡㅜ

네이버 로그인 페이지에서 자동 로그인을 구현하는 것은 네이버 정책에 위배될 수 있으며, 네이버는 보안을 강화하기 위해 자동화된 로그인 시도를 탐지하고 차단할 수 있습니다. 이를 우회하는 방법에 대한 공개적인 논의는 자제해야 하며, 개인적인 사용에 한하여 합법적인 목적으로만 사용해야 합니다.

만약 문제가 지속된다면 implicitly_wait이나 time.sleep()을 사용하는 것 외에도 WebDriverWait와 같은 명시적 대기 방법을 이용해서 요소가 활성화되고 사용할 준비가 완료될 때까지 기다리는 방법도 고려해 보시길 권장드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.