ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.