-
Web-Crawling (네이버 영화)Python 2020. 6. 5. 14:58
네이버 영화
%%html <!-- 에디터 폰트를 조정합니다. --> <style type='text/css'> .CodeMirror{ font-size: 14px; font-family: Bitstream Vera Sans Mono;} </style>
import requests from bs4 import BeautifulSoup import datetime
날짜 지정하는 함수
def get_date(day): now = datetime.datetime.now() #tomorrow = now + datetime.timedelta(days=1) #print(type(tomorrow)) #yesterday = now + datetime.timedelta(days=-1) # date object -> str ret_date = now + datetime.timedelta(days=day) return ret_date.strftime('%Y%m%d')
p_date = get_date(-10) p_date
'20200526'
함수 작업
-
sel에 조회순=cnt / 평점순(현재상형영화)=cur / 평점순(모든영화)=pnt
def get_naver_movie(sel='pnt', date=get_date(-1)): url = 'https://movie.naver.com/movie/sdb/rank/rmovie.nhn' params = {'sel':sel, 'date':date} # Get 요청 response = requests.get(url, params=params) status_code = response.status_code print(status_code) if status_code == 200: text = response.text soup = BeautifulSoup(text) #str -> BeautifulSoup 객체 변환 else: soup = 'Error' return soup
영화 전체 받기
soup = get_naver_movie() movie_table = soup.select_one('table.list_ranking') #movie_table movie_tr_all = movie_table.select('tr')
200
영화 한 편의 이름과 평점
movie_tr_one = movie_tr_all[2] movie_title = movie_tr_one.select_one('a[title]').text movie_point =movie_tr_one.select_one('td.point').text print(movie_title, movie_point)
그린 북 9.59
영화 전체의 이름과 평점
movie_title_point_list = [] for movie_tr_one in movie_tr_all: movie_title = movie_tr_one.select_one('a[title]') movie_point =movie_tr_one.select_one('td.point') # 존재 하는지 체크 if movie_title: title = movie_title.text else: continue if movie_point: point = movie_point.text else: continue movie_title_point_list.append((title, point))
movie_title_point_list
[('그린 북', '9.59'), ('가버나움', '9.59'), ('베일리 어게인', '9.53'), ('포드 V 페라리', '9.49'), ('원더', '9.49'), ('주전장', '9.49'), ('아일라', '9.49'), ('당갈', '9.47'), ('쇼생크 탈출', '9.44'), ('터미네이터 2:오리지널', '9.44'), ('보헤미안 랩소디', '9.42'), ('덕구', '9.42'), ('나 홀로 집에', '9.41'), ('월-E', '9.41'), ('살인의 추억', '9.40'), ('라이언 일병 구하기', '9.40'), ('인생은 아름다워', '9.40'), ('매트릭스', '9.40'), ('사운드 오브 뮤직', '9.40'), ('포레스트 검프', '9.40'), ('빽 투 더 퓨쳐', '9.40'), ('헬프', '9.40'), ('글래디에이터', '9.39'), ('위대한 쇼맨', '9.39'), ('클래식', '9.39'), ('센과 치히로의 행방불명', '9.39'), ('토이 스토리 3', '9.38'), ('타이타닉', '9.38'), ('알라딘', '9.38'), ('어벤져스: 엔드게임', '9.38'), ('안녕 베일리', '9.37'), ('레옹', '9.37'), ('죽은 시인의 사회', '9.37'), ('캐스트 어웨이', '9.37'), ('헌터 킬러', '9.37'), ('동주', '9.37'), ('반지의 제왕: 왕의 귀환', '9.37'), ('아이 캔 스피크', '9.37'), ('집으로...', '9.37'), ('굿 윌 헌팅', '9.36'), ('히든 피겨스', '9.36'), ('굿바이 마이 프랜드', '9.35'), ('여인의 향기', '9.35'), ('주토피아', '9.35'), ('서유기 2 - 선리기연', '9.35'), ('모노노케 히메', '9.35'), ('달링', '9.35'), ('클레멘타인', '9.35'), ('쉰들러 리스트', '9.35'), ('세 얼간이', '9.35')]
'Python' 카테고리의 다른 글
로그인하여 데이터 크롤링하기 (0) 2020.06.08 Web-Crawling (다음 뉴스) (0) 2020.06.08 Web-Crawling (네이버 북) (0) 2020.06.04 Web-Crawling (0) 2020.06.04 Jupyter Notebook (0) 2020.06.02 -