728x90
웹 크롤링으로 iOS 앱스토어 리뷰를 뽑아 엑셀에 자동 저장하여 편하게 리뷰 항목들을 볼 수 있는 코드입니다.
앱스토어 리뷰는 1~10페이지까지 리뷰 목록을 xml 형식으로 볼수 있습니다.
https://itunes.apple.com/kr/rss/customerreviews/page=1/id=742186886/sortby=mostrecent/xml
뽑으려고 하는 앱 id는 앱스토어 URL에서 검색 후 확인할 수 있습니다.
xml URL을 호출하여 find_all()로 뽑으려고 하는 데이터의 태그 데이터를 모두 추출합니다.
for k in range(1, 11): #page 1~10까지 크롤링
url = 'https://itunes.apple.com/kr/rss/customerreviews/page=' + str(k) + '/id=742186886/sortby=mostrecent/xml'
response = requests.get(url)
Soup = BeautifulSoup(response.content, 'xml') #해당 URL을 호출하여 parser
contents = Soup.find_all('content') #리뷰 내용
titles = Soup.find_all('title') #제목
ratings = Soup.find_all('im:rating') #평점
updates = Soup.find_all('updated') #작성 시간
태그 데이터를 살펴보면 원하지 않는 데이터들이 있는데 해당 데이터들을 제외하기 위해 for 문을 사용해 데이터를 추출하고 하나의 리스트로 합칩니다.
#각각 개수가 다르기 때문에 개수 통일을 위해 각 리스트에 데이터 추가
j = 0
for i in contents:
if j % 2 == 0:
content_li.append(i.text)
j = j + 1
j = 0
for i in titles:
if j != 0:
title_li.append(i.text)
j = j + 1
j = 0
for i in updates:
if j != 0:
update_li.append(i.text)
j = j + 1
for i in range(len(ratings)): #정제된 데이터 하나의 리스트로 합치기
sum_li.append([update_li[i], ratings[i].text + '점', title_li[i], content_li[i]])
전체 코드입니다. 해당 코드 실행시 약 500개의 리뷰들을 excel로 자동 저장하여 확인할 수 있습니다.
from bs4 import BeautifulSoup
import requests
from openpyxl import Workbook
sum_li = []
for k in range(1, 11): #page 1~10까지 크롤링
url = 'https://itunes.apple.com/kr/rss/customerreviews/page=' + str(k) + '/id=742186886/sortby=mostrecent/xml'
response = requests.get(url)
Soup = BeautifulSoup(response.content, 'xml') #해당 URL을 호출하여 parser
contents = Soup.find_all('content') #리뷰 내용
titles = Soup.find_all('title') #제목
ratings = Soup.find_all('im:rating') #평점
updates = Soup.find_all('updated') #작성 시간
content_li = []
title_li = []
update_li = []
#각각 개수가 다르기 때문에 개수 통일을 위해 각 리스트에 데이터 추가
j = 0
for i in contents:
if j % 2 == 0:
content_li.append(i.text)
j = j + 1
j = 0
for i in titles:
if j != 0:
title_li.append(i.text)
j = j + 1
j = 0
for i in updates:
if j != 0:
update_li.append(i.text)
j = j + 1
for i in range(len(ratings)): #정제된 데이터 하나의 리스트로 합치기
sum_li.append([update_li[i], ratings[i].text + '점', title_li[i], content_li[i]])
wb = Workbook()
ws = wb.active
ws.title = 'review'
ws.append(['날짜', '평점', '제목', '리뷰 내용'])
for data in sum_li:
ws.append(data)
wb.save('/Users/user/Desktop/appstore.xlsx')
print('END')
728x90
'자동화 > Selenium' 카테고리의 다른 글
핫딜게시판 목록 리스트 자동화하여 추출 (0) | 2022.11.08 |
---|---|
과거 1달 국내주식 시가총액 순위 자동화로 추출하기 (0) | 2022.11.06 |
웹 크롤링으로 플레이스토어 리뷰 Excel에 저장하기 (With Python) (1) | 2022.10.30 |
버거킹 설문조사 Selenium으로 자동화하기 (0) | 2022.10.27 |
Selenium Chromedriver 파일 설치 없이 사용하기 (0) | 2022.10.24 |