<초보코딩님 유투브로 공부하며 정리하였습니다>
pyautogui 라이브러리 이용해서 매크로 만들기
필요기능
- 클릭
- 아이디 / 비번 타이핑
- 쥬피터 노트북에서 pyautogui 사용하기 위해 라이브러리 설치하기
- pip install xxx
[*]는 아직 실행중인 상태를 나타냄
끝나면 숫자로 바뀜
- install 한 후에는 import 해주어야 함
- install은 인터넷에서 이 라이브러리를 다운 받아서 내 컴퓨터에 깐다
- import는 내 컴퓨터에 깔려있는 라이브러리를 이번에 내 코딩 코드로 들고와서 사용하겠다
- install은 한번 깔고나면 매번 할 필요는 없고,
import는 소스파일을 만들 때마다 매번 import 해주어야 함 - import xxx as yyy
- 라이브러리 이름이 너무 길 경우에, 라이브러리의 별명을 지어줄 수 있음
- import pyautogui as pag : pyautogui를 앞으로 pag로 사용하겠다
pip install pyauto gui import pyautogui as pag
- install은 한번 깔고나면 매번 할 필요는 없고,
- pyautogui의 position 함수를 사용하여, 마우스 커서 위치 추출
- pyautogui의 click 함수를 사용하여, 로그인 버튼 클릭
- pyautogui의 typewrite를 사용하여, 아이디 / 비밀번호 입력
- pag.typewrite("abcde")
- enter나 tab, alt 같은 특수 키는 typewrite 대신 press를 통해 입력할 수 있음
pyautogui.typewrite("studying python") pyautogui.press("enter")
- 아이디 입력 창 클릭된 상태에서 아이디 / 비번 입력
- 그리고나서 final 로그인 버튼 눌러주면 됨
미리 준비해야 할 것
- naver 홈페이지에서의 로그인 버튼 위치
- id 입력하기 위해 click 할 id 위치 버튼 위치
- id / 비번 입력 후의 최종 로그인 버튼 위치
- 로그인 할 네이버 아이디 / 비번
trouble shooting
- 만약 네이버 홈페이지에서 로그인 버튼 위치 눌렀을 때에,
미리 로그인 아이디가 저장되어 있어 미리 타이핑 되어 있을 경우에
A1. 그 아이디로 로그인 할 거면 -> 바로 로그인 버튼 클릭
A2. 다른 아이디로 로그인하고 싶으면 : 기존 저장되어 있는 아이디 지워주어야 함 - capslock이 안 눌렸는데도 불구하고 아이디가 대문자로 입력되는 경우
A. 안 눌린 상태에서,
아이디 입력창 클릭 한 후
강제로 capslock을 한 번 누른 후, 또 눌러서 강제로 한번 껐다 켜주기
제대로 입력된 상태 : - 키보드 입력이 너무 빨라서, 로봇인지 체크 당할 경우
A1. 중간에 delay 넣어주기
import time time.sleep(1) #sleep for 1 sec
A2. 타자치는 속도를 낮춰야 함
: pyautogui의 typewrite에서 interval 옵션을 넣어줄 수 있음
my_id = id123 my_pw = pw321 pag.typewrite(my_id, interval = 0.5) #type one character every 0.5sec
A3. 그럼에도 불구하고 안된다면?
- 현재 네이버에서 직접 타이핑하는 경우가 아니면, 봇으로 인지해서 막혀있는 것 같다고
초보코딩님께서 말씀주심!
네이버 말고 다른 사이트로 테스트하기 :D
(참고로 카톡은 잘 됨)
#prepare
#0. import pyautogui, time
#1. get naver login button position to "login_btn"
#2. get id input position to "id_position"
#3. get final login button position to "final_login_btn"
#4. set naver_id and naver_pw
login_btn = (1094, 615)
id_position = (573, 476)
final_login_btn = (425, 626)
naver_id = "myid123"
naver_pw = "mypw321"
pag.click(login_btn) #click login button
time.sleep(1) #delay for 1 sec
pag.click(id_position) # click id position
time.sleep(1) #delay for 1 sec
i = 0
while i < 20:
pag.press("backspace", interval = 1)
i = i + 1
pag.press("capslock", interval = 0.5)
pag.press("capslock", interval = 0.5)
time.sleep(1) #delay for 1 sec
pag.typewrite(naver_id, interval = 0.5)
time.sleep(1) #delay for 1 sec
pag.press("tab")
time.sleep(1) #delay for 1 sec
pag.typewrite(naver_pw, interval = 0.5)
time.sleep(1) #delay for 1 sec
pag.click(final_login_btn)
'python 공부 > 매크로 만들기' 카테고리의 다른 글
[파이썬 매크로 만들기] #06. 화면 인식 기반 (0) | 2021.08.09 |
---|---|
[파이썬 매크로 만들기] #05. 화면 색깔 인식하기 (0) | 2021.08.09 |
[파이썬 매크로 만들기] #04. 매크로 시작 단축키 만들기 (1) | 2021.08.09 |
[파이썬 매크로 만들기] #02. 파이썬 기초 (0) | 2021.08.09 |
[파이썬 매크로 만들기] #01. 코딩 환경 구축 (0) | 2021.08.09 |