Python
Web-Crawling (네이버 영화)
긔
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')]