!pip install steamreviews -q
import steamreviews
import pandas as pd
from google.colab import files
from datetime import datetime
# 게임 ID
app_id = '1145360'
# 리뷰 수집
review_dict, query_count = steamreviews.download_reviews_for_app_id(
app_id,
chosen_request_params={'language': 'korean'},
query_count=1
)
print(f"수집된 리뷰 수: {len(review_dict['reviews'])}")
print(f"API 요청 횟수: {query_count}")
# 첫 번째 리뷰 하나 확인
first_review_id = list(review_dict['reviews'].keys())[0]
first_review = review_dict['reviews'][first_review_id]
print("리뷰 데이터에 포함된 키(필드):")
print(list(first_review.keys()))
# DataFrame으로 변환
reviews_list = []
for review_id, review_data in review_dict['reviews'].items():
reviews_list.append({
'review_id': review_id,
'review': review_data['review'],
'voted_up': review_data['voted_up'],
'playtime_hours': review_data['author']['playtime_forever'] / 60,
'posted_date': pd.to_datetime(review_data['timestamp_created'], unit='s').strftime('%Y-%m-%d %H:%M')
})
df = pd.DataFrame(reviews_list)
print(f"DataFrame 크기: {df.shape[0]}행 x {df.shape[1]}열")
print(df.head())
# 수집 데이터 간단 확인
print("총 리뷰 수:", len(df))
print("추천 비율:", df['voted_up'].mean() * 100)
print("평균 플레이 시간:", df['playtime_hours'].mean())
# CSV 저장
filename = f"Hades_reviews_{app_id}.csv"
df.to_csv(filename, index=False, encoding='utf-8-sig')
print(f"'{filename}' 저장 완료!")
# 수집 결과 요약
review_count = len(df)
recommended_ratio = df['voted_up'].mean() * 100
avg_playtime = df['playtime_hours'].mean()
print("[수집 결과 요약]")
print(f"- 게임: Hades (ID: {app_id})")
print("- 선정 이유: 로그라이크 액션 게임의 대표적인 성공 사례 분석")
print(f"- 수집 일자: {datetime.today().strftime('%Y-%m-%d')}")
print(f"- 수집 건수: {review_count:,}개")
print(f"- 추천 비율: {recommended_ratio:.1f}%")
print(f"- 평균 플레이 시간: {avg_playtime:.1f}시간")
print(f"- 파일명: {filename}")
# 파일 다운로드
files.download(filename)
[appID = 1145360] expected #reviews = 6760
수집된 리뷰 수: 6760
API 요청 횟수: 2
리뷰 데이터에 포함된 키(필드):
['recommendationid', 'author', 'language', 'review', 'timestamp_created', 'timestamp_updated', 'voted_up', 'votes_up', 'votes_funny', 'weighted_vote_score', 'comment_count', 'steam_purchase', 'received_for_free', 'refunded', 'written_during_early_access', 'primarily_steam_deck', 'app_release_date', 'reactions']
DataFrame 크기: 6760행 x 5열
review_id review voted_up \
0 223768674 입소문 워낙 많이 탄 작품이 2가 나왔대서 1은 해봐야지 싶어 시작해봤다.\n2는 ... True
1 223722293 할인도 하고 유명하길래 안 맞으면 반품하겠다는 생각으로 구매했습니다.\n게임 켰더니... True
2 223670802 ★★★☆ True
3 223619268 로그라이크 스타일의 게임은 저랑 안맞나봐요.\n세계관, 게임성, 디자인, 완성도 등... False
4 223589782 첨엔 지루하다 근데 시스템을 이해할 만큼 하기 시작하면 재밌다. 아이디어가 상당히 ... True
playtime_hours posted_date
0 9.733333 2026-04-21 12:03
1 8.916667 2026-04-20 18:30
2 8.233333 2026-04-20 00:45
3 0.983333 2026-04-19 12:32
4 10.550000 2026-04-19 03:47
총 리뷰 수: 6760
추천 비율: 96.90828402366863
평균 플레이 시간: 70.81484220907298
'Hades_reviews_1145360.csv' 저장 완료!
[수집 결과 요약]
- 게임: Hades (ID: 1145360)
- 선정 이유: 로그라이크 액션 게임의 대표적인 성공 사례 분석
- 수집 일자: 2026-04-22
- 수집 건수: 6,760개
- 추천 비율: 96.9%
- 평균 플레이 시간: 70.8시간
- 파일명: Hades_reviews_1145360.csv