Side Project 02. 네이버 쇼핑 데이터 수집 함수 만들기

2020. 5. 26. 09:41·프로젝트, 인강 그리고 책/Naver shopping Project
반응형

생성한 client id 와 client secret 를 바탕으로 본격적으로 

네이버 쇼핑 데이터를 수집한다..

 

기본적으로 api 정보를 넣고 이를 바탕으로 자료를 다운받아오는 것은

네이버 developer 에 있는 api 적용 가이드를 참고했다. 아래 참고 링크 공유한다.

https://developers.naver.com/docs/datalab/shopping/#%EC%87%BC%ED%95%91%EC%9D%B8%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%B6%84%EC%95%BC%EB%B3%84-%ED%8A%B8%EB%A0%8C%EB%93%9C-%EC%A1%B0%ED%9A%8C

 

쇼핑인사이트 API 적용 가이드

쇼핑인사이트 API는 '네이버 데이터랩'의 '쇼핑인사이트'를 API로 실행할 수 있게하는 RESTful API입니다.

developers.naver.com

기본적으로 데이터를 제공하는 다른 사이트들도 자기들이 제공하는 서비스에 맞게

api 를 통해 자료를 제공받을 수 있는 가이드를 제공하고 있다. 어떤 가이드는 친절한 반면.. 

어떤 가이드들은 좀 불친절한 곳도 있는 것 같아서..조심해야겠다..

네이버의 경우에는 매우 친절해서 api를 기입하고 데이터를 제공받는데 있어서 큰 어려움은 없었다.

import os
import sys
import urllib.request
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
url = "https://openapi.naver.com/v1/datalab/shopping/categories";
body = "{\"startDate\":\"2017-08-01\",\"endDate\":\"2017-09-30\",\"timeUnit\":\"month\",\"category\":[{\"name\":\"패션의류\",\"param\":[\"50000000\"]},{\"name\":\"화장품/미용\",\"param\":[\"50000002\"]}],\"device\":\"pc\",\"ages\":[\"20\",\"30\"],\"gender\":\"f\"}";

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 수집 코드를 작성했다.

 

def get_shop(client_id, client_secret):
    # 아이디,시크릿 기입
    endpoint = 'https://openapi.naver.com/v1/datalab/shopping/categories'
    bodys = "{\"startDate\":\"2020-01-01\"," \
            "\"endDate\":\"2020-01-10\"," \
            "\"timeUnit\":\"date\"," \
            "\"category\":[{\"name\":\"패션의류\",\"param\":[\"50000000\"]}]}"

    # url 정보 기입
    requests = urllib.request.Request(endpoint)

    # header 정보 기입
    requests.add_header("X-Naver-Client-Id", client_id)
    requests.add_header("X-Naver-Client-Secret", client_secret)
    requests.add_header("Content-Type", "application/json")

    response = urllib.request.urlopen(requests, data=bodys.encode('utf-8'))
    
    # 에러 발생할 경우 예외 처리
    try:
        response = urllib.request.urlopen(requests, data=bodys.encode('utf-8'))
    except:
        logging.error(response.read())
        sys.exit(1)

    response = urllib.request.urlopen(requests, data=bodys.encode('utf-8'))
	
    # 제대로 연결이 되었을 때 api 의 내용을 출력하기
    if response.getcode() == 200:
        response_body = response.read()
        contents = response_body.decode('utf-8')
    else:
        print(response.getcode())
        print(response.read())
        sys.exit(1)
        
    return contents

위 기입한 코드와 같이 우선적으로 네이버 api 에서 정보를 가져오는 get_shop 이라는 함수를 만들었다.

그리고 이 코드를 바탕으로 다음에는 이를 AWS 에 데이터 베이스로 저장하는 프로세스를 진행하고자 한다.

 

 

반응형

'프로젝트, 인강 그리고 책 > Naver shopping Project' 카테고리의 다른 글

Side Project 05( Final ). Naver Shopping 정리  (0) 2020.06.04
Side Project 04( Final ). Colab 을 통해 최종적 파이프라인 구축하기x  (0) 2020.05.31
Side Project 03. AWS 에 데이터 넣기  (3) 2020.05.26
Side Project 01. 네이버 developer api 생성하기  (0) 2020.05.26
Side Project 00-1. 이번 사이드 프로젝트의 목표  (2) 2020.05.26
'프로젝트, 인강 그리고 책/Naver shopping Project' 카테고리의 다른 글
  • Side Project 04( Final ). Colab 을 통해 최종적 파이프라인 구축하기x
  • Side Project 03. AWS 에 데이터 넣기
  • Side Project 01. 네이버 developer api 생성하기
  • Side Project 00-1. 이번 사이드 프로젝트의 목표
쟈누
쟈누
Ad astra per aspera
    반응형
  • 쟈누
    쟈누의 기록공간
    쟈누
  • 전체
    오늘
    어제
    • 분류 전체보기 (444)
      • AWS (31)
        • Glue (4)
        • S3 (1)
      • 클라우드 (0)
      • Data Engineering (37)
        • GitHub (10)
        • NiFi (11)
        • Spark (10)
        • Snowflake (0)
        • 머신러닝, AI (6)
      • 언어 (118)
        • 데이터 베이스 (42)
        • JAVA (9)
        • Python (34)
        • Java Script (15)
        • Linux (18)
      • 프로젝트, 인강 그리고 책 (30)
        • Spotify Project (7)
        • RASA chatbot Project (9)
        • Naver shopping Project (6)
        • 빅데이터를 지탱하는 기술 (8)
      • OLD (56)
        • IT 용어 사전 (13)
        • Front End (12)
        • Back End (31)
      • Error code 모음 (165)
        • 1. SQL errors (17)
        • 2. Hadoop errors (20)
        • 3. Linux Errors (14)
        • 4. Python errors (33)
        • 5. JAVA, Spring errors (41)
        • 6. Jav Script errors (10)
        • 7. Dev Tools errors (9)
        • 8. Git errors (8)
        • 9. Jenkins Errors (4)
        • 10. airflow Errors (2)
        • 11. Aws errors (7)
      • 개인 (1)
        • 책 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 관리
    • 글쓰기
  • 링크

  • 공지사항

    • 간단한 블로그 소개
  • 인기 글

  • 태그

    자바
    linux
    error
    java
    NiFi
    MySQL
    AWS
    에러
    node
    API
    설치
    Git
    Spring
    리눅스
    json
    파이썬
    SQL
    python error
    install
    Python
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
쟈누
Side Project 02. 네이버 쇼핑 데이터 수집 함수 만들기
상단으로

티스토리툴바