728x90
반응형

영화진흥위원회 오픈API 사용하는 방법은 해당 포스팅을 봐주시면 감사합니다.

영화진흥위원회 오픈API 사용하는 방법 + csv 추출 :: 러아니푸의 공부방 (tistory.com)

 

영화진흥위원회 오픈API 사용하는 방법 + csv 추출

1. 영화진흥위원회 사이트에 들어가서 회원가입을 한다. 영화진흥위원회: https://www.kobis.or.kr/kobisopenapi/homepg/main/main.do 2. 키 발급/관리로 들어가서 키를 발급받는다. 키 발급받기를 눌러줍니다...

fjdkslvn.tistory.com

 

 

from datetime import datetime, timedelta
import requests
import json
import pandas as pd

#날짜를 문자열로 변환하는 함수
def date_string(date):
    date_list = str(date).split()[0].split('-')
    date_str = date_list[0]+date_list[1]+date_list[2]
    return date_str

yourkey='당신의 영화진흥위원회 API키를 입력하세요' #((키 넣어주시면 됩니다!))

#원하는 날짜 +1 해주세요. 2018년 전체를 하고싶다면 (2019,1,1) ((날짜 수정해주시면 됩니다!))
date = datetime(2019,1,1)
date_str = date_string(date)
print(date_str)

# 2018년 1월1일까지만 할것이다 ((날짜 수정해주시면 됩니다!))
while date_str != '20180101':
    date = date - timedelta(days=1)
    date_str = date_string(date)
    print(date_str)

    url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key='+yourkey+'&targetDt='+date_str
    res = requests.get(url)
    text= res.text

    d = json.loads(text)

    movie_list = []

    x=d['boxOfficeResult']['showRange'] #박스오피스 일자 추출

    for b in d['boxOfficeResult']['dailyBoxOfficeList']:
        movie_list.append([x, b['movieNm'],b['movieCd'],b['audiCnt'],b['audiInten'],b['audiChange'],b['audiAcc']
                           ,b['openDt'],b['salesAmt'],b['salesShare'],b['salesInten'],b['salesChange'],b['salesAcc'],b['scrnCnt'],b['showCnt'],b['rank'],b['rankInten'],b['rankOldAndNew']])
    # rnum은 순번을 출력하는 것이기 때문에 안넣었습니다

    # 파일 이름 변경하는 곳 ((파일이름 수정해주시면 됩니다!))
    data = pd.DataFrame(movie_list)
    data.to_csv("2018_movie.csv", mode='a', encoding='utf-8', index=False)

csv 파일은 파이썬 파일이 저장된 위치에 저장됩니다.

 

주석에 설명을 달아놨습니다. yourkey에 영화진흥위원회에서 받은 API 키를 입력하고 시작날짜와 끝 날짜를 넣고 사용하시면 됩니다.

728x90
반응형
728x90
반응형

1. 영화진흥위원회 사이트에 들어가서 회원가입을 한다.

 

영화진흥위원회: https://www.kobis.or.kr/kobisopenapi/homepg/main/main.do

 

 

 

 

2. 키 발급/관리로 들어가서 키를 발급받는다.

키 발급받기를 눌러줍니다.

 

사용 목적과 관리명만 적으면 되는데, 사용 목적은 공부용 정도로 적어두셔도 괜찮고 관리명은 원하는대로 적어주시면 됩니다.

 

 

 

 

3. 키 발급/관리에서 발급키를 확인한다.

 

 

 

 

4. OPEN API에서 제공서비스를 누르고 원하는 정보의 페이지로 이동한다.

* 일별 박스오피스로 실습을 해보겠습니다.

 

 

5. 아래로 내려서 응답 예시를 확인하고 예시를 긁어서 웹사이트에서 열어본다.

JSON 응답 예시를 활용하겠습니다.

잘 보시면 두번째 줄에 key와 targetDt가 있는 모습을 볼 수 있습니다.

 

key와 targetDt는 요청 인터페이스에서 확인할 수 있습니다. 원하는대로 사용하시면 됩니다.

ex) 영화를 5개만 띄우고 싶다면 &itemPerPage=5을 추가합니다.

 

 

*20210510일자 일별 박스오피스 and 5개만 출력하도록 지정한 것

http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20210510&itemPerPage=5

 

 

-결과 모습-

 

 

6. 파이썬으로 크롤링한다.

 

import requests
import json

url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=f5eef3421c602c6cb7ea224104795888&targetDt=20210511'
res = requests.get(url)
text= res.text

d = json.loads(text)
print(d)

혹시 requests, json 모듈이 설치되어있지 않다면 이 글을 확인하시기 바랍니다.

https://fjdkslvn.tistory.com/28

 

 

 

웹페이지에서 봤던 결과를 파이썬으로 확인할 수 있습니다.

 

boxOfficeResult 안에 dailyBoxOfficeList가 있는것을 확인할 수 있고, 각각의 dailyBoxOfficeList들이 영화 한편씩을 의미하는 것을 볼 수 있습니다.

 

 

7. 이것을 활용하여 원하는 정보만 csv 형식으로 뽑아낸다.

 

응답 구조에 있는 변수들을 잘 활용하여 코드를 작성하면 됩니다.

 

 

import requests
import json
import pandas as pd

url = 'http://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=6e927f984e0745787469e2452351991a&targetDt=20210511'
res = requests.get(url)
text= res.text

d = json.loads(text)

movie_list = []

for b in d['boxOfficeResult']['dailyBoxOfficeList']:
    movie_list.append([b['rank'],b['movieNm'],b['audiCnt']])


data = pd.DataFrame(movie_list)
data.to_csv("movie_list.txt", mode='w', encoding='utf-8', index=False)

boxOfficeResult 안에 dailyBoxOfficeList의 영화 정보에서 원하는 값을 뽑아서 movie_list 배열에 append로 추가하는 것 입니다.

 

현재 입력값은 rank(영화 등수), movieNm(영화이름 국문), audiCnt(관객 수) 입니다.

 

**Python 복수변수 입력시 x.append([a,b,c]) 형태로 작성해야함**

 

 

- csv 도출 결과 -

728x90
반응형

+ Recent posts