반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 베이지안
- 텍스트분석
- 파이썬
- Crawling
- 코딩테스트
- 빅데이터
- selenium
- 크롤링
- DATA
- 데이터분석
- bayesian
- GNN
- 알고리즘
- 리눅스
- 불확실성
- VAE
- AI
- PYTHON
- 백준
- dropout
- pandas
- uncertainty
- Graph
- pytorch
- YarinGal
- 강화학습
- R
- 우분투
- 논문리뷰
- 텍스트마이닝
Archives
- Today
- Total
끄적거림
[API] 영화진흥위원회 제공 박스오피스 API 사용 본문
728x90
반응형
1. 계정 생성
위의 주소에 들어가서 영화진흥위원회 페이지에서 회원가입을 먼저 진행해야한다.
2. 이후 상단의 "키 발급/관리" 탭을 클릭하여 키를 발급받는다.
3. Coding
from urllib.request import urlopen
from urllib.parse import urlencode, unquote, quote_plus
import urllib
import requests
from pandas.io.json import json_normalize
import json
import pandas as pd
# Area Data(Meta Data)
# 01. URL parsing
url_for_areaCode = 'http://www.kobis.or.kr/kobisopenapi/webservice/rest/code/searchCodeList.json'
params_for_areaCode = '?' + urlencode({
quote_plus("key"): "~~~~~", # 발급키
quote_plus("comCode"): "0105000000" # 조회하고자하는 상위 코드
})
req_for_areaCode = urllib.request.Request(url_for_areaCode + unquote(params_for_areaCode))
# 02. get Data
for_areaCode = urlopen(req_for_areaCode).read() # get bytes data
# 03. Convert Readable Data
data_for_areaCode = json.loads(for_areaCode)
area_code = pd.DataFrame(data_for_areaCode['codes'])
# 지역코드 : area code
# fullCd korNm engNm
# 0 0105001 서울시
# 1 0105002 경기도
# 2 0105003 강원도
# 3 0105004 충청북도
# 4 0105005 충청남도
# 5 0105006 경상북도
# 6 0105007 경상남도
# 7 0105008 전라북도
# 8 0105009 전라남도
# 9 0105010 제주도
# 10 0105011 부산시
# 11 0105012 대구시
# 12 0105013 대전시
# 13 0105014 울산시
# 14 0105015 인천시
# 15 0105016 광주시
# 16 0105017 세종시
# Movie Data
url = 'http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json'
# loop per area
res = pd.DataFrame()
for i, areaCode in enumerate(area_code['fullCd']):
for yn in ['Y', 'N']:
for kf in ['K', 'F']:
# 01. URL parsing
params = '?' + urlencode({
quote_plus("key"): "~~~~", # 발급키
quote_plus("targetDt"): "20200224", # 원하는 일자
quote_plus("itemPerPage"): "20", # 결과 row 수 // 최대 10개
quote_plus("multiMovieYn"): str(yn), # Y(다양성 영화), N(상업영화)
quote_plus("repNationCd"): str(kf), # K(한국 영화), F(외국 영화)
quote_plus("wideAreaCd"): str(areaCode) # 지역코드
})
req = urllib.request.Request(url + unquote(params))
# 02. get Data
response_body = urlopen(req).read() # get bytes data
# 03. Convert Readable Data
data = json.loads(response_body)
data_df = pd.DataFrame(data['boxOfficeResult']['dailyBoxOfficeList'])
data_df['multiMovieYn'] = yn
data_df['repNationCd'] = kf
data_df['fullCD'] = areaCode
data_df['korNm'] = area_code['korNm'][i]
# 04. merge data per area
res = res.append(data_df)
print("complete multiMovieYn : ", yn, "\t repNationCd : ", kf, "\t wideAreaCd : ", areaCode)
pd.DataFrame(res).to_csv('C:/Users/DAL/Desktop/KW/movie.csv')
728x90
반응형
'Python' 카테고리의 다른 글
[API]네이버데이터랩 api로 데이터 가져오기2 in Python (0) | 2020.03.02 |
---|---|
[API]기상청 api로 데이터 가져오기 2 in Python(feat. 동네예보 - 초단기실황) (1) | 2020.02.29 |
[Tips] 컴프리헨션(Comprehension), 이터레이터(Iterator), 제너레이터(Generator) (0) | 2020.02.21 |
[Tips] byte, str 타입 오류(feat. TypeError: write() argument must be str, not bytes) (0) | 2020.02.21 |
[API]네이버데이터랩 api로 데이터 가져오기 in Python (0) | 2020.02.19 |
Comments