Project10_오토마우스를 활용한 웹페이지 자동화

Song Chae Won·2023년 2월 3일
0
post-thumbnail

오토마우스를 활용한 웹페이지 자동화

자동으로 마우스와 키보드를 조작하는 코드를 작성하여 웹페이즈에서 자동으로 날씨정보를 얻는 프로그램을 만들어보자.

➕ 라이브러리 설치

마우스와 키보드를 자동으로 제어하기 위한 라이브러리

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)) #저장될 경로와 파일명을 지정
profile
@chhaewxn

0개의 댓글