몇 년 전, 공익근무 관련 업무 자동화로 이슈가 있었던 토픽입니다!

 

엄청난 스크린샷 업무를 파이썬 하나를 통해 몇 달 걸릴 일을 단숨에 끝냈다고 하네요.

마침 스크린샷 후 pdf파일 만들 일이 생겨, 상기 시나리오를 기반으로 구현을 해보려고 합니다.

 

 

우선 전체코드는 다음과 같습니다.

1
2
3
4
5
6
7
8
9
import pyautogui
 
page = 250
for i in range(page):
    try:
        pyautogui.screenshot('filename'+str(i)+'.png', region=(200,300300,300))
    except:
        pass
    pyautogui.click(900,2000, button='left', clicks=1, interval=1)
cs

 

 

1
2
3
import pyautogui
 
page = 250
cs

 먼저, 우리가 사용할 라이브러리는 pyautogui 입니다.

 

 

 이 라이브러리를 통해 스크린샷과 원하는 위치를 클릭하는 기능을 구현할 것입니다.

 

 페이지는 원하시는 만큼 할당해 주시고,

 

 

1
2
3
4
5
for i in range(page):
    try:
        pyautogui.screenshot('filename'+str(i)+'.png', region=(200,300300,300))
    except:
        pass
cs

 반복문을 돌며 pyautogui.screenshot 함수를 통해 스크린샷을 찍게 되는데 먼저 저장 파일명이 인자로 들어가고,

위치를 지정해줘야 하는데 region에 차례로 시작할 x좌표, y좌표, x크기, y크기 가 들어가게 됩니다.

 

 try 문으로 감싸주는 것은 대용량 작업 시 뻑날 경우를 대비해서 추가해보았습니다

라고 하고 싶었지만, 사실은 코드 다 작성하고 오류가 나길래 귀찮아서 오류 읽지도 않고 오류 날 만한 곳 try로 묶었다가

계속 안되길래 확인해보니 Pillow라이브러리 설치가 안돼 있었습니다 ㅠㅠ

 설치 후 잘 동작하길래 안 지우고 놔두었습니다 ㅋㅋ!! 

 

 

1
pyautogui.click(900,2000, button='left', clicks=1, interval=1)
cs

 마지막으로, 클릭해서 페이지를 넘기거나 정보를 수정해야 하기 때문에, pyautogui.click함수를 활용하여 클릭을 하게 됩니다.

 인자를 차례로 보면, 클릭할 x좌표, y좌표, clicks에서 볼 수 있듯 몇 번 클릭할지, interval은 클릭 사이 간격을 몇 초로 둘 것인가를 설정하는 것입니다.

 이 interval로 인해 중간에 따로 sleep함수를 걸어주지 않아도 알아서 중간중간 실행을 기다릴 수 있습니다.

 

실행 후 생성된 스크린샷.png

 이로써 구현 완료입니다! 저는 여러 사진들을 캡쳐한 뒤 pdf로 묶어서 관리하려고 이 기능을 사용했네요.

 pyautogui 라이브러리에 좋은 기능들 입맛대로 수정해보면서 사용해보는 것도 재밌을 것 같아요!

 

감사합니다~

'Python' 카테고리의 다른 글

Python OS.PATH  (0) 2015.08.16
Python: SYS  (0) 2015.07.31
Python:FOR  (0) 2015.07.26

+ Recent posts