본문 바로가기

카테고리 없음

PySimpleGUI로 크롤링 결과 실시간 보여주기

반응형

PySimpleGUI로 크롤링 결과 실시간 보여주기

 

파이썬을 활용한 웹 크롤링은 데이터 수집 자동화에 매우 유용한 기술입니다. 하지만 일반적으로 터미널이나 콘솔을 통해 실행되는 경우가 많아, 사용자가 직접 실행하고 결과를 보기에는 다소 불편할 수 있습니다. 이럴 때 PySimpleGUI를 활용하면 간단한 그래픽 사용자 인터페이스(GUI)를 통해 웹 크롤링 결과를 실시간으로 확인할 수 있는 프로그램을 쉽게 만들 수 있습니다.

PySimpleGUI란?

PySimpleGUI는 파이썬에서 GUI를 쉽고 빠르게 만들 수 있도록 도와주는 경량 라이브러리입니다. Tkinter, Qt, WxPython 등 여러 GUI 백엔드를 감싸고 있으며, 복잡한 코드 없이도 GUI를 구축할 수 있는 것이 장점입니다.

특히 PySimpleGUI는 웹 크롤링처럼 간단한 입력과 출력을 반복하는 작업에 매우 적합합니다. 버튼 클릭으로 크롤링을 시작하고, 그 결과를 테이블 형식으로 GUI에 바로 보여줄 수 있기 때문에 초보자에게도 적합합니다.

실습 목표

  • PySimpleGUI를 이용한 간단한 GUI 구성
  • requests와 BeautifulSoup을 사용한 웹 크롤링
  • 크롤링 결과를 GUI에서 실시간으로 확인

라이브러리 설치

pip install PySimpleGUI requests beautifulsoup4

예제: 뉴스 헤드라인 실시간 표시 GUI

네이버 뉴스에서 실시간 헤드라인을 가져와 GUI로 출력해보는 예제입니다.

import PySimpleGUI as sg
import requests
from bs4 import BeautifulSoup

def get_news_headlines():
    url = "https://news.naver.com/"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, 'html.parser')

    headlines = []
    for a in soup.select('.Nitem_link_menu'):
        title = a.get_text(strip=True)
        if title:
            headlines.append([title])
    return headlines

layout = [
    [sg.Text('네이버 실시간 뉴스 헤드라인')],
    [sg.Button('크롤링 시작')],
    [sg.Table(values=[], headings=['헤드라인'], 
              auto_size_columns=True,
              justification='left',
              key='-TABLE-',
              num_rows=15)]
]

window = sg.Window('뉴스 크롤러', layout)

while True:
    event, values = window.read()
    if event == sg.WINDOW_CLOSED:
        break
    if event == '크롤링 시작':
        data = get_news_headlines()
        window['-TABLE-'].update(values=data)

window.close()

코드 설명

  • get_news_headlines(): requests와 BeautifulSoup을 이용해 네이버 뉴스에서 제목을 추출하는 함수입니다.
  • layout: PySimpleGUI를 이용해 구성된 화면 요소입니다. 버튼과 테이블을 포함하고 있습니다.
  • window.read(): 이벤트 루프를 통해 버튼 클릭을 감지하고 동작을 처리합니다.

응용 아이디어

  • 날씨 정보, 주식 시세, 환율 정보 등 실시간 데이터로 확장
  • 사용자 입력을 받아 특정 키워드로 뉴스 검색 기능 추가
  • 크롤링 결과를 파일로 저장하거나 자동 알림 기능 구현

마무리하면서

PySimpleGUI는 웹 크롤링 결과를 사용자 친화적인 형태로 보여주는 데 매우 유용한 도구입니다. 복잡한 코드를 작성하지 않고도 손쉽게 버튼, 테이블, 입력창 등을 구현할 수 있어 GUI 개발이 처음인 분들에게도 적합합니다.

이번 예제처럼 실시간으로 데이터를 수집하고 그 결과를 시각적으로 출력하는 시스템을 구축하면, 보다 직관적인 데이터 활용이 가능해집니다. 앞으로 PySimpleGUI를 활용해 자신만의 데스크탑 도구를 만들어보는 것은 어떨까요?

반응형