반응형
1. 알고리즘 특강
1) 자료구조
(1) 해시 테이블.
- Key와 Value로 이루어진 “사전형“ 자료형.
- Hash Table은 Python 에서 Dictionary 형으로 구현.
(2) 트리
- 머신러닝 혹은 분석방법론에서 의사결정나무(Tree) 개념이 등장.
(3) 그래프
- 데이터베이스에서의 다이어그램 같다.
2. 팀 프로젝트
1) 주제
(1) 한국 모바일 OTT 콘텐츠 장르 및 이용자 특성을 통한 마케팅 전략 선정.
- 키즈 콘텐츠 특화.
- EDA를 통해 특화할 요소를 찾아볼 것.
(2) 넷플릭스 사용자 로그 분석을 통한 서비스 개선 방향 제시.
- EDA를 통해 특화할 요소를 찾아볼 것.
2) 개인 크롤링 코드
사용한 사이트가 최신 정보로 로딩 후에
페이로드를 받아서 검색해주는 방식이여서
크롤링이 잘 되지 않았다.
튜터님께서 주신 피드백대로
다른 사이트를 이용해서 크롤링해봐야겠다.
https://playit.tistory.com/2다른 사람들이 안 쓰는 데에는 다 이유가 있는 법이야.코드는 남기겠지만 이 사이트는 버리겠다.
혹시나 뭐가 문제인지 아시는 분은 훈수 부탁드립니다ㅠ
import requests import datetime as dt import re import numpy as np import pandas as pd import time total_platform = [] total_rank = [] total_name = [] total_weeks_in_top_10 = [] total_start_date = [] total_end_date = [] end = dt.date(2021,7,4) add = dt.timedelta(days=7) reduce = dt.timedelta(days=6) while end < dt.date.today(): url = f'https://www.netflix.com/tudum/top10/south-korea/tv?week={end}' time.sleep(3) response = requests.get(url) text = response.content.decode("utf-8") top_ten = re.findall(r'<tr data-id="[0-9]+">(.+?)</tr>', text, re.DOTALL) for content in top_ten: rank = re.findall(r'rank [pt\-2]*">(.+?)</td>', content, re.DOTALL) name = re.findall(r'name [pt\-2]*">(.+?)</td>', content, re.DOTALL) weeks_in_top_10 = re.findall(r'<span class="wk-number">(.+?)</span>', content, re.DOTALL) for i in range(len(rank)): total_platform.append('tv') total_rank.append(rank[i]) total_name.append(name[i]) total_weeks_in_top_10.append(weeks_in_top_10[i]) total_start_date.append(str(end-reduce)) total_end_date.append(str(end)) end += add end = dt.date(2021,7,4) while end < dt.date.today(): url = f'https://www.netflix.com/tudum/top10/south-korea?week={end}' time.sleep(3) response = requests.get(url) text = response.content.decode("utf-8") top_ten = re.findall(r'<tr data-id="[0-9]+">(.+?)</tr>', text, re.DOTALL) for content in top_ten: rank = re.findall(r'rank [pt\-2]*">(.+?)</td>', content, re.DOTALL) name = re.findall(r'name [pt\-2]*">(.+?)</td>', content, re.DOTALL) weeks_in_top_10 = re.findall(r'<span class="wk-number">(.+?)</span>', content, re.DOTALL) for i in range(len(rank)): total_platform.append('film') total_rank.append(rank[i]) total_name.append(name[i]) total_weeks_in_top_10.append(weeks_in_top_10[i]) total_start_date.append(str(end-reduce)) total_end_date.append(str(end)) end += add total_platform_v = np.array(total_platform).reshape(-1, 1) total_rank_v = np.array(total_rank).reshape(-1, 1) total_name_v = np.array(total_name).reshape(-1, 1) total_weeks_in_top_10_v = np.array(total_weeks_in_top_10).reshape(-1, 1) total_start_date_v = np.array(total_start_date).reshape(-1, 1) total_end_date_v = np.array(total_end_date).reshape(-1, 1) df = pd.DataFrame(index=range(len(total_platform_v))) df['platform'] = total_platform_v df['rank'] = total_rank_v df['name'] = total_name_v df['weeks_in_top_10'] = total_weeks_in_top_10_v df['start_date'] = total_start_date_v df['end_date'] = total_end_date_v df.to_csv('result.csv')
반응형
'TIL' 카테고리의 다른 글
내배캠 TIL 17일차 (1) | 2024.01.11 |
---|---|
내배캠 TIL 16일차 (1) | 2024.01.10 |
내배캠 TIL 14일차 (0) | 2024.01.08 |
내배캠 TIL 13일차 (0) | 2024.01.05 |
내배캠 TIL 12일차 (2) | 2024.01.04 |