juuuding

Chapter 04 자동화 프로그램 만들기 #10 본문

Python/파이썬과 40개의 작품들

Chapter 04 자동화 프로그램 만들기 #10

jiuuu 2023. 1. 30. 21:23

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

 

1. 라이브러리 설치

 - pyautogui는 마우스와 키보드를 자동으로 제어하기 위한 라이브러리이다. pyperclip은 클립보드에 값을 복사, 붙여넣기 용도로 사용하며 pyautogui에는 한글이 지원되지 않아 검색에 필요한 한글을 클립 보드를 사용하기 위하여 설치한다.

pip install pyautogui
pip install pyperclip

 

2. 마우스 좌표 출력하기

import pyautogui
import time

while True:
    print(pyautogui.position())
    time.sleep(0.1)

※ 오토 마우스 라이브러리 기능

pyautogui.position()

-마우스의 좌표 입력 받기

pyautogui.moveTo(x,y)

-x,y 좌표로 이동 (절대 좌표)

pyautogui.moveTo(x,y,time)

-x,y 좌표로 지정된 시간동안 이동 (절대 좌표)

pyautogui.moveRel(x,y)

-현재 마우스 위치로부터 x,y 픽셀만큼 이동

pyautogui.click()

-현재 마우스 커서 위치에서 클릭

pyautogui.doubleClick()

-현재 마우스 커서 위치에서 더블클릭

pyautogui.click((50,50))

-50,50 위치에 마우스 클릭

pyautogui.click(x=50,y=50)

-x=50,y=50의 위치에 마우스 클릭

pyautogui.rightClick()

-현재 마우스 커서 위치에 마우스 우클릭

pyautogui.dragTo(x=50, y=50, duration=2)

-현재 마우스 위치부터 50,50 좌표까지 2초동안 드래그

pyautogui.typewrite("ABC")

-ABC 입력. 한글 지원 X

pyautogui.typewrite("ABC", interval=1)

-1초동안 ABC 입력

pyautogui.hotkey("ctrl","v")

-hotkey를 이용하여 두 개의 키 동시에 누를 수 있음. [Ctrl-V] 입력

pyautogui.screenshot('저장경로', region=(100,100,50,50))

-부분 캡처. region=(x좌표, y좌표, 가로 사이즈, 세로 사이즈)


 

3. 네이버에서 자동으로 서울 날씨 검색하기

import pyautogui
import time
import pyperclip

# 0.2초 동안 해당 좌표로 이동
pyautogui.moveTo(1437,234,0.2)
pyautogui.click()
# 0.5초 기다리기
time.sleep(0.5)

# 클립보드에 "서울 날씨 저장"
pyperclip.copy("서울 날씨")
# ctrl-v 키 입력
pyautogui.hotkey("ctrl","v")
# 0.5초 기다리기
time.sleep(0.5)

# 엔터키 입력
pyautogui.write(["enter"])
time.sleep(1)

 

4. 날씨 화면 자동 캡처 후 저장

import pyautogui
import time
import pyperclip


pyautogui.moveTo(1437,234,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 = 991
start_y = 251
end_x = 1647
end_y = 654

# 스크린샷을 찍어 weather.png에 저장
# region=(시작좌표 x, 시작좌표 y, 크기 x, 크기 y)
pyautogui.screenshot(r'10. Automouse web\weather.png', region=(start_x,start_y,end_x-start_x,end_y-start_y))

 

5. 여러 지역 날씨 자동으로 검색 후 저장

import pyautogui
import time
import pyperclip

weather = ["서울 날씨","부산 날씨","진주 날씨","경남 고성 날씨","강원도 날씨"]

addr_x=1437
addr_y=234
start_x = 991
start_y = 251
end_x = 1647
end_y = 654

for i in weather:
    pyautogui.moveTo(addr_x,addr_y,0.2)
    pyautogui.click()
    time.sleep(0.5)

    pyperclip.copy(i)
    pyautogui.hotkey("ctrl","v")
    time.sleep(0.5)

    pyautogui.write(["enter"])
    time.sleep(1)


    pyautogui.screenshot('10. Automouse web\\'+i+".png", region=(start_x,start_y,end_x-start_x,end_y-start_y))