티스토리 뷰

반응형

자... 제일 만만?????  자주!쓰는 사이트를 일단 자동로그인 해보자!

먼저 여러가지 모듈을 가져오자.
selenium: pip install selenium
-> 웹에서 이곳저곳 UI내에? 위치도 찾고, 실행하고, 클릭, 등등 뭐 일단 웹에는 무조건 필요

chromdriver_autoinstaller: pip chromdriver_autoinstaller
-> 크롬드라이버 자동으로 설치되게 할라고 사용

pyautogui: pip install pyautogui
-> 자동으로 타이핑도하고 키보드도 두드리고 마우스도 만지는데 사용

subprocess: pip install subprocess
->언제설치했는지 모르겠는데 설치되있네;
크롬 브라우저 실행할때 사용!

시작전에 먼저 알아보자!
구글링한결과 캡챠가 안뜨게 해야한단다...!!
캡차가 뜨는 이유는 셀레니움을 사용한다는 것을 네이버가 알기 때문이다.

그래서 디버거크롬을 일반 크롬과 똑같이 만들어버리면 된다.
그리고 아이디 비밀번호 칠때도 자바스크립트를 사용하지 않고 해야한다.
자바스크립트를 안쓰고 로그인 하는 방법은 쉽게 말하면
element 의 click(), send_keys() 와 같은 명령어를 안쓰는거다.

일단 여기저기 매크로를 네이버에만 실행되도록 구현하려고, 로그인 순서대로 그냥 만들었다.

######코드
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

import subprocess
import chromedriver_autoinstaller
import pyautogui

import time

##1. 여기부터 디버거 크롬을 일반 크롬처럼 캐쉬도 저장하도록 구현
try:
    subprocess.Popen(r'C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp1"')  # 디버거 크롬 구동
except:
    subprocess.Popen(r'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\chrometemp1"')  # 디버거 크롬 구동

option = Options()
option.add_experimental_option("debuggerAddress""127.0.0.1:9222")
chrome_ver = chromedriver_autoinstaller.get_chrome_version().split('.')[0]

try:
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe'options=option)
except:
    chromedriver_autoinstaller.install('./')
    driver = webdriver.Chrome(f'./{chrome_ver}/chromedriver.exe'options=option)
driver.implicitly_wait(20)
##여기까지는 그냥 복붙해서 사용

##2. 네이버 창을 뛰움 element.key()와 click() 다른 메소드를 사용하면 안된다고해서 이렇게 구현
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com")
time.sleep(1)
pyautogui.press("enter")
time.sleep(1)

# 아이디 입력
driver.find_element_by_id('id')
pyautogui.typewrite("my_id"interval=0.1)
pyautogui.press("tab")

# 비번를 입력 
pyautogui.typewrite("my_pwd"interval=0.1)
pyautogui.press("enter")

time.sleep(1)

###실행결과

 

짜잔...... 캡챠 등장!!! 젠장!!!
봇인지 알았나보다... 역시 네이버님...
거의 사람처럼 했는데?? 아닌가;
어떻게 하면 진짜 사람처럼 로그인을 할 수있을까?
1. 일반크롬 처럼 만들고
2. click()이나 send_keys()도 쓰지말래서 안썻는데
왜 안됩니까!!!!!!!!

아이디어 정리
1. 다시 봇 탐지 우회할 방법을 찾는다. 캡챠가 안뜰때까지!
2. 어차피 캡챠는 뜬다. 캡챠 이후에 그림을 파싱해서 해석하고 문제를 푼다.... AI사용가능?? 불가.
3. 아래에 오디오를 듣고 문제를 푼다.
  -> 가능성있다. 오디오 파일을 찾아서 텍스트로 변환 시키면 된다!
일단 파일이 wav파일이란건 알아냈다.
1. wav파일 위치 찾기
2. wav파일 다운로드
-> 다운받은 파일 읽어서 텍스트로 변환
-> 텍스트 입력 후 로그인
도전 해보실분 찾습니다.....

나도 성공담 쓰고싶다

반응형
댓글
공지사항