지난 포스팅에는 호텔 리뷰 분석 process 2번을 진행했었다.
[Data Analysis/개인 프로젝트] - [호텔 리뷰 분석 - 웹 스크래핑] 3. Process(2)
이번 포스팅에선 마지막 process를 진행하려 한다.
Process 3.
수집한 리뷰 고유 번호를 이용해서 목표 데이터 수집
- 리뷰의 (고유번호 / 작성자 id / 제목 / 게시 날짜 / 내용)
- (가격 / 장소 / 객실 / 청결도 / 서비스 / 침대 퀄리티 / 종합) 평점
- 숙박 날짜
- 여행 유형
위의 정보들 중 리뷰 고유번호는 이미 구했고, 나머지 정보은 리뷰 상세 페이지에서 확인할 수 있다.
여러개의 리뷰 페이지를 들어가보면 알겠지만, 역시나 패턴이 보인다.
그것은 바로, url에서 리뷰 번호만 달라진다는 것.
이를 이용하기 위해 해당 url을 변수에 담아둔다. 굳이 함수를 작성할 필요는 없을 것 같다.
이제 상세 페이지에 접근한 후 정보를 추출해보자.
필요한 정보들은 아래와 같이 접근하면 추출해낼 수 있다.
웹 사이트의 html 문서를 열어서 확인하거나 불러온 html 문서를 보면 확인할 수 있다.
리뷰 상세데이터 ⇒ 요소 “div”, 클래스 선택자 “featured-review-container”
0. 리뷰 고유번호
1. 리뷰 작성자 id ⇒ 요소 “div”, 클래스 선택자 “info_text”
2. 리뷰 제목 ⇒ 요소 “h1”, 아이디 선택자 “HEADING”
3. 종합 평점 ⇒ 요소 “span”, 클래스 선택자 “ui_bubble_rating”
4. 리뷰 게시 날짜 ⇒ 요소 “span”, 클래스 선택자 “ratingDate”
5. 리뷰 내용 ⇒ 요소 “span”, 클래스 선택자 “fullText”
6. 숙박 날짜 ⇒ 요소 “div”, 클래스 선택자 “prw_rup prw_reviews_stay_date_hsx”
7. 여행 유형 ⇒ 요소 “div”, 클래스 선택자 “recommend-titleInline”
상세 평점 ⇒ 요소 “li”, 클래스 선택자 “recommend-answer”⇒ 요소 “div”, 클래스 선택자 “ui_bubble_rating”
8. 가격 평점
9. 장소 평점
10. 침대의 퀄리티 평점
11. 객실 평점
12. 청결도 평점
13. 서비스 평점
우선 리뷰 상세 데이터부터.
조금 더 수정이 필요해 보인다.
리뷰 점수는 어떻게 해야 할까??
사이트를 직접 확인해보면 알겠지만, bubble_50에서 50이 평점을 나타내는 점수다. 5당 별점 반 개, 50이면 별점 5점.
평점(review_score)에 class가 2개 있는 것이 보인다. ui_bubble_rating과 bubble_50.
다른 리뷰들도 마찬가지일 것이다.
즉 이 클래스들 중 두번째 클래스에서 숫자만 추출하면 되는 것.
아래와 같은 함수를 작성하자. 평점에서 숫자만 추출하는 함수다.
리뷰 평점 외에 상세 평점을 가져올 때도 사용할 수 있을 것이다.
상세 평점도 구해보자.
이제 추출해낼 건 다 했다.
정리해서 데이터프레임 형태로 만들면 분석에 용이할 것이다.
'Data Analysis > 개인 프로젝트' 카테고리의 다른 글
[호텔 리뷰 분석 - 웹 스크래핑] 3. Process(2) (0) | 2024.03.21 |
---|---|
[호텔 리뷰 분석 - 웹 스크래핑] 2. Process(1) (0) | 2024.03.21 |
[호텔 리뷰 분석 - 웹 스크래핑] 1. 어떤 데이터를 어떻게 가져올 것인가? (0) | 2024.03.21 |
[개인 데이터 분석 프로젝트] (0) | 2024.02.11 |