# tibble 패키지를 불러온다library(tidyverse)# 데이터프레임을 생성한다top_movie_raw<-tribble(~순위, ~영화명, ~개봉년도, ~순제작비, ~총제작비, ~배급사,"1위", "설국열차", 2013, "437억원", "530억원(해외 포함)", "CJ 엔터테인먼트","2위", "외계+인 1부", 2022, "330억원", NA, "CJ 엔터테인먼트","3위", "디 워", 2007, "315억원", "700억원(해외 포함)", "쇼박스","4위", "더 문", 2023, "286억원", NA, "CJ 엔터테인먼트","5위", "마이웨이", 2011, "280억원", "350억원", "CJ 엔터테인먼트","6위", "한산: 용의 출현", 2022, "272억원", "312억원", "롯데 엔터테인먼트","7위", "백두산", 2019, "260억원", "300억원", "CJ 엔터테인먼트","8위", "비상선언", 2022, "260억원", "300억원", "쇼박스","9위", "미스터 고", 2013, "225억원", "300억원", "쇼박스","10위", "군함도", 2017, "225억원", "267억원", "CJ 엔터테인먼트")top_movie_raw#> # A tibble: 10 × 6#> 순위 영화명 개봉년도 순제작비 총제작비 배급사 #> <chr> <chr> <dbl> <chr> <chr> <chr> #> 1 1위 설국열차 2013 437억원 530억원(해외 포함) CJ 엔터테인먼트 #> 2 2위 외계+인 1부 2022 330억원 <NA> CJ 엔터테인먼트 #> 3 3위 디 워 2007 315억원 700억원(해외 포함) 쇼박스 #> 4 4위 더 문 2023 286억원 <NA> CJ 엔터테인먼트 #> 5 5위 마이웨이 2011 280억원 350억원 CJ 엔터테인먼트 #> 6 6위 한산: 용의 출현 2022 272억원 312억원 롯데 엔터테인먼트#> 7 7위 백두산 2019 260억원 300억원 CJ 엔터테인먼트 #> 8 8위 비상선언 2022 260억원 300억원 쇼박스 #> 9 9위 미스터 고 2013 225억원 300억원 쇼박스 #> 10 10위 군함도 2017 225억원 267억원 CJ 엔터테인먼트
1.2 영화정보
1.2.1 스크립트
코드
library(tidyverse)library(rvest)library(httr)kofic_req<-glue::glue("http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json","?key={Sys.getenv('KOFIC_API_KEY')}","&movieNm={URLencode('군함도')}")movie_resp<-httr::GET(kofic_req)# convert list to dataframemovie_json<-content(movie_resp, "text", encoding ="UTF-8")movie_raw<-jsonlite::fromJSON(movie_json)|>as.data.frame()movie_columns<-str_extract(names(movie_raw), "[^.]*$")movie_tbl<-movie_raw|>set_names(movie_columns)movie_tbl#> totCnt source movieCd movieNm#> 1 2 영화진흥위원회 20177063 군함도 감독판#> 2 2 영화진흥위원회 20161481 군함도#> movieNmEn prdtYear openDt typeNm prdtStatNm#> 1 The Battleship Island: Director's Cut 2017 장편 기타#> 2 The Battleship Island 2017 20170726 장편 개봉#> nationAlt genreAlt repNationNm repGenreNm directors#> 1 한국 액션,드라마 한국 액션 류승완#> 2 한국 액션,드라마 한국 액션 류승완#> companys#> 1 20100374, (주)외유내강#> 2 20100374, 20186561, (주)외유내강, (주)필름케이
1.2.2 함수
코드
get_movie_info<-function(movie_name="군함도"){cat("영화정보를 가져옵니다.", movie_name, "\n")kofic_req<-glue::glue("http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json","?key={Sys.getenv('KOFIC_API_KEY')}","&movieNm={URLencode(movie_name)}")movie_resp<-httr::GET(kofic_req)# convert list to dataframemovie_json<-content(movie_resp, "text", encoding ="UTF-8")movie_raw<-jsonlite::fromJSON(movie_json)|>as.data.frame()movie_columns<-str_extract(names(movie_raw), "[^.]*$")movie_tbl<-movie_raw|>set_names(movie_columns)return(movie_tbl)}get_movie_info("디 워")#> 영화정보를 가져옵니다. 디 워#> totCnt source movieCd#> 1 13 영화진흥위원회 20227226#> 2 13 영화진흥위원회 20227292#> 3 13 영화진흥위원회 20224237#> 4 13 영화진흥위원회 20070316#> 5 13 영화진흥위원회 19998877#> 6 13 영화진흥위원회 20080782#> 7 13 영화진흥위원회 20136396#> 8 13 영화진흥위원회 20136395#> 9 13 영화진흥위원회 19968423#> 10 13 영화진흥위원회 20070403#> movieNm#> 1 9월 프레임 워크: 마리 멘켄 단편선#> 2 앤디 워홀#> 3 부카니마: 앤디 워홀#> 4 디워#> 5 도망자: 바디워크#> 6 앤디 워홀#> 7 디워-드래곤#> 8 디워 : 익룡의 공습#> 9 나는 앤디워홀을 쏘았다#> 10 시네마정동-판타스틱4:실버서퍼의 위협,라따뚜이, 디워 #> movieNmEn prdtYear openDt typeNm prdtStatNm#> 1 2022 옴니버스 기타#> 2 Andy Warhol 1965 단편 기타#> 3 Bookanima: Andy Warhol 2020 단편 기타#> 4 D-War 2007 20070801 장편 개봉#> 5 Bodywork 1999 장편 기타#> 6 Andy Warhol: A Documentary Film 2006 장편 기타#> 7 Dragon Dynasty 2006 장편 기타#> 8 Warbirds 2008 장편 기타#> 9 I Shot Andy Warhol 1996 기타#> 10 Package Screening 20070808 장편 #> nationAlt genreAlt repNationNm repGenreNm directors#> 1 미국 기타 미국 기타 NULL#> 2 미국 기타 미국 기타 NULL#> 3 한국,미국 애니메이션 한국 애니메이션 NULL#> 4 한국 액션,판타지 한국 액션 심형래#> 5 영국 범죄 영국 범죄 가레스 라이스 존스#> 6 미국 다큐멘터리 미국 다큐멘터리 릭 번스#> 7 미국 어드벤처,판타지 미국 어드벤처 매트 코드#> 8 미국 SF,스릴러,전쟁 미국 SF 케빈 겐드류#> 9 NULL#> 10 기타 기타 기타 기타 NULL#> companys#> 1 NULL#> 2 NULL#> 3 NULL#> 4 20100170, ㈜영구아트#> 5 NULL#> 6 NULL#> 7 NULL#> 8 NULL#> 9 NULL#> 10 NULL
1.2.3 전체 영화정보
코드
top_movie_raw<-top_movie_raw|>mutate(data =map(영화명, get_movie_info))#> 영화정보를 가져옵니다. 설국열차 #> 영화정보를 가져옵니다. 외계+인 1부 #> 영화정보를 가져옵니다. 디 워 #> 영화정보를 가져옵니다. 더 문 #> 영화정보를 가져옵니다. 마이웨이 #> 영화정보를 가져옵니다. 한산: 용의 출현 #> 영화정보를 가져옵니다. 백두산 #> 영화정보를 가져옵니다. 비상선언 #> 영화정보를 가져옵니다. 미스터 고 #> 영화정보를 가져옵니다. 군함도top_movie_tbl<-top_movie_raw|>unnest(data)|>mutate(movieNm =if_else(movieNm=="디워", "디 워", movieNm))|>filter(영화명==movieNm)top_movie_tbl|>select(movieCd, 순위, 영화명, 개봉년도, 순제작비, 배급사, prdtYear, openDt)#> # A tibble: 11 × 8#> movieCd 순위 영화명 개봉년도 순제작비 배급사 prdtYear openDt#> <chr> <chr> <chr> <dbl> <chr> <chr> <chr> <chr> #> 1 20126674 1위 설국열차 2013 437억원 CJ 엔터테인… 2013 20130…#> 2 20208446 2위 외계+인 1부 2022 330억원 CJ 엔터테인… 2022 20220…#> 3 20070316 3위 디 워 2007 315억원 쇼박스 2007 20070…#> 4 20218935 4위 더 문 2023 286억원 CJ 엔터테인… 2023 20230…#> 5 20090810 4위 더 문 2023 286억원 CJ 엔터테인… 2009 20091…#> 6 19790083 5위 마이웨이 2011 280억원 CJ 엔터테인… 1975 19750…#> 7 20209343 6위 한산: 용의 출현 2022 272억원 롯데 엔터테… 2021 20220…#> 8 20192206 7위 백두산 2019 260억원 CJ 엔터테인… 2019 20191…#> 9 20196410 8위 비상선언 2022 260억원 쇼박스 2022 20220…#> 10 20124082 9위 미스터 고 2013 225억원 쇼박스 2013 20130…#> 11 20161481 10위 군함도 2017 225억원 CJ 엔터테인… 2017 20170…