데이터 분석을 위한 사전공부 데이터 종류와 데이터 수집에 대해 공부를 진행했다

데이터의 종류에 대한 생각과 데이터 수집중 API 형태의 데이터 수집 그 중 네이버 검색 API 내가 원하는 키워드대로 수집하는 코드를 작성한다

데이터 종류

  1. 정형
    • 구조화 된 데이터
    • RDMS를 통한 데이터일 확률이 높음
    • 데이터와 구조정보가 분리되어 있다
  2. 비정형
    • 구조가 없는 데이터
    • 바이너리 데이터 ( 비디오, 오디오, 문서파일 )
    • NoSQL
  3. 반정형
    • RDBMS에서 추출하진 않았지만, 어느 정도는 구조를 가지고 있음
    • JSON, XML -> 텍스트 기반 이기종, 플랫폼, 언어 독립적인 데이터 포멧
    • HTML 형식
    • 데이터 안에 데이터와 구조정보가 같이 존재함

데이터 수집 방법 : 네이버 open API를 활용한 뉴스 수집

뉴스 데이터 수집으로 자연어 처리 용도로 활용이 가능하다

API는 검색만 신청한 후 Client ID, Client Secret 필요

 

import sys import os import urllib.request

먼저 사용 할 모듈을 가져와 줍니다

CLIENT_ID = "" CLIENT_SECRET = ""

네이버 검색 API를 사용하기 위해 필요한 키로 네이버 개발자 센터에서 발급받을 수 있습니다

네이버 API를 사용하기 위해 네이버 개발자 센터 Naver Developer 에서 API 제휴 신청을 해줍니다

검색 API의 일 허용량은 25,000회로 자동화 하거나 추후 많이 사용하게 될때 참고해두세요

encText = urllib.parse.quote("키워드") url = "https://openapi.naver.com/v1/search/news.json?query=" + encText

키워드 입력하는 변수와 url 값을 만들어 줍니다


request = urllib.request.Request(url) # 프로토콜 헤더에 정보를 세팅한다 
request.add_header("X-Naver-Client-Id", CLIENT_ID) 
request.add_header("X-Naver-Client-Secret", CLIENT_SECRET) # 
urlopen() 실제적으로 서버에 요청하는 함수 
response = urllib.request.urlopen(request) 
rescode = response.getcode() 
if(rescode==200): 
	response_body = response.read() print(response_body.decode('utf-8')) 
	else: print("Error Code:" + rescode)

 

이후 네이버 API 사용 방법에 따라 response 해주고 코드 200으로 성공일때 작동하도록 만들어 줍니다

정상적으로 코드가 실행되면 5가지 값이 출력됩니다 title, originallink, link, description, pubDate

import sys import os 
import urllib.request 
CLIENT_ID = "" 
CLIENT_SECRET = "" 
encText = urllib.parse.quote("키워드") 
url = "https://openapi.naver.com/v1/search/news.json?query=" + encText 
request = urllib.request.Request(url) # 프로토콜 헤더에 정보를 세팅한다 
request.add_header("X-Naver-Client-Id", CLIENT_ID) 
request.add_header("X-Naver-Client-Secret", CLIENT_SECRET) # 
urlopen() 실제적으로 서버에 요청하는 함수 
response = urllib.request.urlopen(request) 
rescode = response.getcode() 
if(rescode==200): 
	response_body = response.read() 
	print(response_body.decode('utf-8')) 
else: print("Error Code:" + rescode)

1차 기본적인 네이버 API 테스트 총합 코드입니다

간단하게 API 형태 데이터 수집 방법을 작성해봤습니다 앞으로 웹 스크래핑, 크롤링, 자동화 까지 진행 후 본격적인 EDA 시작 해보겠습니다

+ Recent posts