BLOG/웹크롤링

[웹크롤링] 해당 페이지 캡처(screen shot)하기 - pyautogui

알디노 2021. 3. 19. 14:32

웹 페이지를 크롤링할 때, 페이지를 캡처하는 것도 하나의 데이터가 될 수 있는데요, 화면을 캡처하고 싶다면 'pyautogui' 라는 라이브러리를 사용하면 됩니다.

 

pyautogui 라이브러리는 cmd창에 pip install pyautogui 를 입력하면 설치가 됩니다.

 

 

한번 예시로, 네이버 홈페이지를 열고, 해당 화면을 캡처하는 코드를 살펴보겠습니다.

먼저, 아래 코드는 selenium과 크롬 드라이버를 이용하여 네이버 홈페이지를 여는 코드입니다.

 

from bs4 import BeautifulSoup 
from selenium import webdriver 
import time

path = "c:/temp/chromedriver_240/chromedriver.exe" #chomedriver의 경로
driver = webdriver.Chrome(path)
 
driver.get("http://naver.com") 

 

위 코드를 입력하고 실행하면 해당 네이버 페이지가 생성됩니다.

 

 

그리고, pyautogui 라이브러리로 캡처를 할 건데요, pyautogui 라이브러리에서 제공하는 'screenshot()' 함수를 이용하여 아래와 같이 코드를 작성하면 됩니다.

 

import pyautogui
image1 = pyautogui.screenshot(

 

캡처한 이미지를 image1 이라는 변수에 저장했는데요, 

이를 폴더에 저장해보도록 하겠습니다.

 

cv2.imwrite("c:\\test\\screenshot1.png", image1)

 

위 코드를 실행하고 해당 폴더에 들어가면 아래와 같이 네이버 홈페이지에 대한 스크린샷 이미지가 저장되어 있는 것을 확인할 수 있습니다.

 

 

 

한편, 이미지를 저장하기 전에 색상도 변경할 수 있는데요, 아래 코드는 생략이 가능하므로 참고만 하시기 바랍니다.

 

import pyautogui
import numpy as np
import cv2

image1 = pyautogui.screenshot() 

#색상 변경
image1 = cv2.cvtColor(np.array(image1), cv2.COLOR_RGB2BGR)

cv2.imwrite("c:\\test\\screenshot1.png", image1)