구글 플레이 스토어의 앱 사용자 리뷰를 크롤링하여 데이터를 수집하고자 하는 분들이 많습니다.
이번 글에서는 크몽 앱의 최신 사용자 리뷰 데이터를 크롤링하는 간단한 방법을 설명드리겠습니다.
1. 파이썬 크롤링 라이브러리 설치
'google-play-scraper' 라이브러리는
파이썬에서 구글 플레이 스토어의 앱 리뷰 데이터를 손쉽게 수집할 수 있도록 도와줍니다.
설치 방법은 다음과 같습니다.
!pip install google-play-scraper
https://pypi.org/project/google-play-scraper/
google-play-scraper
Google-Play-Scraper provides APIs to easily crawl the Google Play Store for Python without any external dependencies!
pypi.org
에서 더 자세한 내용을 확인하실 수 있습니다.
2. google-play-scraper 라이브러리 사용법
다음 코드로 크몽 앱의 최신 사용자 리뷰 데이터를 간편히 수집할 수 있습니다.
from google_play_scraper import Sort, reviews_all
import pandas as pd
result = reviews_all(
'com.kmong.kmong',
sleep_milliseconds=1, # 요청 간의 대기 시간 (필요시 조정 가능) defaults to 0
lang='ko', # 리뷰 언어 설정 defaults to 'en'
country='kr', # 국가 설정 defaults to 'us'
sort=Sort.NEWEST, # 최신순으로 정렬 defaults to Sort.MOST_RELEVANT
filter_score_with=None # 모든 리뷰 점수를 수집
#None 대신 1,2,3,4,5 해당 점수만 가져기기 defaults to None
)
reviews_df = pd.DataFrame(result)
reviews_df.to_excel('크몽_리뷰데이터_최신순.xlsx', index=False)
코드 실행 시 최신순으로 리뷰 전체가 엑셀 파일로 저장됩니다.
다른 구글 앱리뷰 수집하고 싶다면,
원하는 앱에서 id를 찾아 사용하면 됩니다.
3. 크롤링 결과 확인하기
사용자 id, 리뷰, 별점, 날짜, 리뷰에 대한 답글을 남겼다면 답글까지 가져와 줍니다.
3. 크롤링 결과 확인하기
유의할 점
리뷰 개수를 제한하여 가져오려면, reviews 를 사용하면 됩니다.
sleep_milliseconds 값을 너무 낮게 설정하면 과도한 요청으로 인해
일시적으로 IP 차단 등의 문제가 발생할 수 있으므로, 적절한 대기 시간을 설정하는 것이 좋습니다.
-라고는 하는데 sleep_milliseconds을 0으로 해도 리뷰 만개까지는 가져오는 걸 확인했습니다. 그 이상은 모릅니다.
실제 크몽의 리뷰 수를 보면, 1.35만개라고 표기 되어있습니다.
그런데, reviews_all 로 가져오면 약 3500개의 리뷰를 가져오게 됩니다.
다른 6.43만개의 리뷰에서는 약12000개의 리뷰를 가져오는 것을 확인했습니다.
이거에 대한 문제로는
Google Play 스토어에 표시된 전체 리뷰 수(예: 1.35만개)는 사용자에게 보여지는 "표면상의" 숫자이고,
실제로 프로그램적으로 접근 가능한 리뷰의 수는 Google의 비공개 API와 그에 따른 제한 때문에 다를 수 있습니다.
예를 들어, google_play_scraper 라이브러리가 내부적으로 사용하는 엔드포인트는 한 번에 일정 범위의 리뷰만 반환하도록 설계되어 있으며, 최신 리뷰나 우선순위가 높은 리뷰 위주로 제공될 수 있습니다. 이로 인해 실제 전체 리뷰 수와는 차이가 발생할 수 있습니다. 또한, Google Play는 오래된 리뷰나 특정 조건에 해당하는 리뷰는 API 호출 시 반환하지 않을 수도 있습니다.
즉, 코드나 라이브러리 자체의 문제가 아니라, Google Play 스토어가 제공하는 데이터의 한계와 해당 엔드포인트의 제한 때문에 11,490개의 리뷰까지만 가져오는 결과가 나오는 것으로 볼 수 있습니다.
라고 합니다.