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