본문 바로가기

[3편] 크롤링한 데이터를 CSV로 저장 & 자동화

디지털 백수 2025. 3. 26.
반응형

 

크롤링한 데이터를 CSV로 저장 & 자동화 📊

이제 크롤링한 스팀 게임 정보를 CSV 파일로 저장하고, 이를 자동화하는 방법을 배워보겠습니다.

📌 1. 왜 데이터를 CSV로 저장해야 할까?

  • 데이터 분석 가능 → 수집한 게임 정보를 엑셀에서 쉽게 분석
  • 자동 업데이트 가능 → 일정 주기로 크롤링하여 최신 데이터 유지
  • 머신러닝 활용 가능 → 게임 트렌드를 예측하는 AI 모델 훈련 가능

📌 2. 필요한 패키지 설치

CSV 파일 저장을 위해 pandas 라이브러리를 추가로 설치합니다.

pip install pandas

📌 3. 크롤링한 스팀 게임 데이터를 CSV로 저장하기

import requests
from bs4 import BeautifulSoup
import pandas as pd

# 스팀 인기 게임 목록 페이지 URL
url = "https://store.steampowered.com/explore/new/"

headers = {"User-Agent": "Mozilla/5.0"}
response = requests.get(url, headers=headers)

# HTML 파싱
soup = BeautifulSoup(response.text, "html.parser")

# 게임 데이터 저장 리스트
game_list = []

# 게임 제목 가져오기
game_titles = soup.select(".tab_item_name")
game_prices = soup.select(".discount_final_price")
game_discounts = soup.select(".discount_pct")

# 데이터 정리
for i in range(10):  # 상위 10개만 저장
    title = game_titles[i].text
    price = game_prices[i].text if i < len(game_prices) else "가격 정보 없음"
    discount = game_discounts[i].text if i < len(game_discounts) else "할인 없음"
    
    game_list.append([title, price, discount])

# 데이터프레임 생성 & CSV 저장
df = pd.DataFrame(game_list, columns=["게임 제목", "가격", "할인율"])
df.to_csv("steam_games.csv", index=False, encoding="utf-8-sig")

print("📂 CSV 파일 저장 완료: steam_games.csv")

📌 4. 실행 결과

게임 제목, 가격, 할인율
Elden Ring, 49,000원, 할인 없음
Cyberpunk 2077, 29,000원, -50%
Red Dead Redemption 2, 19,800원, -60%
...

📌 5. 크롤링 자동화 (스케줄링)

🔹 Windows에서 스케줄러 설정 (Task Scheduler 활용)

1. Python 스크립트를 실행하는 `.bat` 파일을 생성합니다.

python C:\경로\steam_scraper.py

2. Windows 작업 스케줄러(Task Scheduler)에서 매일 실행하도록 설정합니다.

🔹 Linux/Mac에서 스케줄링 (Cron 활용)

1. 터미널에서 `crontab -e` 실행

2. 아래와 같이 추가 (매일 오전 9시에 실행)

0 9 * * * /usr/bin/python3 /home/user/steam_scraper.py

이제 매일 최신 할인 정보를 자동 저장할 수 있습니다!

📌 6. 크롤링 데이터 활용 아이디어 🚀

  • 최저가 비교 사이트 제작 → 과거 데이터와 비교하여 최저가 기록 분석
  • 게이머 맞춤 추천 시스템 → 관심 장르별 할인 게임 추천
  • AI 트렌드 예측 → 머신러닝을 활용한 인기 게임 예측

📌 7. 마무리 & 프로젝트 확장

이번 강의에서는 크롤링한 데이터를 CSV로 저장하고, 자동화하는 방법을 배웠습니다.

이제 크롤링한 데이터를 활용해 더 많은 프로젝트를 진행할 수 있습니다! 🚀

반응형

댓글