Python Crolling (1)

김용환·2023년 11월 12일
0

Python

목록 보기
2/3
post-custom-banner

프로젝트로 인해 크롤링을 할 기회가 생겼는데 간단히 실습해보려 한다.
우린 어플 리뷰를 크롤링하기로 했는데, 난 앱스토어 리뷰가 가능한지 알아보았다.

찾아본 결과, app-store-scraper를 앱스토어 리뷰 크롤링이 가능했다.

PyPI 공식문서
https://pypi.org/project/app-store-scraper/

전체 코드

pip install app_store_scraper 

import pandas as pd
import numpy as np
import json

from app_store_scraper import AppStore
# 원하는 앱의 정보 입력
baemin = AppStore(country='kr', app_name='Baedal Minjok', app_id = '378084485')

# review 100개를 가져와줘
baemin.review(how_many = 100)

# 현재 딕셔너리 형태의 리뷰 데이터(JSON)
baemin.reviews

# 리뷰들을 DataFrame화 시키기
baemindf = pd.DataFrame(np.array(baemin.reviews),columns=['review'])
baemindf2 = baemindf.join(pd.DataFrame(baemindf.pop('review').tolist()))
baemindf2.head()

결과

또한 app_id를 확인하는 방법은 Apple 앱 스토어 사이트에서 어플을 검색한 후 상단 URL에서 확인 가능하다

과정 요약

  1. pip install app_store_scraper app_store_scraper 패키지 설치
  2. app_id 입력 및 가져올 리뷰 개수 정한 후 긁어오기
  3. 변수에 JSON 형태로 저장됨
  4. JSON >> DataFrame >> CSV 파일로 변환 후 프로젝트 진행

Issue

baemin.review(how_many = 10000)

무작정 10000으로 진행하면,

Something went wrong: HTTPSConnectionPool(host='amp-api.apps.apple.com', ... ResponseError('too many 429 error responses')):

amp-api.apps.apple.com 호스트에 대한 HTTPS 연결 풀에서 문제가 발생한다
이로 인해 429 에러 응답이 너무 많이 발생하면서,
일정 시간 동안 너무 많은 요청을 보내 서버가 처리할 수 없는 상태임을 나타내는 이슈가 있었다

post-custom-banner

0개의 댓글