Python/Selenium
[Selenium] 로그인 자동화 프로그램 (캡차 우회)
미눅스[멘토]
2024. 10. 11. 21:46
728x90
아래는 코드는 네이버 로그인 캡차를 우회하지 않는 코드이다
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
user_id = "아이디"
user_pw = "비밀번호"
# 드라이버 생성
driver = webdriver.Chrome()
driver.maximize_window()
# 1. 로그인 페이지 이동
time.sleep(2)
# 2. 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
id.send_keys(user_id)
time.sleep(1)
# 3. 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, "#pw")
pw.send_keys(user_pw)
time.sleep(1)
# 4. 로그인 버튼 클릭
driver.find_element(By.CSS_SELECTOR, ".btn_login").click()
결과는 이렇게
아래처럼 막혀버리고 만다.
클립보드에 복사한 뒤에 붙여넣기 기능을 이용해서
아이디와 비밀번호를
입력하면 다시 로그인이 잘된다
아래가 바로 이 코드의 핵심이다.
# pyperclip 라이브러리 설치
pip install pyperclip
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pyperclip
import time
user_id = "아이디"
user_pw = "비밀번호"
# 드라이버 생성
driver = webdriver.Chrome()
driver.maximize_window()
# 1. 로그인 페이지 이동
time.sleep(2)
# 2. 아이디 입력
id = driver.find_element(By.CSS_SELECTOR, "#id")
pyperclip.copy(user_id)
id.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
# 3. 비밀번호 입력
pw = driver.find_element(By.CSS_SELECTOR, "#pw")
pyperclip.copy(user_pw)
pw.send_keys(Keys.CONTROL, 'v')
time.sleep(2)
# 4. 로그인 버튼 클릭
driver.find_element(By.CSS_SELECTOR, ".btn_login").click()
이렇게 코드를 수정한 뒤에 다시 코드를 돌려보면
아래처럼 다시 로그인이 잘 된다!!
만약 복붙 후 작동하지 않는다면 time.sleep(3) 또는 time.sleep(5) 로 바꾸어 보자
페이지가 랜딩되기전에 실행하면 멈추는 현상이 있다.
네이버 로그인이 필요한 다양한 서비스들을
자동화 할 수 있지만 절대 악용은 하지 말아야한다.