일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 텍스트분석
- VAE
- pytorch
- 텍스트마이닝
- 강화학습
- 알고리즘
- DATA
- 파이썬
- YarinGal
- 빅데이터
- 불확실성
- dropout
- uncertainty
- 백준
- 크롤링
- Crawling
- 우분투
- 베이지안
- bayesian
- 코딩테스트
- 리눅스
- AI
- 데이터분석
- 논문리뷰
- pandas
- GNN
- R
- selenium
- Graph
- PYTHON
- Today
- Total
끄적거림
[API]네이버데이터랩 api로 데이터 가져오기2 in Python 본문
지난번 시간에는 네이버데이터랩 검색트랜드 API를 이용하여 데이터를 가져와보았다.
이번엔 "쇼핑인사이트" 부분을 해보기로 하자.
가이드는 아래와 같으니 참고용으로...
01. API 이용 신청
아래의 URL로 접속하여 사용할 API를 신청한다.
https://developers.naver.com/apps/#/wizard/register
나는 사진과 같이 API를 사용하기로 했다.
여기서, 환경 설정을 WEB으로 진행했는데, 나는 단순 데이터를 끌어와 나의 로컬영역(컴퓨터 특정 폴더)에 떨구고 싶었기 때문에 URL/URI를 내 로컬 폴더와 로컬호스트로 작성했다.
등록을 완료하게되면 이와같이 ClientID와 Client Secret을 발급해준다.
02.1. Coding
import os
import sys
import urllib.request
import json
client_id = "~~"
client_secret = "~~"
url = "https://openapi.naver.com/v1/datalab/shopping/categories";
# body = "{\"startDate\":\"2017-08-01\",\"endDate\":\"2017-09-30\",\"timeUnit\":\"date\",\"category\":[{\"name\":\"패션의류\",\"param\":[\"50000000\"]},{\"name\":\"화장품/미용\",\"param\":[\"50000002\"]}],\"device\":\"pc\",\"ages\":[\"20\",\"30\"],\"gender\":\"f\"}";
# 2020-03-02 수정
body = {
"startDate": "2019-02-01",
"endDate": "2020-02-29",
"timeUnit": "date",
"category": [{"name": "패션의류", "param": ["50000000"]}],
"device": "",
"gender": "",
"ages": [ ]
}
body = json.dumps(body, ensure_ascii=False)
request = urllib.request.Request(url)
request.add_header("X-Naver-Client-Id",client_id)
request.add_header("X-Naver-Client-Secret",client_secret)
request.add_header("Content-Type","application/json")
response = urllib.request.urlopen(request, data=body.encode("utf-8"))
rescode = response.getcode()
if(rescode==200):
response_body = response.read()
print(response_body.decode('utf-8'))
else:
print("Error Code:" + rescode)
이 코드는 API가이드에서 제공하는 샘플코드이다. 그대로 실행하면 잘 동작하는 것을 확인할 수 있다.
body부분은 가독성이 좋지 않으므로 이쁘게 바꿀 필요가 있다.
--> 2020-03-02 수정) 좀 더 보기 좋은 방법으로 바꾸어 보았다.
위의 사진은 샘플 소스코드를 그대로 진행한 결과이다.(in jupyter notebook) 결과가 굉장히 보기 힘들고, type이 bytes로 되어 있다.
이를 좀 더 보기 편하게 하기 위해 다음과 같은 전처리 작업이 필요하다.
02.2 전처리
import json
import pandas as pd
data = json.loads(response_body)
pd.DataFrame(data['results'][1]['data'])
bytes 타입을 json 타입으로 바꿔주고, 필요한 데이터를 pandas의 DataFrame형태로 바꿔주면 훨씬 더 보기 편한 데이터로 바꿀 수 있다.
하지만 이때, 모든 데이터를 다 보기는 힘들기 때문에 카테고리별로 DataFrame을 만들던가 컬럼을 하나 더 만들어서 필요한 정보를 가공할 필요가 있다.
여기까지가 네이버API를 이용하여 쇼핑인사이트 카테고리 데이터를 성공적으로 확보할 수 있는 방법이었다.
'Python' 카테고리의 다른 글
running 진행상황 확인하기 in Jupyter notebook (1) | 2020.05.08 |
---|---|
xml 접근 및 CSV파일로 변환 (0) | 2020.04.16 |
[API]기상청 api로 데이터 가져오기 2 in Python(feat. 동네예보 - 초단기실황) (1) | 2020.02.29 |
[API] 영화진흥위원회 제공 박스오피스 API 사용 (0) | 2020.02.28 |
[Tips] 컴프리헨션(Comprehension), 이터레이터(Iterator), 제너레이터(Generator) (0) | 2020.02.21 |