개발/삽질일기
공공데이터 api 데이터 100개 한번에 호출해서 가져오기 vs 10개씩 10번 호출해서 가져오기
devculture309
2023. 6. 22. 11:29
반응형
공공데이터 api 관련해서 프로젝트를 진행하던 중 궁금증이 생겼다
요청변수가 pageNo, numOfRows 인 공공데이터 api가 있다
pageNo는 가져올 page수이고, numOfRows 가져올 열(데이터)의 갯수이다.
예를들어, 내가 구직공고 데이터 100개를 가져오고 싶을때
pageNo = 1, numOfRows = 100 으로 가져올수도 있고,
pageNo = 1 ~ 10, numOfRows = 10 으로 가져올수도 있다.
그리고, pageNo = 10, numOfRows = 10에 경우 모든 정보를 보려면
api 호출 시 pageNo를 1부터 10까지 바꿔서 호출해야한다.
즉, 10번 호출해야한다.
그런데, 공공데이터 api는 느리다.
따라서, 공공데이터 api를 통해 데이터를 가져오려면 최대한 빨리 가져오는 방법을 생각해야한다
여기서, 나는 가장 단순한 방법을 생각했다.
한번에 100개 가져오기 vs 10개 10번 가져오기
실험은 다음 코드로 하였다
import requests
import time
encoding_key = 'encoding key는 요청해서 받으세요'
pageNo = 1
numOfRows = 100
url = f'http://apis.data.go.kr/B552474/SenuriService/getJobList?serviceKey={encoding_key}&pageNo={pageNo}&numOfRows={numOfRows}'
start = time.time()
res = requests.get(url)
end = time.time()
print(f"{end - start: .5f} sec")
pageNo = 10
nomOfRows = 10
start = time.time()
for i in range(1, pageNo + 1):
url = f'http://apis.data.go.kr/B552474/SenuriService/getJobList?serviceKey={encoding_key}&pageNo={i}&numOfRows={numOfRows}'
res = requests.get(url)
end = time.time()
print(f"{end - start: .5f} sec")
결과는
반응형