Skip to content

Releases

0.7/peopleInfo

Choose a tag to compare

@j25ng j25ng released this 18 Aug 06:23

v0.7 영화진흥위원회 영화인 상세정보 API 조회 및 데이터 수집

save data

$ cd data
$ tree
.
└── people
    ├── peopleInfo
    │   ├── peopleInfo_1.json
    │   ├── peopleInfo_2.json
    │   ├── peopleInfo_3.json
    │   ├── peopleInfo_4.json
    │   └── peopleInfo_5.json
    └── peopleList.json

2 directories, 6 files

0.6/peopleList

Choose a tag to compare

@j25ng j25ng released this 18 Aug 02:58

v0.6 영화진흥위원회 영화인목록 API 조회 및 데이터 수집

save data

$ cd data
$ tree
.
└── people
    └── peopleList.json

1 directory, 1 file

issue

데이터 용량 문제로 에러 발생 & 과도한 데이터 수집 예상 소요 시간

-> 나눠서 수집하는 방식으로 해결은 가능하나, 시간상 문제로 전체 데이터 수집 보류
-> 1,000페이지까지만 지정해서 데이터 수집 테스트

source code

    ~
    # peopleList.py
    # 1000페이지까지만 저장
    total_pages = 1000

    all_data = []
    # total_pages 만큼 Loop 돌면서 API 호출
    for page in tqdm(range(1, total_pages + 1)):
        time.sleep(sleep_time)
        r = req(url_base + f"&curPage={page}")
        d = r['peopleListResult']['peopleList']
        all_data.extend(d)

    save_json(all_data, file_path)
    ~

test result

정상적으로 수집 성공

0.5/companyInfo

Choose a tag to compare

@j25ng j25ng released this 16 Aug 04:33

v0.5 영화진흥위원회 영화사 상세정보 API 조회 및 데이터 수집

save data

$ cd data
$ tree
.
└── company
    ├── companyInfo
    │   ├── companyInfo_1.json
    │   ├── companyInfo_2.json
    │   ├── companyInfo_3.json
    │   ├── companyInfo_4.json
    │   ├── companyInfo_5.json
    │   ├── companyInfo_6.json
    │   └── companyInfo_7.json
    └── companyList.json

2 directories, 8 files

issue

1. companyCd가 8자리 이하인 경우 상세정보 조회 불가

-> companyCd가 8자리인 경우에만 companyCd list에 추가

for cp in companies:
    # companyCd가 8자리인 경우에만 추가
    if len(cp['companyCd']) == 8:
        companyCd.append(cp['companyCd'])

2. KeyError 발생

에러 시점이 계속해서 바뀌는 것을 보니 특정 부분 key에 문제가 있는 것은 X

과도한 API 호출&데이터 용량 문제로 발생하는 것으로 추정
-> 2000개씩 나눠서 데이터를 저장하는 방식으로 변경

정상적으로 수집 성공

0.4/companyList

Choose a tag to compare

@j25ng j25ng released this 16 Aug 00:10

v0.4 영화진흥위원회 영화사목록 API 조회 및 데이터 수집

save data

$ cd data
$ tree
.
└── company
    └── companyList.json

1 directory, 1 file

0.3/movieInfo

Choose a tag to compare

@j25ng j25ng released this 15 Aug 15:32

v0.3 영화진흥위원회 영화 상세정보 API 조회 및 연도별 데이터 수집

save data

$ cd data
$ tree
.
└── movies
    ├── year=2015
    │   ├── movieInfo.json
    │   └── movieList.json
    ├── year=2016
    │   ├── movieInfo.json
    │   └── movieList.json
    ├── year=2017
    │   ├── movieInfo.json
    │   └── movieList.json
    ├── year=2018
    │   ├── movieInfo.json
    │   └── movieList.json
    ├── year=2019
    │   ├── movieInfo.json
    │   └── movieList.json
    ├── year=2020
    │   ├── movieInfo.json
    │   └── movieList.json
    └── year=2021
        ├── movieInfo.json
        └── movieList.json

8 directories, 14 files

issue

key 하루 이용량 초과 문제 발생

-> 영화진흥위원회에서 제공하는 응답 예시 키로 대체하여 사용

0.2/movieList

Choose a tag to compare

@j25ng j25ng released this 15 Aug 15:24

v0.2 영화진흥위원회 영화목록 API 조회 및 연도별 데이터 수집

save data

$ cd data
$ tree
.
└── movies
    ├── year=2015
    │   └── movieList.json
    ├── year=2016
    │   └── movieList.json
    ├── year=2017
    │   └── movieList.json
    ├── year=2018
    │   └── movieList.json
    ├── year=2019
    │   └── movieList.json
    ├── year=2020
    │   └── movieList.json
    └── year=2021
        └── movieList.json

8 directories, 7 files

check file exists

source code

if os.path.exists(file_path):
    print(f"데이터가 이미 존재합니다: {file_path}")]
    return True

test result