자동으로 마우스와 키보드를 조작하는 코드를 작성하여 웹페이즈에서 자동으로 날씨정보를 얻는 프로그램을 만들어보자.
마우스와 키보드를 자동으로 제어하기 위한 라이브러리
pip install pyautogui
클립보드에 값을 복사하거나 붙여넣기 용도로 사용하는 라이브러리
pip install pyperclip
import pyautogui
import time
while True:
print(pyautogui.position())
time.sleep(0.1)
0.1초마다 마우스의 좌표르 출력하는 프로그램
종료할 때는 Ctrl + C
import pyautogui
import time
import pyperclip
pyautogui.moveTo(1241,206,0.2) #네이버의 검색창 좌표로 0.2초동안 이동
pyautogui.click() #마우스 클릭 (오토 마우스 라이브러리 기능)
time.sleep(0.5) #0.5초 기다리기
pyperclip.copy("서울 날씨") #클립보드에 서울 날씨를 저장
pyautogui.hotkey("ctrl", "v") #클립보드에 저장된 내용을 붙여넣기
time.sleep(0.5)
pyautogui.write(["enter"]) #엔터키 입력
time.sleep(1) #1초동안 기다리기
네이버 검색창으로 이동 -> 서울 날씨 검색 -> 엔터의 동작을 자동으로 하는 프로그램 만들기
pyautogui에서 화면을 캡쳐할 수 있음. 서울 날씨를 자동으로 캡쳐
import pyautogui
import time
import pyperclip
pyautogui.moveTo(1241, 206, 0.2)
pyautogui.click()
time.sleep(0.5)
pyperclip.copy("서울 날씨")
pyautogui.hotkey("ctrl", "v")
time.sleep(0.5)
pyautogui.write(["enter"])
time.sleep(1)
start_x = 992
start_y = 220
end_x = 1656
end_y = 635 # 시작 x,y좌표 및 종료 x,y좌표를 입력
pyautogui.screenshot(r'10. 오토마우스를 활용한 웹페이지 자동화\서울날씨.png', region=(
start_x, start_y, end_x-start_x, end_y-start_y))
# 스크린샷을 찍어 10, 오토마우스를 활용한 웹페이지 자동화 경로에 서울날씨.png로 저장. region=(시작좌표 x, 시작좌표 y, 크기 x, 크키 y)로 크기는 종료좌표에서 시작좌표를 빼서 구하기
변수명을 한글과 영어로 같이 사용하였는데, 범용적으로 사용이 어렵기 때문에 한글변수명은 추천 X, 파이썬에서는 한글로 해도 동작 가능
import pyautogui
import time
import pyperclip
날씨 = ["서울 날씨","시흥 날씨","청주 날씨","부산 날씨","강원도 날씨"] # 검색하고 싶은 지역을 리스트 형태로 입력
addr_x = 1145 #웹브라우져 주소창의 좌표 x값
addr_y = 53 #웹브라우져 주소창의 좌표 y값
start_x = 992
start_y = 220
end_x = 1656
end_y = 635
for 지역날씨 in 날씨: #날씨 변수의 수만큼 반복
pyautogui.moveTo(addr_x,addr_y,1) #검색창의 주소 좌표로 1초에 거쳐서 이동
time.sleep(0.2)
pyautogui.click()
time.sleep(0.2)
pyautogui.write("www.naver.com",interval=0.1) #주소를 0.1초 간격으로 영문 입력
pyautogui.write(["enter"])
time.sleep(1)
pyperclip.copy(지역날씨)
pyautogui.hotkey("ctrl", "v")
time.sleep(0.5)
pyautogui.write(["enter"])
time.sleep(1)
저장경로 = '10. 오토마우스를 활용한 웹페이지 자동화\\' + 지역날씨 + '.png'
pyautogui.screenshot(저장경로, region=(start_x, start_y, end_x-start_x, end_y-start_y)) #저장될 경로와 파일명을 지정