think deeply
[크롤링] 내가 원하는 구글 플레이 스토어 앱리뷰 크롤링 본문
내가 관심있는 앱의 리뷰 데이터를 수집할 수 있는 크롤러입니다.
저는 지난 논문에 활용한 데이터도 이와 동일한 방법으로 크롤링했으며,
이번 개인 프로젝트를 위해 e-book과 관련된 어플들 몇 가지를 크롤링하기 위해 크롤링을 진행하였습니다.
셀레니움을 이용한 코드는 저희가 고려해야할 것들이 존재하나, 해당 크롤러는 빠른 속도와 간편한 크롤링이 가능합니다.
궁금한 앱의 웹 주소만 기입하면 크롤링 가능하도록 설명드리겠습니다.
1. 작업환경
저는 우선 Python 프로그래밍 언어에 사용되는 통합 개발 환경인 pycharm을 활용해 크롤링을 진행하였습니다.
pycharm은 아래 링크를 참고해 설치하면 됩니다.
https://blog.dalso.org/language/python/13524
2. 코드
1) 먼저, 앱 이름을 추출해야 사용할 수 있습니다.
from google_play_scraper import app
result = app(
'kr.co.millie.millieshelf',
lang='ko', # defaults to 'en'
country='kr' # defaults to 'us'
)
인자로 앱이름, 언어, 국가를 지정합니다.
우리가 바꾸어주어야할 부분은 ' kr.co.millie.millieshelf ' 부분입니다. 이는 앱을 지정하는 부분입니다.
해당 부분은 웹 주소에서 찾을 수 있습니다.
아래에서 예시를 보여드리겠습니다.
예시
- 웹에서 구글플레이스토어에 접속해 밀리의 서재를 검색하면 다음과 같은 화면이 뜬다. 이 화면에서 어플 UI를 클릭하 면 다음 페이지로 넘어간다.
- 해당 페이지에서 id 뒤에 오는 부분을 복사해 기입해주면 됩니다.
2) 이제 본격적으로 앱 리뷰 부분입니다.
from google_play_scraper import Sort, reviews_all
result = reviews_all(
'kr.co.millie.millieshelf',
sleep_milliseconds=10,
lang='ko', # defaults to 'en', 'ko'로 지정
country='kr', # defaults to 'us', 'kr'로 지정
sort=Sort.MOST_RELEVANT, # defaults to Sort.MOST_RELEVANT
filter_score_with=None # defaults to None(means all score)
)
print(result)
인자로는 앱 이름, 프로그램 실행 중지 시간, 언어, 국가, 정렬(관련성, 최신 등 가능), 별점 필터 등을 지정해주었습니다.
프로그램 실행 중지 시간은 대기시간과 비슷하다고 생각하면 됩니다. 여기서는 10밀리초만큼 프로그램 실행을 중지를 의미합니다. 디폴트값은 0입니다. 다량의 리뷰를 불러오기 위해 대량의 요청을 웹사이트에 보내다보면 많은 트래픽이 발생하기에 문제가 발생할 수 있다고 합니다.
여기까지 작성 후 코드를 실행하면 된다. 잘 긁혀온 것을 확인할 수 있을 것입니다. (코드창에 우클릭+run all)
저장은 해당 project가 담겨있는 곳에 됩니다.
(참고)
여기서부터는 참고사항입니다. 초기 세팅과정에서 고생하는 사람들을 위해 추가 작성합니다.
3. pycharm 초기 세팅
1. 파이참을 열고, 아래 코드들을 ctrl+c, v한다.
2. 다음은 File -> Settings -> 작업중인 project -> Python Interpreter 에 들어간다. 다음과 같은 화면이 뜬다. ' + ' 를 클릭해 들어간다.
3. 해당창에 google-play-scraper 검색하고 install해준다.
설치완료가 된다면 해당창을 닫고 작성해둔 코드를 실행하면 된다. (코드창에 우클릭+run all)
해당 코드는 깃헙 PlanB님의 글을 기반으로 작성되었습니다.
https://github.com/JoMingyu/google-play-scraper
에러뜨시면 되도록 도움드릴게요! 댓글남겨주세영
'rainbow > etc.' 카테고리의 다른 글
[Python] where()함수 - 조건에 맞는 값 위치 or 값 변경 (데이터프레임 특정 칼럼) (0) | 2023.02.20 |
---|---|
[python] 문자열 거꾸로 출력하는 방법 (feat. reverse, reversed) (0) | 2023.01.07 |
[will-tech] ChatGPT :: 세상에 아직 없으면 만들어줄게(feat. 사용법) (0) | 2022.12.29 |
[Mac] Mac 화면 분할 단축키 사용 방법 (0) | 2022.10.13 |
[EDA] 국내 E-Book 사용자 경험 분석(feat. 밀리의 서재, 리디북스, 윌라 오디오북) (0) | 2022.07.28 |